blob: f8567b390093b134b702a5d1cb2117c3244e3d2a [file] [log] [blame]
Vignesh Kulothungan5c109922018-01-24 17:36:18 -08001/* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302 *
3 * This program is free software; you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License version 2 and
5 * only version 2 as published by the Free Software Foundation.
6 *
7 * This program is distributed in the hope that it will be useful,
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 * GNU General Public License for more details.
11 */
12
13#include <linux/init.h>
14#include <linux/err.h>
15#include <linux/module.h>
16#include <linux/moduleparam.h>
17#include <linux/platform_device.h>
18#include <linux/bitops.h>
19#include <linux/mutex.h>
20#include <linux/of_device.h>
21#include <linux/slab.h>
22#include <sound/core.h>
23#include <sound/soc.h>
24#include <sound/soc-dapm.h>
25#include <sound/pcm.h>
26#include <sound/initval.h>
27#include <sound/control.h>
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028#include <sound/tlv.h>
29#include <sound/asound.h>
30#include <sound/pcm_params.h>
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053031#include <sound/hwdep.h>
Laxminath Kasam605b42f2017-08-01 22:02:15 +053032#include <sound/audio_effects.h>
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053033#include <dsp/msm-dts-srs-tm-config.h>
Laxminath Kasam605b42f2017-08-01 22:02:15 +053034#include <dsp/q6voice.h>
35#include <dsp/q6adm-v2.h>
36#include <dsp/q6asm-v2.h>
37#include <dsp/q6afe-v2.h>
38#include <dsp/q6lsm.h>
39#include <dsp/q6core.h>
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080040#include <dsp/q6common.h>
Laxminath Kasam605b42f2017-08-01 22:02:15 +053041#include <dsp/audio_cal_utils.h>
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053042
43#include "msm-pcm-routing-v2.h"
44#include "msm-pcm-routing-devdep.h"
45#include "msm-qti-pp-config.h"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053046#include "msm-dolby-dap-config.h"
47#include "msm-ds2-dap-config.h"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053048
49#ifndef CONFIG_DOLBY_DAP
50#undef DOLBY_ADM_COPP_TOPOLOGY_ID
51#define DOLBY_ADM_COPP_TOPOLOGY_ID 0xFFFFFFFE
52#endif
53
54#ifndef CONFIG_DOLBY_DS2
55#undef DS2_ADM_COPP_TOPOLOGY_ID
56#define DS2_ADM_COPP_TOPOLOGY_ID 0xFFFFFFFF
57#endif
58
59static struct mutex routing_lock;
60
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053061static struct cal_type_data *cal_data[MAX_ROUTING_CAL_TYPES];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053062
63static int fm_switch_enable;
64static int hfp_switch_enable;
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080065static int a2dp_switch_enable;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053066static int int0_mi2s_switch_enable;
67static int int4_mi2s_switch_enable;
68static int pri_mi2s_switch_enable;
69static int sec_mi2s_switch_enable;
70static int tert_mi2s_switch_enable;
71static int quat_mi2s_switch_enable;
Rohit Kumara5077932017-09-10 22:05:05 +053072static int quin_mi2s_switch_enable;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053073static int fm_pcmrx_switch_enable;
74static int usb_switch_enable;
75static int lsm_port_index;
76static int slim0_rx_aanc_fb_port;
77static int msm_route_ec_ref_rx;
78static int msm_ec_ref_ch = 4;
79static int msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
80static int msm_ec_ref_sampling_rate = 48000;
81static uint32_t voc_session_id = ALL_SESSION_VSID;
82static int msm_route_ext_ec_ref;
83static bool is_custom_stereo_on;
84static bool is_ds2_on;
85static bool swap_ch;
Sudheer Papothic07b37a2018-05-04 05:56:47 +053086static int aanc_level;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053087
88#define WEIGHT_0_DB 0x4000
89/* all the FEs which can support channel mixer */
90static struct msm_pcm_channel_mixer channel_mixer[MSM_FRONTEND_DAI_MM_SIZE];
91/* input BE for each FE */
92static int channel_input[MSM_FRONTEND_DAI_MM_SIZE][ADM_MAX_CHANNELS];
93
94enum {
95 MADNONE,
96 MADAUDIO,
97 MADBEACON,
98 MADULTRASOUND,
99 MADSWAUDIO,
100};
101
102#define ADM_LSM_PORT_INDEX 9
103
104#define SLIMBUS_0_TX_TEXT "SLIMBUS_0_TX"
105#define SLIMBUS_1_TX_TEXT "SLIMBUS_1_TX"
106#define SLIMBUS_2_TX_TEXT "SLIMBUS_2_TX"
107#define SLIMBUS_3_TX_TEXT "SLIMBUS_3_TX"
108#define SLIMBUS_4_TX_TEXT "SLIMBUS_4_TX"
109#define SLIMBUS_5_TX_TEXT "SLIMBUS_5_TX"
110#define TERT_MI2S_TX_TEXT "TERT_MI2S_TX"
111#define QUAT_MI2S_TX_TEXT "QUAT_MI2S_TX"
112#define ADM_LSM_TX_TEXT "ADM_LSM_TX"
113#define INT3_MI2S_TX_TEXT "INT3_MI2S_TX"
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +0530114#define VA_CDC_DMA_TX_0_TEXT "VA_CDC_DMA_TX_0"
115#define VA_CDC_DMA_TX_1_TEXT "VA_CDC_DMA_TX_1"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530116
117#define LSM_FUNCTION_TEXT "LSM Function"
118static const char * const lsm_port_text[] = {
119 "None",
120 SLIMBUS_0_TX_TEXT, SLIMBUS_1_TX_TEXT, SLIMBUS_2_TX_TEXT,
121 SLIMBUS_3_TX_TEXT, SLIMBUS_4_TX_TEXT, SLIMBUS_5_TX_TEXT,
122 TERT_MI2S_TX_TEXT, QUAT_MI2S_TX_TEXT, ADM_LSM_TX_TEXT,
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +0530123 INT3_MI2S_TX_TEXT, VA_CDC_DMA_TX_0_TEXT, VA_CDC_DMA_TX_1_TEXT
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530124};
125
126struct msm_pcm_route_bdai_pp_params {
127 u16 port_id; /* AFE port ID */
128 unsigned long pp_params_config;
129 bool mute_on;
130 int latency;
131};
132
133static struct msm_pcm_route_bdai_pp_params
134 msm_bedais_pp_params[MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX] = {
135 {HDMI_RX, 0, 0, 0},
136 {DISPLAY_PORT_RX, 0, 0, 0},
137};
138
139/*
140 * The be_dai_name_table is passed to HAL so that it can specify the
141 * BE ID for the BE it wants to enable based on the name. Thus there
142 * is a matching table and structure in HAL that need to be updated
143 * if any changes to these are made.
144 */
145struct msm_pcm_route_bdai_name {
146 unsigned int be_id;
147 char be_name[LPASS_BE_NAME_MAX_LENGTH];
148};
149static struct msm_pcm_route_bdai_name be_dai_name_table[MSM_BACKEND_DAI_MAX];
150
151static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
152 int fe_id);
153
Vikram Panduranga6e55ad82018-03-14 13:56:18 -0700154static void msm_routing_load_topology(size_t data_size, void *data);
155static void msm_routing_unload_topology(uint32_t topology_id);
156
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530157static int msm_routing_get_bit_width(unsigned int format)
158{
159 int bit_width;
160
161 switch (format) {
162 case SNDRV_PCM_FORMAT_S32_LE:
163 bit_width = 32;
164 break;
165 case SNDRV_PCM_FORMAT_S24_LE:
166 case SNDRV_PCM_FORMAT_S24_3LE:
167 bit_width = 24;
168 break;
169 case SNDRV_PCM_FORMAT_S16_LE:
170 default:
171 bit_width = 16;
172 }
173 return bit_width;
174}
175
176static bool msm_is_resample_needed(int input_sr, int output_sr)
177{
178 bool rc = false;
179
180 if (input_sr != output_sr)
181 rc = true;
182
183 pr_debug("perform resampling (%s) for copp rate (%d)afe rate (%d)",
184 (rc ? "oh yes" : "not really"),
185 input_sr, output_sr);
186
187 return rc;
188}
189
190static void msm_pcm_routing_cfg_pp(int port_id, int copp_idx, int topology,
191 int channels)
192{
193 int rc = 0;
194
195 switch (topology) {
196 case SRS_TRUMEDIA_TOPOLOGY_ID:
197 pr_debug("%s: SRS_TRUMEDIA_TOPOLOGY_ID\n", __func__);
198 msm_dts_srs_tm_init(port_id, copp_idx);
199 break;
200 case DS2_ADM_COPP_TOPOLOGY_ID:
201 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY %d\n",
202 __func__, DS2_ADM_COPP_TOPOLOGY_ID);
203 rc = msm_ds2_dap_init(port_id, copp_idx, channels,
204 is_custom_stereo_on);
205 if (rc < 0)
206 pr_err("%s: DS2 topo_id 0x%x, port %d, CS %d rc %d\n",
207 __func__, topology, port_id,
208 is_custom_stereo_on, rc);
209 break;
210 case DOLBY_ADM_COPP_TOPOLOGY_ID:
211 if (is_ds2_on) {
212 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY\n", __func__);
213 rc = msm_ds2_dap_init(port_id, copp_idx, channels,
214 is_custom_stereo_on);
215 if (rc < 0)
216 pr_err("%s:DS2 topo_id 0x%x, port %d, rc %d\n",
217 __func__, topology, port_id, rc);
218 } else {
219 pr_debug("%s: DOLBY_ADM_COPP_TOPOLOGY_ID\n", __func__);
220 rc = msm_dolby_dap_init(port_id, copp_idx, channels,
221 is_custom_stereo_on);
222 if (rc < 0)
223 pr_err("%s: DS1 topo_id 0x%x, port %d, rc %d\n",
224 __func__, topology, port_id, rc);
225 }
226 break;
227 case ADM_CMD_COPP_OPEN_TOPOLOGY_ID_AUDIOSPHERE:
228 pr_debug("%s: TOPOLOGY_ID_AUDIOSPHERE\n", __func__);
229 rc = msm_qti_pp_asphere_init(port_id, copp_idx);
230 if (rc < 0)
231 pr_err("%s: topo_id 0x%x, port %d, copp %d, rc %d\n",
232 __func__, topology, port_id, copp_idx, rc);
233 break;
234 default:
235 /* custom topology specific feature param handlers */
236 break;
237 }
238}
239
240static void msm_pcm_routing_deinit_pp(int port_id, int topology)
241{
242 switch (topology) {
243 case SRS_TRUMEDIA_TOPOLOGY_ID:
244 pr_debug("%s: SRS_TRUMEDIA_TOPOLOGY_ID\n", __func__);
245 msm_dts_srs_tm_deinit(port_id);
246 break;
247 case DS2_ADM_COPP_TOPOLOGY_ID:
248 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY_ID %d\n",
249 __func__, DS2_ADM_COPP_TOPOLOGY_ID);
250 msm_ds2_dap_deinit(port_id);
251 break;
252 case DOLBY_ADM_COPP_TOPOLOGY_ID:
253 if (is_ds2_on) {
254 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY_ID\n", __func__);
255 msm_ds2_dap_deinit(port_id);
256 } else {
257 pr_debug("%s: DOLBY_ADM_COPP_TOPOLOGY_ID\n", __func__);
258 msm_dolby_dap_deinit(port_id);
259 }
260 break;
261 case ADM_CMD_COPP_OPEN_TOPOLOGY_ID_AUDIOSPHERE:
262 pr_debug("%s: TOPOLOGY_ID_AUDIOSPHERE\n", __func__);
263 msm_qti_pp_asphere_deinit(port_id);
264 break;
265 default:
266 /* custom topology specific feature deinit handlers */
267 break;
268 }
269}
270
271static void msm_pcm_routng_cfg_matrix_map_pp(struct route_payload payload,
272 int path_type, int perf_mode)
273{
274 int itr = 0, rc = 0;
275
276 if ((path_type == ADM_PATH_PLAYBACK) &&
277 (perf_mode == LEGACY_PCM_MODE) &&
278 is_custom_stereo_on) {
279 for (itr = 0; itr < payload.num_copps; itr++) {
280 if ((payload.port_id[itr] != SLIMBUS_0_RX) &&
281 (payload.port_id[itr] != RT_PROXY_PORT_001_RX)) {
282 continue;
283 }
284
285 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd(
286 payload.port_id[itr],
287 payload.copp_idx[itr],
288 payload.session_id,
289 Q14_GAIN_ZERO_POINT_FIVE,
290 Q14_GAIN_ZERO_POINT_FIVE,
291 Q14_GAIN_ZERO_POINT_FIVE,
292 Q14_GAIN_ZERO_POINT_FIVE);
293 if (rc < 0)
294 pr_err("%s: err setting custom stereo\n",
295 __func__);
296 }
297 }
298}
299
300#define SLIMBUS_EXTPROC_RX AFE_PORT_INVALID
301struct msm_pcm_routing_bdai_data msm_bedais[MSM_BACKEND_DAI_MAX] = {
302 { PRIMARY_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_PRI_I2S_RX},
303 { PRIMARY_I2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_PRI_I2S_TX},
304 { SLIMBUS_0_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_0_RX},
305 { SLIMBUS_0_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_0_TX},
306 { HDMI_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_HDMI},
307 { INT_BT_SCO_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_INT_BT_SCO_RX},
308 { INT_BT_SCO_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_INT_BT_SCO_TX},
309 { INT_FM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_INT_FM_RX},
310 { INT_FM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_INT_FM_TX},
311 { RT_PROXY_PORT_001_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
312 LPASS_BE_AFE_PCM_RX},
313 { RT_PROXY_PORT_001_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
314 LPASS_BE_AFE_PCM_TX},
315 { AFE_PORT_ID_PRIMARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
316 LPASS_BE_AUXPCM_RX},
317 { AFE_PORT_ID_PRIMARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
318 LPASS_BE_AUXPCM_TX},
319 { VOICE_PLAYBACK_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
320 LPASS_BE_VOICE_PLAYBACK_TX},
321 { VOICE2_PLAYBACK_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
322 LPASS_BE_VOICE2_PLAYBACK_TX},
323 { VOICE_RECORD_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
324 LPASS_BE_INCALL_RECORD_RX},
325 { VOICE_RECORD_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
326 LPASS_BE_INCALL_RECORD_TX},
327 { MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_MI2S_RX},
328 { MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_MI2S_TX},
329 { SECONDARY_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SEC_I2S_RX},
330 { SLIMBUS_1_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_1_RX},
331 { SLIMBUS_1_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_1_TX},
332 { SLIMBUS_2_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_2_RX},
333 { SLIMBUS_2_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_2_TX},
334 { SLIMBUS_3_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_3_RX},
335 { SLIMBUS_3_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_3_TX},
336 { SLIMBUS_4_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_4_RX},
337 { SLIMBUS_4_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_4_TX},
338 { SLIMBUS_5_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_5_RX},
339 { SLIMBUS_5_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_5_TX},
340 { SLIMBUS_6_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_6_RX},
341 { SLIMBUS_6_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_6_TX},
342 { SLIMBUS_7_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_7_RX},
343 { SLIMBUS_7_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_7_TX},
344 { SLIMBUS_8_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_8_RX},
345 { SLIMBUS_8_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_8_TX},
346 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_STUB_RX},
347 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_STUB_TX},
348 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_STUB_1_TX},
349 { AFE_PORT_ID_QUATERNARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
350 LPASS_BE_QUAT_MI2S_RX},
351 { AFE_PORT_ID_QUATERNARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
352 LPASS_BE_QUAT_MI2S_TX},
353 { AFE_PORT_ID_SECONDARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
354 LPASS_BE_SEC_MI2S_RX},
355 { AFE_PORT_ID_SECONDARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
356 LPASS_BE_SEC_MI2S_TX},
357 { AFE_PORT_ID_PRIMARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
358 LPASS_BE_PRI_MI2S_RX},
359 { AFE_PORT_ID_PRIMARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
360 LPASS_BE_PRI_MI2S_TX},
361 { AFE_PORT_ID_TERTIARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
362 LPASS_BE_TERT_MI2S_RX},
363 { AFE_PORT_ID_TERTIARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
364 LPASS_BE_TERT_MI2S_TX},
365 { AUDIO_PORT_ID_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
366 LPASS_BE_AUDIO_I2S_RX},
367 { AFE_PORT_ID_SECONDARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
368 LPASS_BE_SEC_AUXPCM_RX},
369 { AFE_PORT_ID_SECONDARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
370 LPASS_BE_SEC_AUXPCM_TX},
Ralf Herzc8701f72018-06-20 11:37:35 +0200371 { AFE_PORT_ID_PRIMARY_SPDIF_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
372 LPASS_BE_PRI_SPDIF_RX},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530373 { AFE_PORT_ID_SECONDARY_MI2S_RX_SD1, 0, {0}, {0}, 0, 0, 0, 0, {0},
374 LPASS_BE_SEC_MI2S_RX_SD1},
375 { AFE_PORT_ID_QUINARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
376 LPASS_BE_QUIN_MI2S_RX},
377 { AFE_PORT_ID_QUINARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
378 LPASS_BE_QUIN_MI2S_TX},
379 { AFE_PORT_ID_SENARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
380 LPASS_BE_SENARY_MI2S_TX},
381 { AFE_PORT_ID_PRIMARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
382 LPASS_BE_PRI_TDM_RX_0},
383 { AFE_PORT_ID_PRIMARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
384 LPASS_BE_PRI_TDM_TX_0},
385 { AFE_PORT_ID_PRIMARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
386 LPASS_BE_PRI_TDM_RX_1},
387 { AFE_PORT_ID_PRIMARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
388 LPASS_BE_PRI_TDM_TX_1},
389 { AFE_PORT_ID_PRIMARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
390 LPASS_BE_PRI_TDM_RX_2},
391 { AFE_PORT_ID_PRIMARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
392 LPASS_BE_PRI_TDM_TX_2},
393 { AFE_PORT_ID_PRIMARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
394 LPASS_BE_PRI_TDM_RX_3},
395 { AFE_PORT_ID_PRIMARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
396 LPASS_BE_PRI_TDM_TX_3},
397 { AFE_PORT_ID_PRIMARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
398 LPASS_BE_PRI_TDM_RX_4},
399 { AFE_PORT_ID_PRIMARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
400 LPASS_BE_PRI_TDM_TX_4},
401 { AFE_PORT_ID_PRIMARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
402 LPASS_BE_PRI_TDM_RX_5},
403 { AFE_PORT_ID_PRIMARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
404 LPASS_BE_PRI_TDM_TX_5},
405 { AFE_PORT_ID_PRIMARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
406 LPASS_BE_PRI_TDM_RX_6},
407 { AFE_PORT_ID_PRIMARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
408 LPASS_BE_PRI_TDM_TX_6},
409 { AFE_PORT_ID_PRIMARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
410 LPASS_BE_PRI_TDM_RX_7},
411 { AFE_PORT_ID_PRIMARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
412 LPASS_BE_PRI_TDM_TX_7},
413 { AFE_PORT_ID_SECONDARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
414 LPASS_BE_SEC_TDM_RX_0},
415 { AFE_PORT_ID_SECONDARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
416 LPASS_BE_SEC_TDM_TX_0},
417 { AFE_PORT_ID_SECONDARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
418 LPASS_BE_SEC_TDM_RX_1},
419 { AFE_PORT_ID_SECONDARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
420 LPASS_BE_SEC_TDM_TX_1},
421 { AFE_PORT_ID_SECONDARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
422 LPASS_BE_SEC_TDM_RX_2},
423 { AFE_PORT_ID_SECONDARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
424 LPASS_BE_SEC_TDM_TX_2},
425 { AFE_PORT_ID_SECONDARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
426 LPASS_BE_SEC_TDM_RX_3},
427 { AFE_PORT_ID_SECONDARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
428 LPASS_BE_SEC_TDM_TX_3},
429 { AFE_PORT_ID_SECONDARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
430 LPASS_BE_SEC_TDM_RX_4},
431 { AFE_PORT_ID_SECONDARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
432 LPASS_BE_SEC_TDM_TX_4},
433 { AFE_PORT_ID_SECONDARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
434 LPASS_BE_SEC_TDM_RX_5},
435 { AFE_PORT_ID_SECONDARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
436 LPASS_BE_SEC_TDM_TX_5},
437 { AFE_PORT_ID_SECONDARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
438 LPASS_BE_SEC_TDM_RX_6},
439 { AFE_PORT_ID_SECONDARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
440 LPASS_BE_SEC_TDM_TX_6},
441 { AFE_PORT_ID_SECONDARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
442 LPASS_BE_SEC_TDM_RX_7},
443 { AFE_PORT_ID_SECONDARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
444 LPASS_BE_SEC_TDM_TX_7},
445 { AFE_PORT_ID_TERTIARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
446 LPASS_BE_TERT_TDM_RX_0},
447 { AFE_PORT_ID_TERTIARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
448 LPASS_BE_TERT_TDM_TX_0},
449 { AFE_PORT_ID_TERTIARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
450 LPASS_BE_TERT_TDM_RX_1},
451 { AFE_PORT_ID_TERTIARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
452 LPASS_BE_TERT_TDM_TX_1},
453 { AFE_PORT_ID_TERTIARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
454 LPASS_BE_TERT_TDM_RX_2},
455 { AFE_PORT_ID_TERTIARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
456 LPASS_BE_TERT_TDM_TX_2},
457 { AFE_PORT_ID_TERTIARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
458 LPASS_BE_TERT_TDM_RX_3},
459 { AFE_PORT_ID_TERTIARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
460 LPASS_BE_TERT_TDM_TX_3},
461 { AFE_PORT_ID_TERTIARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
462 LPASS_BE_TERT_TDM_RX_4},
463 { AFE_PORT_ID_TERTIARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
464 LPASS_BE_TERT_TDM_TX_4},
465 { AFE_PORT_ID_TERTIARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
466 LPASS_BE_TERT_TDM_RX_5},
467 { AFE_PORT_ID_TERTIARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
468 LPASS_BE_TERT_TDM_TX_5},
469 { AFE_PORT_ID_TERTIARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
470 LPASS_BE_TERT_TDM_RX_6},
471 { AFE_PORT_ID_TERTIARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
472 LPASS_BE_TERT_TDM_TX_6},
473 { AFE_PORT_ID_TERTIARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
474 LPASS_BE_TERT_TDM_RX_7},
475 { AFE_PORT_ID_TERTIARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
476 LPASS_BE_TERT_TDM_TX_7},
477 { AFE_PORT_ID_QUATERNARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
478 LPASS_BE_QUAT_TDM_RX_0},
479 { AFE_PORT_ID_QUATERNARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
480 LPASS_BE_QUAT_TDM_TX_0},
481 { AFE_PORT_ID_QUATERNARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
482 LPASS_BE_QUAT_TDM_RX_1},
483 { AFE_PORT_ID_QUATERNARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
484 LPASS_BE_QUAT_TDM_TX_1},
485 { AFE_PORT_ID_QUATERNARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
486 LPASS_BE_QUAT_TDM_RX_2},
487 { AFE_PORT_ID_QUATERNARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
488 LPASS_BE_QUAT_TDM_TX_2},
489 { AFE_PORT_ID_QUATERNARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
490 LPASS_BE_QUAT_TDM_RX_3},
491 { AFE_PORT_ID_QUATERNARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
492 LPASS_BE_QUAT_TDM_TX_3},
493 { AFE_PORT_ID_QUATERNARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
494 LPASS_BE_QUAT_TDM_RX_4},
495 { AFE_PORT_ID_QUATERNARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
496 LPASS_BE_QUAT_TDM_TX_4},
497 { AFE_PORT_ID_QUATERNARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
498 LPASS_BE_QUAT_TDM_RX_5},
499 { AFE_PORT_ID_QUATERNARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
500 LPASS_BE_QUAT_TDM_TX_5},
501 { AFE_PORT_ID_QUATERNARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
502 LPASS_BE_QUAT_TDM_RX_6},
503 { AFE_PORT_ID_QUATERNARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
504 LPASS_BE_QUAT_TDM_TX_6},
505 { AFE_PORT_ID_QUATERNARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
506 LPASS_BE_QUAT_TDM_RX_7},
507 { AFE_PORT_ID_QUATERNARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
508 LPASS_BE_QUAT_TDM_TX_7},
Rohit Kumara5077932017-09-10 22:05:05 +0530509 { AFE_PORT_ID_QUINARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
510 LPASS_BE_QUIN_TDM_RX_0},
511 { AFE_PORT_ID_QUINARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
512 LPASS_BE_QUIN_TDM_TX_0},
513 { AFE_PORT_ID_QUINARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
514 LPASS_BE_QUIN_TDM_RX_1},
515 { AFE_PORT_ID_QUINARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
516 LPASS_BE_QUIN_TDM_TX_1},
517 { AFE_PORT_ID_QUINARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
518 LPASS_BE_QUIN_TDM_RX_2},
519 { AFE_PORT_ID_QUINARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
520 LPASS_BE_QUIN_TDM_TX_2},
521 { AFE_PORT_ID_QUINARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
522 LPASS_BE_QUIN_TDM_RX_3},
523 { AFE_PORT_ID_QUINARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
524 LPASS_BE_QUIN_TDM_TX_3},
525 { AFE_PORT_ID_QUINARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
526 LPASS_BE_QUIN_TDM_RX_4},
527 { AFE_PORT_ID_QUINARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
528 LPASS_BE_QUIN_TDM_TX_4},
529 { AFE_PORT_ID_QUINARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
530 LPASS_BE_QUIN_TDM_RX_5},
531 { AFE_PORT_ID_QUINARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
532 LPASS_BE_QUIN_TDM_TX_5},
533 { AFE_PORT_ID_QUINARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
534 LPASS_BE_QUIN_TDM_RX_6},
535 { AFE_PORT_ID_QUINARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
536 LPASS_BE_QUIN_TDM_TX_6},
537 { AFE_PORT_ID_QUINARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
538 LPASS_BE_QUIN_TDM_RX_7},
539 { AFE_PORT_ID_QUINARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
540 LPASS_BE_QUIN_TDM_TX_7},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530541 { INT_BT_A2DP_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
542 LPASS_BE_INT_BT_A2DP_RX},
543 { AFE_PORT_ID_USB_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
544 LPASS_BE_USB_AUDIO_RX},
545 { AFE_PORT_ID_USB_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
546 LPASS_BE_USB_AUDIO_TX},
547 { DISPLAY_PORT_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
548 LPASS_BE_DISPLAY_PORT},
Karthikeyan Mani57550082018-05-03 18:43:58 -0700549 { DISPLAY_PORT_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
550 LPASS_BE_DISPLAY_PORT1},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530551 { AFE_PORT_ID_TERTIARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
552 LPASS_BE_TERT_AUXPCM_RX},
553 { AFE_PORT_ID_TERTIARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
554 LPASS_BE_TERT_AUXPCM_TX},
555 { AFE_PORT_ID_QUATERNARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
556 LPASS_BE_QUAT_AUXPCM_RX},
557 { AFE_PORT_ID_QUATERNARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
558 LPASS_BE_QUAT_AUXPCM_TX},
Rohit Kumara5077932017-09-10 22:05:05 +0530559 { AFE_PORT_ID_QUINARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
560 LPASS_BE_QUIN_AUXPCM_RX},
561 { AFE_PORT_ID_QUINARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
562 LPASS_BE_QUIN_AUXPCM_TX},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530563 { AFE_PORT_ID_INT0_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
564 LPASS_BE_INT0_MI2S_RX},
565 { AFE_PORT_ID_INT0_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
566 LPASS_BE_INT0_MI2S_TX},
567 { AFE_PORT_ID_INT1_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
568 LPASS_BE_INT1_MI2S_RX},
569 { AFE_PORT_ID_INT1_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
570 LPASS_BE_INT1_MI2S_TX},
571 { AFE_PORT_ID_INT2_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
572 LPASS_BE_INT2_MI2S_RX},
573 { AFE_PORT_ID_INT2_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
574 LPASS_BE_INT2_MI2S_TX},
575 { AFE_PORT_ID_INT3_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
576 LPASS_BE_INT3_MI2S_RX},
577 { AFE_PORT_ID_INT3_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
578 LPASS_BE_INT3_MI2S_TX},
579 { AFE_PORT_ID_INT4_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
580 LPASS_BE_INT4_MI2S_RX},
581 { AFE_PORT_ID_INT4_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
582 LPASS_BE_INT4_MI2S_TX},
583 { AFE_PORT_ID_INT5_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
584 LPASS_BE_INT5_MI2S_RX},
585 { AFE_PORT_ID_INT5_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
586 LPASS_BE_INT5_MI2S_TX},
587 { AFE_PORT_ID_INT6_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
588 LPASS_BE_INT6_MI2S_RX},
589 { AFE_PORT_ID_INT6_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
590 LPASS_BE_INT6_MI2S_TX},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530591 { AFE_PORT_ID_WSA_CODEC_DMA_RX_0, 0, {0}, {0}, 0, 0, 0, 0, {0},
592 LPASS_BE_WSA_CDC_DMA_RX_0},
593 { AFE_PORT_ID_WSA_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0, {0},
594 LPASS_BE_WSA_CDC_DMA_TX_0},
595 { AFE_PORT_ID_WSA_CODEC_DMA_RX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
596 LPASS_BE_WSA_CDC_DMA_RX_1},
597 { AFE_PORT_ID_WSA_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
598 LPASS_BE_WSA_CDC_DMA_TX_1},
599 { AFE_PORT_ID_WSA_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
600 LPASS_BE_WSA_CDC_DMA_TX_2},
601 { AFE_PORT_ID_VA_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0, {0},
602 LPASS_BE_VA_CDC_DMA_TX_0},
603 { AFE_PORT_ID_VA_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
604 LPASS_BE_VA_CDC_DMA_TX_1},
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530605 { AFE_PORT_ID_RX_CODEC_DMA_RX_0, 0, {0}, {0}, 0, 0, 0, 0, {0},
606 LPASS_BE_RX_CDC_DMA_RX_0},
607 { AFE_PORT_ID_TX_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0, {0},
608 LPASS_BE_TX_CDC_DMA_TX_0},
609 { AFE_PORT_ID_RX_CODEC_DMA_RX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
610 LPASS_BE_RX_CDC_DMA_RX_1},
611 { AFE_PORT_ID_TX_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
612 LPASS_BE_TX_CDC_DMA_TX_1},
613 { AFE_PORT_ID_RX_CODEC_DMA_RX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
614 LPASS_BE_RX_CDC_DMA_RX_2},
615 { AFE_PORT_ID_TX_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
616 LPASS_BE_TX_CDC_DMA_TX_2},
617 { AFE_PORT_ID_RX_CODEC_DMA_RX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
618 LPASS_BE_RX_CDC_DMA_RX_3},
619 { AFE_PORT_ID_TX_CODEC_DMA_TX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
620 LPASS_BE_TX_CDC_DMA_TX_3},
621 { AFE_PORT_ID_RX_CODEC_DMA_RX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
622 LPASS_BE_RX_CDC_DMA_RX_4},
623 { AFE_PORT_ID_TX_CODEC_DMA_TX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
624 LPASS_BE_TX_CDC_DMA_TX_4},
625 { AFE_PORT_ID_RX_CODEC_DMA_RX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
626 LPASS_BE_RX_CDC_DMA_RX_5},
627 { AFE_PORT_ID_TX_CODEC_DMA_TX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
628 LPASS_BE_TX_CDC_DMA_TX_5},
629 { AFE_PORT_ID_RX_CODEC_DMA_RX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
630 LPASS_BE_RX_CDC_DMA_RX_6},
631 { AFE_PORT_ID_RX_CODEC_DMA_RX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
632 LPASS_BE_RX_CDC_DMA_RX_7},
Ralf Herzc8701f72018-06-20 11:37:35 +0200633 { AFE_PORT_ID_PRIMARY_SPDIF_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
634 LPASS_BE_PRI_SPDIF_TX},
635 { AFE_PORT_ID_SECONDARY_SPDIF_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
636 LPASS_BE_SEC_SPDIF_RX},
637 { AFE_PORT_ID_SECONDARY_SPDIF_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
638 LPASS_BE_SEC_SPDIF_TX},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530639};
640
641/* Track ASM playback & capture sessions of DAI
642 * Track LSM listen sessions
643 */
644static struct msm_pcm_routing_fdai_data
645 fe_dai_map[MSM_FRONTEND_DAI_MAX][2] = {
646 /* MULTIMEDIA1 */
647 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
648 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
649 /* MULTIMEDIA2 */
650 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
651 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
652 /* MULTIMEDIA3 */
653 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
654 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
655 /* MULTIMEDIA4 */
656 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
657 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
658 /* MULTIMEDIA5 */
659 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
660 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
661 /* MULTIMEDIA6 */
662 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
663 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
664 /* MULTIMEDIA7*/
665 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
666 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
667 /* MULTIMEDIA8 */
668 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
669 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
670 /* MULTIMEDIA9 */
671 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
672 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
673 /* MULTIMEDIA10 */
674 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
675 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
676 /* MULTIMEDIA11 */
677 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
678 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
679 /* MULTIMEDIA12 */
680 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
681 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
682 /* MULTIMEDIA13 */
683 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
684 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
685 /* MULTIMEDIA14 */
686 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
687 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
688 /* MULTIMEDIA15 */
689 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
690 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
691 /* MULTIMEDIA16 */
692 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
693 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
694 /* MULTIMEDIA17 */
695 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
696 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
697 /* MULTIMEDIA18 */
698 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
699 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
700 /* MULTIMEDIA19 */
701 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
702 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
703 /* MULTIMEDIA20 */
704 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
705 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
Derek Chen07c6d1c2018-07-05 10:39:25 -0700706 /* MULTIMEDIA21 */
707 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
708 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +0530709 /* MULTIMEDIA28 */
710 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
711 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
712 /* MULTIMEDIA29 */
713 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
714 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530715 /* VOIP */
716 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
717 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
718 /* AFE_RX */
719 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
720 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
721 /* AFE_TX */
722 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
723 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
724 /* VOICE_STUB */
725 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
726 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530727 /* DTMF_RX */
728 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
729 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530730 /* QCHAT */
731 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
732 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
733 /* VOLTE_STUB */
734 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
735 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
736 /* LSM1 */
737 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
738 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
739 /* LSM2 */
740 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
741 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
742 /* LSM3 */
743 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
744 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
745 /* LSM4 */
746 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
747 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
748 /* LSM5 */
749 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
750 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
751 /* LSM6 */
752 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
753 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
754 /* LSM7 */
755 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
756 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
757 /* LSM8 */
758 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
759 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
760 /* VOICE2_STUB */
761 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
762 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530763 /* VOICEMMODE1 */
764 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
765 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
766 /* VOICEMMODE2 */
767 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
768 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
769};
770
771static unsigned long session_copp_map[MSM_FRONTEND_DAI_MAX][2]
772 [MSM_BACKEND_DAI_MAX];
773static struct msm_pcm_routing_app_type_data app_type_cfg[MAX_APP_TYPES];
774static struct msm_pcm_routing_app_type_data lsm_app_type_cfg[MAX_APP_TYPES];
775static struct msm_pcm_stream_app_type_cfg
776 fe_dai_app_type_cfg[MSM_FRONTEND_DAI_MAX][2][MSM_BACKEND_DAI_MAX];
777
778static int last_be_id_configured[MSM_FRONTEND_DAI_MAX][MAX_SESSION_TYPES];
779
780/* The caller of this should aqcuire routing lock */
781void msm_pcm_routing_get_bedai_info(int be_idx,
782 struct msm_pcm_routing_bdai_data *be_dai)
783{
784 if (be_idx >= 0 && be_idx < MSM_BACKEND_DAI_MAX)
785 memcpy(be_dai, &msm_bedais[be_idx],
786 sizeof(struct msm_pcm_routing_bdai_data));
787}
788
789/* The caller of this should aqcuire routing lock */
790void msm_pcm_routing_get_fedai_info(int fe_idx, int sess_type,
791 struct msm_pcm_routing_fdai_data *fe_dai)
792{
793 if ((sess_type == SESSION_TYPE_TX) || (sess_type == SESSION_TYPE_RX))
794 memcpy(fe_dai, &fe_dai_map[fe_idx][sess_type],
795 sizeof(struct msm_pcm_routing_fdai_data));
796}
797
798void msm_pcm_routing_acquire_lock(void)
799{
800 mutex_lock(&routing_lock);
801}
802
803void msm_pcm_routing_release_lock(void)
804{
805 mutex_unlock(&routing_lock);
806}
807
808static int msm_pcm_routing_get_app_type_idx(int app_type)
809{
810 int idx;
811
812 pr_debug("%s: app_type: %d\n", __func__, app_type);
813 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
814 if (app_type_cfg[idx].app_type == app_type)
815 return idx;
816 }
817 pr_info("%s: App type not available, fallback to default\n", __func__);
818 return 0;
819}
820
821static int msm_pcm_routing_get_lsm_app_type_idx(int app_type)
822{
823 int idx;
824
825 pr_debug("%s: app_type: %d\n", __func__, app_type);
826 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
827 if (lsm_app_type_cfg[idx].app_type == app_type)
828 return idx;
829 }
830 pr_debug("%s: App type not available, fallback to default\n", __func__);
831 return 0;
832}
833
834static bool is_mm_lsm_fe_id(int fe_id)
835{
836 bool rc = true;
837
838 if (fe_id > MSM_FRONTEND_DAI_MM_MAX_ID &&
839 ((fe_id < MSM_FRONTEND_DAI_LSM1) ||
840 (fe_id > MSM_FRONTEND_DAI_LSM8))) {
841 rc = false;
842 }
843 return rc;
844}
845
Bhalchandra Gajareeed46bd2018-05-15 16:48:07 -0700846/*
847 * msm_pcm_routing_send_chmix_cfg:
848 * send the channel mixer command to mix the input channels
849 * into output channels.
850 *
851 * @fe_id: front end id
852 * @ip_channel_cnt: input channel count
853 * @op_channel_cnt: output channel count
854 * @ch_wght_coeff: channel weight co-efficients for channel mixing
855 * @session_type: indicates session is of type TX or RX
856 * @stream_type: indicates either Audio or Listen stream type
857 */
858int msm_pcm_routing_send_chmix_cfg(int fe_id, int ip_channel_cnt,
859 int op_channel_cnt, int *ch_wght_coeff,
860 int session_type, int stream_type)
861{
862
863 int rc = 0, idx = 0;
864 int be_index = 0, port_id;
865 unsigned int session_id = 0;
866
867 pr_debug("%s:fe_id[%d] ip_ch[%d] op_ch[%d] sess_type [%d], stream_type[%d]",
868 __func__, fe_id, ip_channel_cnt, op_channel_cnt, session_type,
869 stream_type);
870 if (!is_mm_lsm_fe_id(fe_id)) {
871 /* bad ID assigned in machine driver */
872 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
873 return -EINVAL;
874 }
875
876 if (ch_wght_coeff == NULL) {
877 pr_err("%s: Null channel weightage coefficients passed\n",
878 __func__);
879 return -EINVAL;
880 }
881
882 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
883 port_id = msm_bedais[be_index].port_id;
884 if (!msm_bedais[be_index].active ||
885 !test_bit(fe_id, &msm_bedais[be_index].fe_sessions[0]))
886 continue;
887
888 session_id = fe_dai_map[fe_id][session_type].strm_id;
889
890 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
891 unsigned long copp =
892 session_copp_map[fe_id][session_type][be_index];
893 if (!test_bit(idx, &copp))
894 continue;
895 msm_qti_pp_send_chmix_cfg_cmd(port_id, idx,
896 session_id, ip_channel_cnt,
897 op_channel_cnt, ch_wght_coeff,
898 session_type, stream_type);
899 if (rc < 0)
900 pr_err("%s: err setting channel mix config\n",
901 __func__);
902 }
903 }
904
905 return 0;
906}
907EXPORT_SYMBOL(msm_pcm_routing_send_chmix_cfg);
908
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530909int msm_pcm_routing_reg_stream_app_type_cfg(
910 int fedai_id, int session_type, int be_id,
911 struct msm_pcm_stream_app_type_cfg *cfg_data)
912{
913 int ret = 0;
914
915 if (cfg_data == NULL) {
916 pr_err("%s: Received NULL pointer for cfg_data\n", __func__);
917 ret = -EINVAL;
918 goto done;
919 }
920
921 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
922 __func__, fedai_id, session_type, be_id,
923 cfg_data->app_type, cfg_data->acdb_dev_id,
924 cfg_data->sample_rate);
925
926 if (!is_mm_lsm_fe_id(fedai_id)) {
927 pr_err("%s: Invalid machine driver ID %d\n",
928 __func__, fedai_id);
929 ret = -EINVAL;
930 goto done;
931 }
932 if (session_type != SESSION_TYPE_RX &&
933 session_type != SESSION_TYPE_TX) {
934 pr_err("%s: Invalid session type %d\n",
935 __func__, session_type);
936 ret = -EINVAL;
937 goto done;
938 }
939 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
940 pr_err("%s: Received out of bounds be_id %d\n",
941 __func__, be_id);
942 ret = -EINVAL;
943 goto done;
944 }
945
946 fe_dai_app_type_cfg[fedai_id][session_type][be_id] = *cfg_data;
947
948 /*
949 * Store the BE ID of the configuration information set as the latest so
950 * the get mixer control knows what to return.
951 */
952 last_be_id_configured[fedai_id][session_type] = be_id;
953
954done:
955 return ret;
956}
957EXPORT_SYMBOL(msm_pcm_routing_reg_stream_app_type_cfg);
958
959/**
960 * msm_pcm_routing_get_stream_app_type_cfg
961 *
962 * Receives fedai_id, session_type, be_id, and populates app_type,
963 * acdb_dev_id, & sample rate. Returns 0 on success. On failure returns
964 * -EINVAL and does not alter passed values.
965 *
966 * fedai_id - Passed value, front end ID for which app type config is wanted
967 * session_type - Passed value, session type for which app type config
968 * is wanted
969 * be_id - Returned value, back end device id the app type config data is for
970 * cfg_data - Returned value, configuration data used by app type config
971 */
972int msm_pcm_routing_get_stream_app_type_cfg(
973 int fedai_id, int session_type, int *bedai_id,
974 struct msm_pcm_stream_app_type_cfg *cfg_data)
975{
976 int be_id;
977 int ret = 0;
978
979 if (bedai_id == NULL) {
980 pr_err("%s: Received NULL pointer for backend ID\n", __func__);
981 ret = -EINVAL;
982 goto done;
983 } else if (cfg_data == NULL) {
984 pr_err("%s: NULL pointer sent for cfg_data\n", __func__);
985 ret = -EINVAL;
986 goto done;
987 } else if (!is_mm_lsm_fe_id(fedai_id)) {
988 pr_err("%s: Invalid FE ID %d\n", __func__, fedai_id);
989 ret = -EINVAL;
990 goto done;
991 } else if (session_type != SESSION_TYPE_RX &&
992 session_type != SESSION_TYPE_TX) {
993 pr_err("%s: Invalid session type %d\n", __func__, session_type);
994 ret = -EINVAL;
995 goto done;
996 }
997
998 be_id = last_be_id_configured[fedai_id][session_type];
999 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1000 pr_err("%s: Invalid BE ID %d\n", __func__, be_id);
1001 ret = -EINVAL;
1002 goto done;
1003 }
1004
1005 *bedai_id = be_id;
1006 *cfg_data = fe_dai_app_type_cfg[fedai_id][session_type][be_id];
1007 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
1008 __func__, fedai_id, session_type, *bedai_id,
1009 cfg_data->app_type, cfg_data->acdb_dev_id,
1010 cfg_data->sample_rate);
1011done:
1012 return ret;
1013}
1014EXPORT_SYMBOL(msm_pcm_routing_get_stream_app_type_cfg);
1015
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301016static struct cal_block_data *msm_routing_find_topology_by_path(int path,
1017 int cal_index)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301018{
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301019 struct list_head *ptr, *next;
1020 struct cal_block_data *cal_block = NULL;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301021 pr_debug("%s\n", __func__);
1022
1023 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301024 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301025
1026 cal_block = list_entry(ptr,
1027 struct cal_block_data, list);
1028
Vikram Panduranga770b8382017-09-27 12:17:36 -07001029 if (cal_utils_is_cal_stale(cal_block))
1030 continue;
1031
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301032 if (((struct audio_cal_info_adm_top *)cal_block
1033 ->cal_info)->path == path) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301034 return cal_block;
1035 }
1036 }
1037 pr_debug("%s: Can't find topology for path %d\n", __func__, path);
1038 return NULL;
1039}
1040
1041static struct cal_block_data *msm_routing_find_topology(int path,
1042 int app_type,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301043 int acdb_id,
1044 int cal_index)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301045{
1046 struct list_head *ptr, *next;
1047 struct cal_block_data *cal_block = NULL;
1048 struct audio_cal_info_adm_top *cal_info;
1049
1050 pr_debug("%s\n", __func__);
1051
1052 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301053 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301054
1055 cal_block = list_entry(ptr,
1056 struct cal_block_data, list);
1057
Vikram Panduranga770b8382017-09-27 12:17:36 -07001058 if (cal_utils_is_cal_stale(cal_block))
1059 continue;
1060
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301061 cal_info = (struct audio_cal_info_adm_top *)
1062 cal_block->cal_info;
1063 if ((cal_info->path == path) &&
1064 (cal_info->app_type == app_type) &&
1065 (cal_info->acdb_id == acdb_id)) {
1066 return cal_block;
1067 }
1068 }
1069 pr_debug("%s: Can't find topology for path %d, app %d, acdb_id %d defaulting to search by path\n",
1070 __func__, path, app_type, acdb_id);
Vikram Panduranga770b8382017-09-27 12:17:36 -07001071 return msm_routing_find_topology_by_path(path, cal_index);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301072}
1073
Vikram Panduranga770b8382017-09-27 12:17:36 -07001074/*
1075 * Retrieving cal_block will mark cal_block as stale.
1076 * Hence it cannot be reused or resent unless the flag
1077 * is reset.
1078 */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301079static int msm_routing_get_adm_topology(int fedai_id, int session_type,
1080 int be_id)
1081{
1082 int topology = NULL_COPP_TOPOLOGY;
1083 struct cal_block_data *cal_block = NULL;
1084 int app_type = 0, acdb_dev_id = 0;
1085
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301086 pr_debug("%s: fedai_id %d, session_type %d, be_id %d\n",
1087 __func__, fedai_id, session_type, be_id);
1088
1089 if (cal_data == NULL)
1090 goto done;
1091
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301092 app_type = fe_dai_app_type_cfg[fedai_id][session_type][be_id].app_type;
1093 acdb_dev_id =
1094 fe_dai_app_type_cfg[fedai_id][session_type][be_id].acdb_dev_id;
1095
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301096 mutex_lock(&cal_data[ADM_TOPOLOGY_CAL_TYPE_IDX]->lock);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301097 cal_block = msm_routing_find_topology(session_type, app_type,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301098 acdb_dev_id,
1099 ADM_TOPOLOGY_CAL_TYPE_IDX);
Vikram Panduranga770b8382017-09-27 12:17:36 -07001100 if (cal_block != NULL) {
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301101 topology = ((struct audio_cal_info_adm_top *)
1102 cal_block->cal_info)->topology;
Vikram Panduranga770b8382017-09-27 12:17:36 -07001103 cal_utils_mark_cal_used(cal_block);
1104 mutex_unlock(&cal_data[ADM_TOPOLOGY_CAL_TYPE_IDX]->lock);
1105 } else {
1106 mutex_unlock(&cal_data[ADM_TOPOLOGY_CAL_TYPE_IDX]->lock);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301107
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301108 pr_debug("%s: Check for LSM topology\n", __func__);
1109 mutex_lock(&cal_data[ADM_LSM_TOPOLOGY_CAL_TYPE_IDX]->lock);
1110 cal_block = msm_routing_find_topology(session_type, app_type,
1111 acdb_dev_id,
1112 ADM_LSM_TOPOLOGY_CAL_TYPE_IDX);
Vikram Panduranga770b8382017-09-27 12:17:36 -07001113 if (cal_block != NULL) {
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301114 topology = ((struct audio_cal_info_adm_top *)
1115 cal_block->cal_info)->topology;
Vikram Panduranga770b8382017-09-27 12:17:36 -07001116 cal_utils_mark_cal_used(cal_block);
1117 }
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301118 mutex_unlock(&cal_data[ADM_LSM_TOPOLOGY_CAL_TYPE_IDX]->lock);
1119 }
1120
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301121done:
1122 pr_debug("%s: Using topology %d\n", __func__, topology);
1123 return topology;
1124}
1125
1126static uint8_t is_be_dai_extproc(int be_dai)
1127{
1128 if (be_dai == MSM_BACKEND_DAI_EXTPROC_RX ||
1129 be_dai == MSM_BACKEND_DAI_EXTPROC_TX ||
1130 be_dai == MSM_BACKEND_DAI_EXTPROC_EC_TX)
1131 return 1;
1132 else
1133 return 0;
1134}
1135
1136static void msm_pcm_routing_build_matrix(int fedai_id, int sess_type,
1137 int path_type, int perf_mode,
1138 uint32_t passthr_mode)
1139{
1140 int i, port_type, j, num_copps = 0;
1141 struct route_payload payload;
1142
1143 port_type = ((path_type == ADM_PATH_PLAYBACK ||
1144 path_type == ADM_PATH_COMPRESSED_RX) ?
1145 MSM_AFE_PORT_TYPE_RX : MSM_AFE_PORT_TYPE_TX);
1146
1147 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1148 if (!is_be_dai_extproc(i) &&
1149 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1150 (msm_bedais[i].active) &&
1151 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1152 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1153 unsigned long copp =
1154 session_copp_map[fedai_id][sess_type][i];
1155 if (test_bit(j, &copp)) {
1156 payload.port_id[num_copps] =
1157 msm_bedais[i].port_id;
1158 payload.copp_idx[num_copps] = j;
1159 payload.app_type[num_copps] =
1160 fe_dai_app_type_cfg
1161 [fedai_id][sess_type][i]
1162 .app_type;
1163 payload.acdb_dev_id[num_copps] =
1164 fe_dai_app_type_cfg
1165 [fedai_id][sess_type][i]
1166 .acdb_dev_id;
1167 payload.sample_rate[num_copps] =
1168 fe_dai_app_type_cfg
1169 [fedai_id][sess_type][i]
1170 .sample_rate;
1171 num_copps++;
1172 }
1173 }
1174 }
1175 }
1176
1177 if (num_copps) {
1178 payload.num_copps = num_copps;
1179 payload.session_id = fe_dai_map[fedai_id][sess_type].strm_id;
1180 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1181 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1182 }
1183}
1184
1185void msm_pcm_routing_reg_psthr_stream(int fedai_id, int dspst_id,
1186 int stream_type)
1187{
1188 int i, session_type, path_type, port_type;
1189 u32 mode = 0;
1190
1191 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1192 /* bad ID assigned in machine driver */
1193 pr_err("%s: bad MM ID\n", __func__);
1194 return;
1195 }
1196
1197 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1198 session_type = SESSION_TYPE_RX;
1199 path_type = ADM_PATH_PLAYBACK;
1200 port_type = MSM_AFE_PORT_TYPE_RX;
1201 } else {
1202 session_type = SESSION_TYPE_TX;
1203 path_type = ADM_PATH_LIVE_REC;
1204 port_type = MSM_AFE_PORT_TYPE_TX;
1205 }
1206
1207 mutex_lock(&routing_lock);
1208
1209 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1210 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1211 if (!is_be_dai_extproc(i) &&
1212 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1213 (msm_bedais[i].active) &&
1214 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1215 mode = afe_get_port_type(msm_bedais[i].port_id);
1216 adm_connect_afe_port(mode, dspst_id,
1217 msm_bedais[i].port_id);
1218 break;
1219 }
1220 }
1221 mutex_unlock(&routing_lock);
1222}
1223
1224static bool route_check_fe_id_adm_support(int fe_id)
1225{
1226 bool rc = true;
1227
1228 if ((fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1229 (fe_id <= MSM_FRONTEND_DAI_LSM8)) {
1230 /* fe id is listen while port is set to afe */
1231 if (lsm_port_index != ADM_LSM_PORT_INDEX) {
1232 pr_debug("%s: fe_id %d, lsm mux slim port %d\n",
1233 __func__, fe_id, lsm_port_index);
1234 rc = false;
1235 }
1236 }
1237
1238 return rc;
1239}
1240
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001241/*
1242 * msm_pcm_routing_get_pp_ch_cnt:
1243 * Read the processed channel count
1244 *
1245 * @fe_id: Front end ID
1246 * @session_type: Inidicates RX or TX session type
1247 */
1248int msm_pcm_routing_get_pp_ch_cnt(int fe_id, int session_type)
1249{
1250 struct msm_pcm_stream_app_type_cfg cfg_data;
1251 int be_id = 0, app_type_idx = 0, app_type = 0;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +05301252 int ret = -EINVAL;
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001253
1254 memset(&cfg_data, 0, sizeof(cfg_data));
1255
1256 if (!is_mm_lsm_fe_id(fe_id)) {
1257 pr_err("%s: bad MM ID\n", __func__);
1258 return -EINVAL;
1259 }
1260
1261 ret = msm_pcm_routing_get_stream_app_type_cfg(fe_id, session_type,
1262 &be_id, &cfg_data);
1263 if (ret) {
Mangesh Kunchamwardaf02b02018-06-28 19:42:24 +05301264 pr_err("%s: cannot get stream app type cfg\n", __func__);
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001265 return ret;
1266 }
1267
1268 app_type = cfg_data.app_type;
1269 app_type_idx = msm_pcm_routing_get_lsm_app_type_idx(app_type);
1270 return lsm_app_type_cfg[app_type_idx].num_out_channels;
1271}
1272EXPORT_SYMBOL(msm_pcm_routing_get_pp_ch_cnt);
1273
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301274int msm_pcm_routing_reg_phy_compr_stream(int fe_id, int perf_mode,
1275 int dspst_id, int stream_type,
1276 uint32_t passthr_mode)
1277{
1278 int i, j, session_type, path_type, port_type, topology;
1279 int num_copps = 0;
1280 struct route_payload payload;
1281 u32 channels, sample_rate;
1282 u16 bit_width = 16;
1283 bool is_lsm;
1284
1285 pr_debug("%s:fe_id[%d] perf_mode[%d] id[%d] stream_type[%d] passt[%d]",
1286 __func__, fe_id, perf_mode, dspst_id,
1287 stream_type, passthr_mode);
1288 if (!is_mm_lsm_fe_id(fe_id)) {
1289 /* bad ID assigned in machine driver */
1290 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
1291 return -EINVAL;
1292 }
1293
1294 if (!route_check_fe_id_adm_support(fe_id)) {
1295 /* ignore adm open if not supported for fe_id */
1296 pr_debug("%s: No ADM support for fe id %d\n", __func__, fe_id);
1297 return 0;
1298 }
1299
1300 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1301 session_type = SESSION_TYPE_RX;
1302 if (passthr_mode != LEGACY_PCM)
1303 path_type = ADM_PATH_COMPRESSED_RX;
1304 else
1305 path_type = ADM_PATH_PLAYBACK;
1306 port_type = MSM_AFE_PORT_TYPE_RX;
1307 } else if (stream_type == SNDRV_PCM_STREAM_CAPTURE) {
1308 session_type = SESSION_TYPE_TX;
Laxminath Kasam38070be2017-08-17 18:21:59 +05301309 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301310 path_type = ADM_PATH_COMPRESSED_TX;
1311 else
1312 path_type = ADM_PATH_LIVE_REC;
1313 port_type = MSM_AFE_PORT_TYPE_TX;
1314 } else {
1315 pr_err("%s: invalid stream type %d\n", __func__, stream_type);
1316 return -EINVAL;
1317 }
1318
1319 is_lsm = (fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1320 (fe_id <= MSM_FRONTEND_DAI_LSM8);
1321 mutex_lock(&routing_lock);
1322
1323 payload.num_copps = 0; /* only RX needs to use payload */
1324 fe_dai_map[fe_id][session_type].strm_id = dspst_id;
1325 /* re-enable EQ if active */
1326 msm_qti_pp_send_eq_values(fe_id);
1327 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1328 if (test_bit(fe_id, &msm_bedais[i].fe_sessions[0]))
1329 msm_bedais[i].passthr_mode[fe_id] = passthr_mode;
1330
1331 if (!is_be_dai_extproc(i) &&
1332 (afe_get_port_type(msm_bedais[i].port_id) ==
1333 port_type) &&
1334 (msm_bedais[i].active) &&
1335 (test_bit(fe_id, &msm_bedais[i].fe_sessions[0]))) {
1336 int app_type, app_type_idx, copp_idx, acdb_dev_id;
1337
1338 /*
1339 * check if ADM needs to be configured with different
1340 * channel mapping than backend
1341 */
1342 if (!msm_bedais[i].adm_override_ch)
1343 channels = msm_bedais[i].channel;
1344 else
1345 channels = msm_bedais[i].adm_override_ch;
1346
1347 bit_width = msm_routing_get_bit_width(
1348 msm_bedais[i].format);
1349 app_type =
1350 fe_dai_app_type_cfg[fe_id][session_type][i].app_type;
1351 if (app_type && is_lsm) {
1352 app_type_idx =
1353 msm_pcm_routing_get_lsm_app_type_idx(app_type);
1354 sample_rate =
1355 fe_dai_app_type_cfg[fe_id][session_type][i]
1356 .sample_rate;
1357 bit_width =
1358 lsm_app_type_cfg[app_type_idx].bit_width;
1359 } else if (app_type) {
1360 app_type_idx =
1361 msm_pcm_routing_get_app_type_idx(
1362 app_type);
1363 sample_rate =
1364 fe_dai_app_type_cfg[fe_id][session_type][i].sample_rate;
1365 bit_width =
1366 app_type_cfg[app_type_idx].bit_width;
1367 } else {
1368 sample_rate = msm_bedais[i].sample_rate;
1369 }
1370 acdb_dev_id =
1371 fe_dai_app_type_cfg[fe_id][session_type][i].acdb_dev_id;
1372 topology = msm_routing_get_adm_topology(fe_id,
1373 session_type,
1374 i);
1375 if ((passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
1376 || (passthr_mode ==
Ralf Herzc8701f72018-06-20 11:37:35 +02001377 COMPRESSED_PASSTHROUGH_GEN)
1378 || (passthr_mode ==
1379 COMPRESSED_PASSTHROUGH_IEC61937))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301380 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
1381 pr_debug("%s: Before adm open topology %d\n", __func__,
1382 topology);
1383
1384 copp_idx =
1385 adm_open(msm_bedais[i].port_id,
1386 path_type, sample_rate, channels,
1387 topology, perf_mode, bit_width,
1388 app_type, acdb_dev_id);
1389 if ((copp_idx < 0) ||
1390 (copp_idx >= MAX_COPPS_PER_PORT)) {
1391 pr_err("%s:adm open failed coppid:%d\n",
1392 __func__, copp_idx);
1393 mutex_unlock(&routing_lock);
1394 return -EINVAL;
1395 }
1396 pr_debug("%s: set idx bit of fe:%d, type: %d, be:%d\n",
1397 __func__, fe_id, session_type, i);
1398 set_bit(copp_idx,
1399 &session_copp_map[fe_id][session_type][i]);
1400
1401 if (msm_is_resample_needed(
1402 sample_rate,
1403 msm_bedais[i].sample_rate))
1404 adm_copp_mfc_cfg(
1405 msm_bedais[i].port_id, copp_idx,
1406 msm_bedais[i].sample_rate);
1407
1408 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1409 unsigned long copp =
1410 session_copp_map[fe_id][session_type][i];
1411 if (test_bit(j, &copp)) {
1412 payload.port_id[num_copps] =
1413 msm_bedais[i].port_id;
1414 payload.copp_idx[num_copps] = j;
1415 payload.app_type[num_copps] =
1416 fe_dai_app_type_cfg
1417 [fe_id][session_type][i]
1418 .app_type;
1419 payload.acdb_dev_id[num_copps] =
1420 fe_dai_app_type_cfg
1421 [fe_id][session_type][i]
1422 .acdb_dev_id;
1423 payload.sample_rate[num_copps] =
1424 fe_dai_app_type_cfg
1425 [fe_id][session_type][i]
1426 .sample_rate;
1427 num_copps++;
1428 }
1429 }
1430 if (passthr_mode != COMPRESSED_PASSTHROUGH_DSD
Ralf Herzc8701f72018-06-20 11:37:35 +02001431 && passthr_mode != COMPRESSED_PASSTHROUGH_GEN
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301432 && passthr_mode !=
Ralf Herzc8701f72018-06-20 11:37:35 +02001433 COMPRESSED_PASSTHROUGH_IEC61937)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301434 msm_routing_send_device_pp_params(
Ralf Herzc8701f72018-06-20 11:37:35 +02001435 msm_bedais[i].port_id,
1436 copp_idx, fe_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301437 }
1438 }
1439 if (num_copps) {
1440 payload.num_copps = num_copps;
1441 payload.session_id = fe_dai_map[fe_id][session_type].strm_id;
1442 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1443 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1444 }
1445 mutex_unlock(&routing_lock);
1446 return 0;
1447}
1448
1449static u32 msm_pcm_routing_get_voc_sessionid(u16 val)
1450{
1451 u32 session_id;
1452
1453 switch (val) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301454 case MSM_FRONTEND_DAI_QCHAT:
1455 session_id = voc_get_session_id(QCHAT_SESSION_NAME);
1456 break;
1457 case MSM_FRONTEND_DAI_VOIP:
1458 session_id = voc_get_session_id(VOIP_SESSION_NAME);
1459 break;
1460 case MSM_FRONTEND_DAI_VOICEMMODE1:
1461 session_id = voc_get_session_id(VOICEMMODE1_NAME);
1462 break;
1463 case MSM_FRONTEND_DAI_VOICEMMODE2:
1464 session_id = voc_get_session_id(VOICEMMODE2_NAME);
1465 break;
1466 default:
1467 session_id = 0;
1468 }
1469
1470 pr_debug("%s session_id 0x%x", __func__, session_id);
1471 return session_id;
1472}
1473
1474static int msm_pcm_routing_channel_mixer(int fe_id, bool perf_mode,
1475 int dspst_id, int stream_type)
1476{
1477 int copp_idx = 0;
1478 int sess_type = 0;
1479 int i = 0, j = 0, be_id;
1480 int ret = 0;
1481
1482 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
1483 pr_err("%s: invalid FE %d\n", __func__, fe_id);
1484 return 0;
1485 }
1486
1487 if (!(channel_mixer[fe_id].enable)) {
1488 pr_debug("%s: channel mixer not enabled for FE %d\n",
1489 __func__, fe_id);
1490 return 0;
1491 }
1492
1493 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1494 sess_type = SESSION_TYPE_RX;
1495 else
1496 sess_type = SESSION_TYPE_TX;
1497
1498 for (i = 0; i < ADM_MAX_CHANNELS && channel_input[fe_id][i] > 0;
1499 ++i) {
1500 be_id = channel_input[fe_id][i] - 1;
1501 channel_mixer[fe_id].input_channels[i] =
1502 msm_bedais[be_id].channel;
1503
1504 if ((msm_bedais[be_id].active) &&
1505 test_bit(fe_id,
1506 &msm_bedais[be_id].fe_sessions[0])) {
1507 unsigned long copp =
1508 session_copp_map[fe_id][sess_type][be_id];
1509 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1510 if (test_bit(j, &copp)) {
1511 copp_idx = j;
1512 break;
1513 }
1514 }
1515
1516 pr_debug("%s: fe %d, be %d, channel %d, copp %d\n",
1517 __func__,
1518 fe_id, be_id, msm_bedais[be_id].channel,
1519 copp_idx);
1520 ret = adm_programable_channel_mixer(
1521 msm_bedais[be_id].port_id,
1522 copp_idx, dspst_id, sess_type,
1523 channel_mixer + fe_id, i);
1524 }
1525 }
1526
1527 return ret;
1528}
1529
1530int msm_pcm_routing_reg_phy_stream(int fedai_id, int perf_mode,
1531 int dspst_id, int stream_type)
1532{
1533 int i, j, session_type, path_type, port_type, topology, num_copps = 0;
1534 struct route_payload payload;
1535 u32 channels, sample_rate;
1536 uint16_t bits_per_sample = 16;
1537 uint32_t passthr_mode = LEGACY_PCM;
1538 int ret = 0;
1539
1540 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1541 /* bad ID assigned in machine driver */
1542 pr_err("%s: bad MM ID %d\n", __func__, fedai_id);
1543 return -EINVAL;
1544 }
1545
1546 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1547 session_type = SESSION_TYPE_RX;
1548 path_type = ADM_PATH_PLAYBACK;
1549 port_type = MSM_AFE_PORT_TYPE_RX;
1550 } else {
1551 session_type = SESSION_TYPE_TX;
1552 path_type = ADM_PATH_LIVE_REC;
1553 port_type = MSM_AFE_PORT_TYPE_TX;
1554 }
1555
1556 mutex_lock(&routing_lock);
1557
1558 payload.num_copps = 0; /* only RX needs to use payload */
1559 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1560 fe_dai_map[fedai_id][session_type].perf_mode = perf_mode;
1561
1562 /* re-enable EQ if active */
1563 msm_qti_pp_send_eq_values(fedai_id);
1564 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1565 if (!is_be_dai_extproc(i) &&
1566 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1567 (msm_bedais[i].active) &&
1568 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1569 int app_type, app_type_idx, copp_idx, acdb_dev_id;
1570 /*
1571 * check if ADM needs to be configured with different
1572 * channel mapping than backend
1573 */
1574 if (!msm_bedais[i].adm_override_ch)
1575 channels = msm_bedais[i].channel;
1576 else
1577 channels = msm_bedais[i].adm_override_ch;
1578 msm_bedais[i].passthr_mode[fedai_id] =
1579 LEGACY_PCM;
1580
1581 bits_per_sample = msm_routing_get_bit_width(
1582 msm_bedais[i].format);
1583
1584 app_type =
1585 fe_dai_app_type_cfg[fedai_id][session_type][i].app_type;
1586 if (app_type) {
1587 app_type_idx =
1588 msm_pcm_routing_get_app_type_idx(app_type);
1589 sample_rate =
1590 fe_dai_app_type_cfg[fedai_id][session_type][i]
1591 .sample_rate;
1592 bits_per_sample =
1593 app_type_cfg[app_type_idx].bit_width;
1594 } else
1595 sample_rate = msm_bedais[i].sample_rate;
1596
1597 acdb_dev_id =
1598 fe_dai_app_type_cfg[fedai_id][session_type][i]
1599 .acdb_dev_id;
1600 topology = msm_routing_get_adm_topology(fedai_id,
1601 session_type,
1602 i);
1603 copp_idx = adm_open(msm_bedais[i].port_id, path_type,
1604 sample_rate, channels, topology,
1605 perf_mode, bits_per_sample,
1606 app_type, acdb_dev_id);
1607 if ((copp_idx < 0) ||
1608 (copp_idx >= MAX_COPPS_PER_PORT)) {
1609 pr_err("%s: adm open failed copp_idx:%d\n",
Vikram Panduranga770b8382017-09-27 12:17:36 -07001610 __func__, copp_idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301611 mutex_unlock(&routing_lock);
1612 return -EINVAL;
1613 }
1614 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
1615 __func__, fedai_id, session_type, i);
1616 set_bit(copp_idx,
1617 &session_copp_map[fedai_id][session_type][i]);
1618
1619 if (msm_is_resample_needed(
1620 sample_rate,
1621 msm_bedais[i].sample_rate))
1622 adm_copp_mfc_cfg(
1623 msm_bedais[i].port_id, copp_idx,
1624 msm_bedais[i].sample_rate);
1625
1626 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1627 unsigned long copp =
1628 session_copp_map[fedai_id][session_type][i];
1629 if (test_bit(j, &copp)) {
1630 payload.port_id[num_copps] =
1631 msm_bedais[i].port_id;
1632 payload.copp_idx[num_copps] = j;
1633 payload.app_type[num_copps] =
1634 fe_dai_app_type_cfg
1635 [fedai_id][session_type]
1636 [i].app_type;
1637 payload.acdb_dev_id[num_copps] =
1638 fe_dai_app_type_cfg
1639 [fedai_id][session_type]
1640 [i].acdb_dev_id;
1641 payload.sample_rate[num_copps] =
1642 fe_dai_app_type_cfg
1643 [fedai_id][session_type]
1644 [i].sample_rate;
1645 num_copps++;
1646 }
1647 }
1648 if ((perf_mode == LEGACY_PCM_MODE) &&
1649 (msm_bedais[i].passthr_mode[fedai_id] ==
1650 LEGACY_PCM))
1651 msm_pcm_routing_cfg_pp(msm_bedais[i].port_id,
1652 copp_idx, topology,
1653 channels);
1654 }
1655 }
1656 if (num_copps) {
1657 payload.num_copps = num_copps;
1658 payload.session_id = fe_dai_map[fedai_id][session_type].strm_id;
1659 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1660 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1661 }
1662
1663 ret = msm_pcm_routing_channel_mixer(fedai_id, perf_mode,
1664 dspst_id, stream_type);
1665 mutex_unlock(&routing_lock);
1666 return ret;
1667}
1668
1669int msm_pcm_routing_reg_phy_stream_v2(int fedai_id, int perf_mode,
1670 int dspst_id, int stream_type,
1671 struct msm_pcm_routing_evt event_info)
1672{
1673 if (msm_pcm_routing_reg_phy_stream(fedai_id, perf_mode, dspst_id,
1674 stream_type)) {
1675 pr_err("%s: failed to reg phy stream\n", __func__);
1676 return -EINVAL;
1677 }
1678
1679 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1680 fe_dai_map[fedai_id][SESSION_TYPE_RX].event_info = event_info;
1681 else
1682 fe_dai_map[fedai_id][SESSION_TYPE_TX].event_info = event_info;
1683 return 0;
1684}
1685
1686void msm_pcm_routing_dereg_phy_stream(int fedai_id, int stream_type)
1687{
1688 int i, port_type, session_type, path_type, topology;
1689 struct msm_pcm_routing_fdai_data *fdai;
1690
1691 if (!is_mm_lsm_fe_id(fedai_id)) {
1692 /* bad ID assigned in machine driver */
1693 pr_err("%s: bad MM ID\n", __func__);
1694 return;
1695 }
1696
1697 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1698 port_type = MSM_AFE_PORT_TYPE_RX;
1699 session_type = SESSION_TYPE_RX;
1700 path_type = ADM_PATH_PLAYBACK;
1701 } else {
1702 port_type = MSM_AFE_PORT_TYPE_TX;
1703 session_type = SESSION_TYPE_TX;
1704 path_type = ADM_PATH_LIVE_REC;
1705 }
1706
1707 mutex_lock(&routing_lock);
1708 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1709 if (!is_be_dai_extproc(i) &&
1710 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1711 (msm_bedais[i].active) &&
1712 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1713 int idx;
1714 unsigned long copp =
1715 session_copp_map[fedai_id][session_type][i];
1716 fdai = &fe_dai_map[fedai_id][session_type];
1717
1718 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
1719 if (test_bit(idx, &copp))
1720 break;
1721
1722 if (idx >= MAX_COPPS_PER_PORT || idx < 0) {
1723 pr_debug("%s: copp idx is invalid, exiting\n",
1724 __func__);
1725 continue;
1726 }
1727 topology = adm_get_topology_for_port_copp_idx(
1728 msm_bedais[i].port_id, idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07001729 msm_routing_unload_topology(topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301730 adm_close(msm_bedais[i].port_id, fdai->perf_mode, idx);
1731 pr_debug("%s:copp:%ld,idx bit fe:%d,type:%d,be:%d\n",
1732 __func__, copp, fedai_id, session_type, i);
1733 clear_bit(idx,
1734 &session_copp_map[fedai_id][session_type][i]);
1735 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
1736 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
1737 (fdai->perf_mode == LEGACY_PCM_MODE) &&
1738 (msm_bedais[i].passthr_mode[fedai_id] ==
1739 LEGACY_PCM))
1740 msm_pcm_routing_deinit_pp(msm_bedais[i].port_id,
1741 topology);
1742 }
1743 }
1744
1745 fe_dai_map[fedai_id][session_type].strm_id = INVALID_SESSION;
1746 fe_dai_map[fedai_id][session_type].be_srate = 0;
1747 mutex_unlock(&routing_lock);
1748}
1749
1750/* Check if FE/BE route is set */
1751static bool msm_pcm_routing_route_is_set(u16 be_id, u16 fe_id)
1752{
1753 bool rc = false;
1754
1755 if (!is_mm_lsm_fe_id(fe_id)) {
1756 /* recheck FE ID in the mixer control defined in this file */
1757 pr_err("%s: bad MM ID\n", __func__);
1758 return rc;
1759 }
1760
1761 if (test_bit(fe_id, &msm_bedais[be_id].fe_sessions[0]))
1762 rc = true;
1763
1764 return rc;
1765}
1766
1767static void msm_pcm_routing_process_audio(u16 reg, u16 val, int set)
1768{
1769 int session_type, path_type, topology;
1770 u32 channels, sample_rate;
1771 uint16_t bits_per_sample = 16;
1772 struct msm_pcm_routing_fdai_data *fdai;
1773 uint32_t passthr_mode;
1774 bool is_lsm;
1775
1776 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
1777
1778 if (!is_mm_lsm_fe_id(val)) {
1779 /* recheck FE ID in the mixer control defined in this file */
1780 pr_err("%s: bad MM ID\n", __func__);
1781 return;
1782 }
1783
1784 if (!route_check_fe_id_adm_support(val)) {
1785 /* ignore adm open if not supported for fe_id */
1786 pr_debug("%s: No ADM support for fe id %d\n", __func__, val);
1787 return;
1788 }
1789
1790 passthr_mode = msm_bedais[reg].passthr_mode[val];
1791 if (afe_get_port_type(msm_bedais[reg].port_id) ==
1792 MSM_AFE_PORT_TYPE_RX) {
1793 session_type = SESSION_TYPE_RX;
1794 if (passthr_mode != LEGACY_PCM)
1795 path_type = ADM_PATH_COMPRESSED_RX;
1796 else
1797 path_type = ADM_PATH_PLAYBACK;
1798 } else {
1799 session_type = SESSION_TYPE_TX;
Ralf Herzc8701f72018-06-20 11:37:35 +02001800 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301801 path_type = ADM_PATH_COMPRESSED_TX;
1802 else
1803 path_type = ADM_PATH_LIVE_REC;
1804 }
1805 is_lsm = (val >= MSM_FRONTEND_DAI_LSM1) &&
1806 (val <= MSM_FRONTEND_DAI_LSM8);
1807
1808 mutex_lock(&routing_lock);
1809 if (set) {
1810 if (!test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
1811 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
1812 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
1813 voc_start_playback(set, msm_bedais[reg].port_id);
1814
1815 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
1816 fdai = &fe_dai_map[val][session_type];
1817 if (msm_bedais[reg].active && fdai->strm_id !=
1818 INVALID_SESSION) {
1819 int app_type, app_type_idx, copp_idx, acdb_dev_id;
1820 /*
1821 * check if ADM needs to be configured with different
1822 * channel mapping than backend
1823 */
1824 if (!msm_bedais[reg].adm_override_ch)
1825 channels = msm_bedais[reg].channel;
1826 else
1827 channels = msm_bedais[reg].adm_override_ch;
1828 if (session_type == SESSION_TYPE_TX &&
1829 fdai->be_srate &&
1830 (fdai->be_srate != msm_bedais[reg].sample_rate)) {
1831 pr_debug("%s: flush strm %d diff BE rates\n",
1832 __func__, fdai->strm_id);
1833
1834 if (fdai->event_info.event_func)
1835 fdai->event_info.event_func(
1836 MSM_PCM_RT_EVT_BUF_RECFG,
1837 fdai->event_info.priv_data);
1838 fdai->be_srate = 0; /* might not need it */
1839 }
1840
1841 bits_per_sample = msm_routing_get_bit_width(
1842 msm_bedais[reg].format);
1843
1844 app_type =
1845 fe_dai_app_type_cfg[val][session_type][reg].app_type;
1846 if (app_type && is_lsm) {
1847 app_type_idx =
1848 msm_pcm_routing_get_lsm_app_type_idx(app_type);
1849 sample_rate =
1850 fe_dai_app_type_cfg[val][session_type][reg]
1851 .sample_rate;
1852 bits_per_sample =
1853 lsm_app_type_cfg[app_type_idx].bit_width;
1854 } else if (app_type) {
1855 app_type_idx =
1856 msm_pcm_routing_get_app_type_idx(app_type);
1857 sample_rate =
1858 fe_dai_app_type_cfg[val][session_type][reg]
1859 .sample_rate;
1860 bits_per_sample =
1861 app_type_cfg[app_type_idx].bit_width;
1862 } else
1863 sample_rate = msm_bedais[reg].sample_rate;
1864
1865 topology = msm_routing_get_adm_topology(val,
1866 session_type,
1867 reg);
1868 acdb_dev_id =
1869 fe_dai_app_type_cfg[val][session_type][reg].acdb_dev_id;
1870 copp_idx = adm_open(msm_bedais[reg].port_id, path_type,
1871 sample_rate, channels, topology,
1872 fdai->perf_mode, bits_per_sample,
1873 app_type, acdb_dev_id);
1874 if ((copp_idx < 0) ||
1875 (copp_idx >= MAX_COPPS_PER_PORT)) {
1876 pr_err("%s: adm open failed\n", __func__);
1877 mutex_unlock(&routing_lock);
1878 return;
1879 }
1880 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
1881 __func__, val, session_type, reg);
1882 set_bit(copp_idx,
1883 &session_copp_map[val][session_type][reg]);
1884
1885 if (msm_is_resample_needed(
1886 sample_rate,
1887 msm_bedais[reg].sample_rate))
1888 adm_copp_mfc_cfg(
1889 msm_bedais[reg].port_id, copp_idx,
1890 msm_bedais[reg].sample_rate);
1891
1892 if (session_type == SESSION_TYPE_RX &&
1893 fdai->event_info.event_func)
1894 fdai->event_info.event_func(
1895 MSM_PCM_RT_EVT_DEVSWITCH,
1896 fdai->event_info.priv_data);
1897
1898 msm_pcm_routing_build_matrix(val, session_type,
1899 path_type,
1900 fdai->perf_mode,
1901 passthr_mode);
1902 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
1903 (passthr_mode == LEGACY_PCM))
1904 msm_pcm_routing_cfg_pp(msm_bedais[reg].port_id,
1905 copp_idx, topology,
1906 channels);
1907 }
1908 } else {
1909 if (test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
1910 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
1911 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
1912 voc_start_playback(set, msm_bedais[reg].port_id);
1913 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
1914 fdai = &fe_dai_map[val][session_type];
1915 if (msm_bedais[reg].active && fdai->strm_id !=
1916 INVALID_SESSION) {
1917 int idx;
1918 int port_id;
1919 unsigned long copp =
1920 session_copp_map[val][session_type][reg];
1921 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
1922 if (test_bit(idx, &copp))
1923 break;
1924
1925 port_id = msm_bedais[reg].port_id;
1926 topology = adm_get_topology_for_port_copp_idx(port_id,
1927 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07001928 msm_routing_unload_topology(topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301929 adm_close(msm_bedais[reg].port_id, fdai->perf_mode,
1930 idx);
1931 pr_debug("%s: copp: %ld, reset idx bit fe:%d, type: %d, be:%d topology=0x%x\n",
1932 __func__, copp, val, session_type, reg,
1933 topology);
1934 clear_bit(idx,
1935 &session_copp_map[val][session_type][reg]);
1936 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
1937 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
1938 (fdai->perf_mode == LEGACY_PCM_MODE) &&
1939 (passthr_mode == LEGACY_PCM))
1940 msm_pcm_routing_deinit_pp(
1941 msm_bedais[reg].port_id,
1942 topology);
1943 msm_pcm_routing_build_matrix(val, session_type,
1944 path_type,
1945 fdai->perf_mode,
1946 passthr_mode);
1947 }
1948 }
1949 if ((msm_bedais[reg].port_id == VOICE_RECORD_RX)
1950 || (msm_bedais[reg].port_id == VOICE_RECORD_TX))
1951 voc_start_record(msm_bedais[reg].port_id, set, voc_session_id);
1952
1953 mutex_unlock(&routing_lock);
1954}
1955
1956static int msm_routing_get_audio_mixer(struct snd_kcontrol *kcontrol,
1957 struct snd_ctl_elem_value *ucontrol)
1958{
1959 struct soc_mixer_control *mc =
1960 (struct soc_mixer_control *)kcontrol->private_value;
1961
Meng Wang05d5e9a2018-03-28 16:45:03 +08001962 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301963 ucontrol->value.integer.value[0] = 1;
1964 else
1965 ucontrol->value.integer.value[0] = 0;
1966
Meng Wang05d5e9a2018-03-28 16:45:03 +08001967 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301968 ucontrol->value.integer.value[0]);
1969
1970 return 0;
1971}
1972
1973static int msm_routing_put_audio_mixer(struct snd_kcontrol *kcontrol,
1974 struct snd_ctl_elem_value *ucontrol)
1975{
Asish Bhattacharya34504582017-08-08 12:55:01 +05301976 struct snd_soc_dapm_widget *widget =
1977 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301978 struct soc_mixer_control *mc =
1979 (struct soc_mixer_control *)kcontrol->private_value;
1980 struct snd_soc_dapm_update *update = NULL;
1981
1982 if (ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08001983 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false) {
1984 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301985 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
1986 update);
1987 } else if (!ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08001988 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true) {
1989 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301990 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
1991 update);
1992 }
1993
1994 return 1;
1995}
1996
1997static int msm_routing_get_listen_mixer(struct snd_kcontrol *kcontrol,
1998 struct snd_ctl_elem_value *ucontrol)
1999{
2000 struct soc_mixer_control *mc =
2001 (struct soc_mixer_control *)kcontrol->private_value;
2002
Meng Wang05d5e9a2018-03-28 16:45:03 +08002003 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302004 ucontrol->value.integer.value[0] = 1;
2005 else
2006 ucontrol->value.integer.value[0] = 0;
2007
Meng Wang05d5e9a2018-03-28 16:45:03 +08002008 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302009 ucontrol->value.integer.value[0]);
2010
2011 return 0;
2012}
2013
2014static int msm_routing_put_listen_mixer(struct snd_kcontrol *kcontrol,
2015 struct snd_ctl_elem_value *ucontrol)
2016{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302017 struct snd_soc_dapm_widget *widget =
2018 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302019 struct soc_mixer_control *mc =
2020 (struct soc_mixer_control *)kcontrol->private_value;
2021 struct snd_soc_dapm_update *update = NULL;
2022
Meng Wang05d5e9a2018-03-28 16:45:03 +08002023 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302024 ucontrol->value.integer.value[0]);
2025
2026 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002027 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false)
2028 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302029 snd_soc_dapm_mixer_update_power(widget->dapm,
2030 kcontrol, 1, update);
2031 } else if (!ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002032 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true)
2033 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302034 snd_soc_dapm_mixer_update_power(widget->dapm,
2035 kcontrol, 0, update);
2036 }
2037
2038 return 1;
2039}
2040
2041static void msm_pcm_routing_process_voice(u16 reg, u16 val, int set)
2042{
2043 u32 session_id = 0;
2044 u16 path_type;
2045 struct media_format_info voc_be_media_format;
2046
2047 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
2048
2049 session_id = msm_pcm_routing_get_voc_sessionid(val);
2050
2051 pr_debug("%s: FE DAI 0x%x session_id 0x%x\n",
2052 __func__, val, session_id);
2053
2054 mutex_lock(&routing_lock);
2055
2056 if (set)
2057 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
2058 else
2059 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
2060
2061 if (val == MSM_FRONTEND_DAI_DTMF_RX &&
2062 afe_get_port_type(msm_bedais[reg].port_id) ==
2063 MSM_AFE_PORT_TYPE_RX) {
2064 pr_debug("%s(): set=%d port id=0x%x for dtmf generation\n",
2065 __func__, set, msm_bedais[reg].port_id);
2066 afe_set_dtmf_gen_rx_portid(msm_bedais[reg].port_id, set);
2067 }
2068
2069 if (afe_get_port_type(msm_bedais[reg].port_id) ==
2070 MSM_AFE_PORT_TYPE_RX)
2071 path_type = RX_PATH;
2072 else
2073 path_type = TX_PATH;
2074
2075 if (set) {
2076 if (msm_bedais[reg].active) {
2077 voc_set_route_flag(session_id, path_type, 1);
2078
2079 memset(&voc_be_media_format, 0,
2080 sizeof(struct media_format_info));
2081
2082 voc_be_media_format.port_id = msm_bedais[reg].port_id;
2083 voc_be_media_format.num_channels =
2084 msm_bedais[reg].channel;
2085 voc_be_media_format.sample_rate =
2086 msm_bedais[reg].sample_rate;
2087 voc_be_media_format.bits_per_sample =
2088 msm_bedais[reg].format;
2089 /* Defaulting this to 1 for voice call usecases */
2090 voc_be_media_format.channel_mapping[0] = 1;
2091
2092 voc_set_device_config(session_id, path_type,
2093 &voc_be_media_format);
2094
2095 if (voc_get_route_flag(session_id, TX_PATH) &&
2096 voc_get_route_flag(session_id, RX_PATH))
2097 voc_enable_device(session_id);
2098 } else {
2099 pr_debug("%s BE is not active\n", __func__);
2100 }
2101 } else {
2102 voc_set_route_flag(session_id, path_type, 0);
2103 voc_disable_device(session_id);
2104 }
2105
2106 mutex_unlock(&routing_lock);
2107
2108}
2109
2110static int msm_routing_get_voice_mixer(struct snd_kcontrol *kcontrol,
2111 struct snd_ctl_elem_value *ucontrol)
2112{
2113 struct soc_mixer_control *mc =
2114 (struct soc_mixer_control *)kcontrol->private_value;
2115
2116 mutex_lock(&routing_lock);
2117
Meng Wang05d5e9a2018-03-28 16:45:03 +08002118 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302119 ucontrol->value.integer.value[0] = 1;
2120 else
2121 ucontrol->value.integer.value[0] = 0;
2122
2123 mutex_unlock(&routing_lock);
2124
Meng Wang05d5e9a2018-03-28 16:45:03 +08002125 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302126 ucontrol->value.integer.value[0]);
2127
2128 return 0;
2129}
2130
2131static int msm_routing_put_voice_mixer(struct snd_kcontrol *kcontrol,
2132 struct snd_ctl_elem_value *ucontrol)
2133{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302134 struct snd_soc_dapm_widget *widget =
2135 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302136 struct soc_mixer_control *mc =
2137 (struct soc_mixer_control *)kcontrol->private_value;
2138 struct snd_soc_dapm_update *update = NULL;
2139
2140 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002141 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302142 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2143 update);
2144 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002145 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302146 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2147 update);
2148 }
2149
2150 return 1;
2151}
2152
2153static int msm_routing_get_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2154 struct snd_ctl_elem_value *ucontrol)
2155{
2156 struct soc_mixer_control *mc =
2157 (struct soc_mixer_control *)kcontrol->private_value;
2158
2159 mutex_lock(&routing_lock);
2160
Meng Wang05d5e9a2018-03-28 16:45:03 +08002161 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302162 ucontrol->value.integer.value[0] = 1;
2163 else
2164 ucontrol->value.integer.value[0] = 0;
2165
2166 mutex_unlock(&routing_lock);
2167
Meng Wang05d5e9a2018-03-28 16:45:03 +08002168 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302169 ucontrol->value.integer.value[0]);
2170
2171 return 0;
2172}
2173
2174static int msm_routing_put_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2175 struct snd_ctl_elem_value *ucontrol)
2176{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302177 struct snd_soc_dapm_widget *widget =
2178 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302179 struct soc_mixer_control *mc =
2180 (struct soc_mixer_control *)kcontrol->private_value;
2181 struct snd_soc_dapm_update *update = NULL;
2182
2183 if (ucontrol->value.integer.value[0]) {
2184 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002185 set_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302186 mutex_unlock(&routing_lock);
2187
2188 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2189 update);
2190 } else {
2191 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002192 clear_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302193 mutex_unlock(&routing_lock);
2194
2195 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2196 update);
2197 }
2198
Meng Wang05d5e9a2018-03-28 16:45:03 +08002199 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302200 ucontrol->value.integer.value[0]);
2201
2202 return 1;
2203}
2204
2205/*
2206 * Return the mapping between port ID and backend ID to enable the AFE callback
2207 * to determine the acdb_dev_id from the port id
2208 */
2209int msm_pcm_get_be_id_from_port_id(int port_id)
2210{
2211 int i;
2212 int be_id = -EINVAL;
2213
2214 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
2215 if (msm_bedais[i].port_id == port_id) {
2216 be_id = i;
2217 break;
2218 }
2219 }
2220
2221 return be_id;
2222}
2223
2224/*
2225 * Return the registered dev_acdb_id given a port ID to enable identifying the
2226 * correct AFE calibration information by comparing the header information.
2227 */
2228static int msm_pcm_get_dev_acdb_id_by_port_id(int port_id)
2229{
2230 int acdb_id = -EINVAL;
2231 int i = 0;
2232 int session;
2233 int port_type = afe_get_port_type(port_id);
2234 int be_id = msm_pcm_get_be_id_from_port_id(port_id);
2235
2236 pr_debug("%s:port_id %d be_id %d, port_type 0x%x\n",
2237 __func__, port_id, be_id, port_type);
2238
2239 if (port_type == MSM_AFE_PORT_TYPE_TX) {
2240 session = SESSION_TYPE_TX;
2241 } else if (port_type == MSM_AFE_PORT_TYPE_RX) {
2242 session = SESSION_TYPE_RX;
2243 } else {
2244 pr_err("%s: Invalid port type %d\n", __func__, port_type);
2245 acdb_id = -EINVAL;
2246 goto exit;
2247 }
2248
2249 if (be_id < 0) {
2250 pr_err("%s: Error getting backend id %d\n", __func__, be_id);
2251 goto exit;
2252 }
2253
2254 mutex_lock(&routing_lock);
2255 i = find_first_bit(&msm_bedais[be_id].fe_sessions[0],
2256 MSM_FRONTEND_DAI_MAX);
2257 if (i < MSM_FRONTEND_DAI_MAX)
2258 acdb_id = fe_dai_app_type_cfg[i][session][be_id].acdb_dev_id;
2259
2260 pr_debug("%s: FE[%d] session[%d] BE[%d] acdb_id(%d)\n",
2261 __func__, i, session, be_id, acdb_id);
2262 mutex_unlock(&routing_lock);
2263exit:
2264 return acdb_id;
2265}
2266
2267static int msm_routing_get_switch_mixer(struct snd_kcontrol *kcontrol,
2268 struct snd_ctl_elem_value *ucontrol)
2269{
2270 ucontrol->value.integer.value[0] = fm_switch_enable;
2271 pr_debug("%s: FM Switch enable %ld\n", __func__,
2272 ucontrol->value.integer.value[0]);
2273 return 0;
2274}
2275
2276static int msm_routing_put_switch_mixer(struct snd_kcontrol *kcontrol,
2277 struct snd_ctl_elem_value *ucontrol)
2278{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302279 struct snd_soc_dapm_widget *widget =
2280 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302281 struct snd_soc_dapm_update *update = NULL;
2282
2283 pr_debug("%s: FM Switch enable %ld\n", __func__,
2284 ucontrol->value.integer.value[0]);
2285 if (ucontrol->value.integer.value[0])
2286 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2287 update);
2288 else
2289 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2290 update);
2291 fm_switch_enable = ucontrol->value.integer.value[0];
2292 return 1;
2293}
2294
2295static int msm_routing_get_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2296 struct snd_ctl_elem_value *ucontrol)
2297{
2298 ucontrol->value.integer.value[0] = hfp_switch_enable;
2299 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2300 ucontrol->value.integer.value[0]);
2301 return 0;
2302}
2303
2304static int msm_routing_put_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2305 struct snd_ctl_elem_value *ucontrol)
2306{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302307 struct snd_soc_dapm_widget *widget =
2308 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302309 struct snd_soc_dapm_update *update = NULL;
2310
2311 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2312 ucontrol->value.integer.value[0]);
2313 if (ucontrol->value.integer.value[0])
2314 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2315 1, update);
2316 else
2317 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2318 0, update);
2319 hfp_switch_enable = ucontrol->value.integer.value[0];
2320 return 1;
2321}
2322
Aniket Kumar Latac0c31472018-02-22 14:46:09 -08002323static int msm_routing_a2dp_switch_mixer_get(struct snd_kcontrol *kcontrol,
2324 struct snd_ctl_elem_value *ucontrol)
2325{
2326 ucontrol->value.integer.value[0] = a2dp_switch_enable;
2327 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2328 ucontrol->value.integer.value[0]);
2329 return 0;
2330}
2331
2332static int msm_routing_a2dp_switch_mixer_put(struct snd_kcontrol *kcontrol,
2333 struct snd_ctl_elem_value *ucontrol)
2334{
2335 struct snd_soc_dapm_widget *widget =
2336 snd_soc_dapm_kcontrol_widget(kcontrol);
2337 struct snd_soc_dapm_update *update = NULL;
2338
2339 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2340 ucontrol->value.integer.value[0]);
2341 a2dp_switch_enable = ucontrol->value.integer.value[0];
2342 if (a2dp_switch_enable)
2343 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2344 1, update);
2345 else
2346 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2347 0, update);
2348 return 1;
2349}
2350
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302351static int msm_routing_get_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2352 struct snd_ctl_elem_value *ucontrol)
2353{
2354 ucontrol->value.integer.value[0] = int0_mi2s_switch_enable;
2355 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2356 ucontrol->value.integer.value[0]);
2357 return 0;
2358}
2359
2360static int msm_routing_put_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2361 struct snd_ctl_elem_value *ucontrol)
2362{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302363 struct snd_soc_dapm_widget *widget =
2364 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302365 struct snd_soc_dapm_update *update = NULL;
2366
2367 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2368 ucontrol->value.integer.value[0]);
2369 if (ucontrol->value.integer.value[0])
2370 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2371 update);
2372 else
2373 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2374 update);
2375 int0_mi2s_switch_enable = ucontrol->value.integer.value[0];
2376 return 1;
2377}
2378
2379static int msm_routing_get_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2380 struct snd_ctl_elem_value *ucontrol)
2381{
2382 ucontrol->value.integer.value[0] = int4_mi2s_switch_enable;
2383 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2384 ucontrol->value.integer.value[0]);
2385 return 0;
2386}
2387
2388static int msm_routing_put_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2389 struct snd_ctl_elem_value *ucontrol)
2390{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302391 struct snd_soc_dapm_widget *widget =
2392 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302393 struct snd_soc_dapm_update *update = NULL;
2394
2395 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2396 ucontrol->value.integer.value[0]);
2397 if (ucontrol->value.integer.value[0])
2398 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2399 update);
2400 else
2401 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2402 update);
2403 int4_mi2s_switch_enable = ucontrol->value.integer.value[0];
2404 return 1;
2405}
2406
2407static int msm_routing_get_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2408 struct snd_ctl_elem_value *ucontrol)
2409{
2410 ucontrol->value.integer.value[0] = usb_switch_enable;
2411 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2412 ucontrol->value.integer.value[0]);
2413 return 0;
2414}
2415
2416static int msm_routing_put_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2417 struct snd_ctl_elem_value *ucontrol)
2418{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302419 struct snd_soc_dapm_widget *widget =
2420 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302421 struct snd_soc_dapm_update *update = NULL;
2422
2423 pr_debug("%s: USB Switch enable %ld\n", __func__,
2424 ucontrol->value.integer.value[0]);
2425 if (ucontrol->value.integer.value[0])
2426 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2427 1, update);
2428 else
2429 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2430 0, update);
2431 usb_switch_enable = ucontrol->value.integer.value[0];
2432 return 1;
2433}
2434
2435static int msm_routing_get_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2436 struct snd_ctl_elem_value *ucontrol)
2437{
2438 ucontrol->value.integer.value[0] = pri_mi2s_switch_enable;
2439 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2440 ucontrol->value.integer.value[0]);
2441 return 0;
2442}
2443
2444static int msm_routing_put_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2445 struct snd_ctl_elem_value *ucontrol)
2446{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302447 struct snd_soc_dapm_widget *widget =
2448 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302449 struct snd_soc_dapm_update *update = NULL;
2450
2451 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2452 ucontrol->value.integer.value[0]);
2453 if (ucontrol->value.integer.value[0])
2454 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2455 update);
2456 else
2457 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2458 update);
2459 pri_mi2s_switch_enable = ucontrol->value.integer.value[0];
2460 return 1;
2461}
2462
2463static int msm_routing_get_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2464 struct snd_ctl_elem_value *ucontrol)
2465{
2466 ucontrol->value.integer.value[0] = sec_mi2s_switch_enable;
2467 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2468 ucontrol->value.integer.value[0]);
2469 return 0;
2470}
2471
2472static int msm_routing_put_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2473 struct snd_ctl_elem_value *ucontrol)
2474{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302475 struct snd_soc_dapm_widget *widget =
2476 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302477 struct snd_soc_dapm_update *update = NULL;
2478
2479 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2480 ucontrol->value.integer.value[0]);
2481 if (ucontrol->value.integer.value[0])
2482 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2483 update);
2484 else
2485 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2486 update);
2487 sec_mi2s_switch_enable = ucontrol->value.integer.value[0];
2488 return 1;
2489}
2490
2491static int msm_routing_get_tert_mi2s_switch_mixer(
2492 struct snd_kcontrol *kcontrol,
2493 struct snd_ctl_elem_value *ucontrol)
2494{
2495 ucontrol->value.integer.value[0] = tert_mi2s_switch_enable;
2496 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2497 ucontrol->value.integer.value[0]);
2498 return 0;
2499}
2500
2501static int msm_routing_put_tert_mi2s_switch_mixer(
2502 struct snd_kcontrol *kcontrol,
2503 struct snd_ctl_elem_value *ucontrol)
2504{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302505 struct snd_soc_dapm_widget *widget =
2506 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302507 struct snd_soc_dapm_update *update = NULL;
2508
2509 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2510 ucontrol->value.integer.value[0]);
2511 if (ucontrol->value.integer.value[0])
2512 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2513 update);
2514 else
2515 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2516 update);
2517 tert_mi2s_switch_enable = ucontrol->value.integer.value[0];
2518 return 1;
2519}
2520
2521static int msm_routing_get_quat_mi2s_switch_mixer(
2522 struct snd_kcontrol *kcontrol,
2523 struct snd_ctl_elem_value *ucontrol)
2524{
2525 ucontrol->value.integer.value[0] = quat_mi2s_switch_enable;
2526 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2527 ucontrol->value.integer.value[0]);
2528 return 0;
2529}
2530
2531static int msm_routing_put_quat_mi2s_switch_mixer(
2532 struct snd_kcontrol *kcontrol,
2533 struct snd_ctl_elem_value *ucontrol)
2534{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302535 struct snd_soc_dapm_widget *widget =
2536 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302537 struct snd_soc_dapm_update *update = NULL;
2538
2539 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2540 ucontrol->value.integer.value[0]);
2541 if (ucontrol->value.integer.value[0])
2542 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2543 update);
2544 else
2545 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2546 update);
2547 quat_mi2s_switch_enable = ucontrol->value.integer.value[0];
2548 return 1;
2549}
2550
Rohit Kumara5077932017-09-10 22:05:05 +05302551static int msm_routing_get_quin_mi2s_switch_mixer(
2552 struct snd_kcontrol *kcontrol,
2553 struct snd_ctl_elem_value *ucontrol)
2554{
2555 ucontrol->value.integer.value[0] = quin_mi2s_switch_enable;
2556 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2557 ucontrol->value.integer.value[0]);
2558 return 0;
2559}
2560
2561static int msm_routing_put_quin_mi2s_switch_mixer(
2562 struct snd_kcontrol *kcontrol,
2563 struct snd_ctl_elem_value *ucontrol)
2564{
2565 struct snd_soc_dapm_widget *widget =
2566 snd_soc_dapm_kcontrol_widget(kcontrol);
2567 struct snd_soc_dapm_update *update = NULL;
2568
2569 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2570 ucontrol->value.integer.value[0]);
2571 if (ucontrol->value.integer.value[0])
2572 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2573 update);
2574 else
2575 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2576 update);
2577 quin_mi2s_switch_enable = ucontrol->value.integer.value[0];
2578 return 1;
2579}
2580
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302581static int msm_routing_get_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2582 struct snd_ctl_elem_value *ucontrol)
2583{
2584 ucontrol->value.integer.value[0] = fm_pcmrx_switch_enable;
2585 pr_debug("%s: FM Switch enable %ld\n", __func__,
2586 ucontrol->value.integer.value[0]);
2587 return 0;
2588}
2589
2590static int msm_routing_put_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2591 struct snd_ctl_elem_value *ucontrol)
2592{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302593 struct snd_soc_dapm_widget *widget =
2594 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302595 struct snd_soc_dapm_update *update = NULL;
2596
2597 pr_debug("%s: FM Switch enable %ld\n", __func__,
2598 ucontrol->value.integer.value[0]);
2599 if (ucontrol->value.integer.value[0])
2600 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2601 update);
2602 else
2603 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2604 update);
2605 fm_pcmrx_switch_enable = ucontrol->value.integer.value[0];
2606 return 1;
2607}
2608
2609static int msm_routing_lsm_port_get(struct snd_kcontrol *kcontrol,
2610 struct snd_ctl_elem_value *ucontrol)
2611{
2612 ucontrol->value.integer.value[0] = lsm_port_index;
2613 return 0;
2614}
2615
2616static int msm_routing_lsm_port_put(struct snd_kcontrol *kcontrol,
2617 struct snd_ctl_elem_value *ucontrol)
2618{
2619 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
2620 int mux = ucontrol->value.enumerated.item[0];
2621 int lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2622
2623 if (mux >= e->items) {
2624 pr_err("%s: Invalid mux value %d\n", __func__, mux);
2625 return -EINVAL;
2626 }
2627
2628 pr_debug("%s: LSM enable %ld\n", __func__,
2629 ucontrol->value.integer.value[0]);
2630 switch (ucontrol->value.integer.value[0]) {
2631 case 1:
2632 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_0_TX;
2633 break;
2634 case 2:
2635 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_1_TX;
2636 break;
2637 case 3:
2638 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_2_TX;
2639 break;
2640 case 4:
2641 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_3_TX;
2642 break;
2643 case 5:
2644 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_4_TX;
2645 break;
2646 case 6:
2647 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2648 break;
2649 case 7:
2650 lsm_port = AFE_PORT_ID_TERTIARY_MI2S_TX;
2651 break;
2652 case 8:
2653 lsm_port = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2654 break;
2655 case 9:
2656 lsm_port = ADM_LSM_PORT_ID;
2657 break;
2658 case 10:
2659 lsm_port = AFE_PORT_ID_INT3_MI2S_TX;
2660 break;
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +05302661 case 11:
2662 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
2663 break;
2664 case 12:
2665 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_1;
2666 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302667 default:
2668 pr_err("Default lsm port");
2669 break;
2670 }
2671 set_lsm_port(lsm_port);
2672 lsm_port_index = ucontrol->value.integer.value[0];
2673
2674 return 0;
2675}
2676
2677static int msm_routing_lsm_func_get(struct snd_kcontrol *kcontrol,
2678 struct snd_ctl_elem_value *ucontrol)
2679{
2680 int i;
2681 u16 port_id;
2682 enum afe_mad_type mad_type;
2683
2684 pr_debug("%s: enter\n", __func__);
2685 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
2686 if (!strnstr(kcontrol->id.name, lsm_port_text[i],
2687 strlen(lsm_port_text[i])))
2688 break;
2689
2690 if (i-- == ARRAY_SIZE(lsm_port_text)) {
2691 WARN(1, "Invalid id name %s\n", kcontrol->id.name);
2692 return -EINVAL;
2693 }
2694
2695 port_id = i * 2 + 1 + SLIMBUS_0_RX;
2696
2697 /*Check for Tertiary/Quaternary/INT3 TX port*/
2698 if (strnstr(kcontrol->id.name, lsm_port_text[7],
2699 strlen(lsm_port_text[7])))
2700 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
2701
2702 if (strnstr(kcontrol->id.name, lsm_port_text[8],
2703 strlen(lsm_port_text[8])))
2704 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2705
2706 if (strnstr(kcontrol->id.name, lsm_port_text[10],
2707 strlen(lsm_port_text[10])))
2708 port_id = AFE_PORT_ID_INT3_MI2S_TX;
2709
2710 mad_type = afe_port_get_mad_type(port_id);
2711 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
2712 mad_type);
2713 switch (mad_type) {
2714 case MAD_HW_NONE:
2715 ucontrol->value.integer.value[0] = MADNONE;
2716 break;
2717 case MAD_HW_AUDIO:
2718 ucontrol->value.integer.value[0] = MADAUDIO;
2719 break;
2720 case MAD_HW_BEACON:
2721 ucontrol->value.integer.value[0] = MADBEACON;
2722 break;
2723 case MAD_HW_ULTRASOUND:
2724 ucontrol->value.integer.value[0] = MADULTRASOUND;
2725 break;
2726 case MAD_SW_AUDIO:
2727 ucontrol->value.integer.value[0] = MADSWAUDIO;
2728 break;
2729 default:
2730 WARN(1, "Unknown\n");
2731 return -EINVAL;
2732 }
2733 return 0;
2734}
2735
2736static int msm_routing_lsm_func_put(struct snd_kcontrol *kcontrol,
2737 struct snd_ctl_elem_value *ucontrol)
2738{
2739 int i;
2740 u16 port_id;
2741 enum afe_mad_type mad_type;
2742
2743 pr_debug("%s: enter\n", __func__);
2744 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
2745 if (strnstr(kcontrol->id.name, lsm_port_text[i],
2746 strlen(lsm_port_text[i])))
2747 break;
2748
2749 if (i-- == ARRAY_SIZE(lsm_port_text)) {
2750 WARN(1, "Invalid id name %s\n", kcontrol->id.name);
2751 return -EINVAL;
2752 }
2753
2754 port_id = i * 2 + 1 + SLIMBUS_0_RX;
2755 switch (ucontrol->value.integer.value[0]) {
2756 case MADNONE:
2757 mad_type = MAD_HW_NONE;
2758 break;
2759 case MADAUDIO:
2760 mad_type = MAD_HW_AUDIO;
2761 break;
2762 case MADBEACON:
2763 mad_type = MAD_HW_BEACON;
2764 break;
2765 case MADULTRASOUND:
2766 mad_type = MAD_HW_ULTRASOUND;
2767 break;
2768 case MADSWAUDIO:
2769 mad_type = MAD_SW_AUDIO;
2770 break;
2771 default:
2772 WARN(1, "Unknown\n");
2773 return -EINVAL;
2774 }
2775
2776 /*Check for Tertiary/Quaternary/INT3 TX port*/
2777 if (strnstr(kcontrol->id.name, lsm_port_text[7],
2778 strlen(lsm_port_text[7])))
2779 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
2780
2781 if (strnstr(kcontrol->id.name, lsm_port_text[8],
2782 strlen(lsm_port_text[8])))
2783 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2784
2785 if (strnstr(kcontrol->id.name, lsm_port_text[10],
2786 strlen(lsm_port_text[10])))
2787 port_id = AFE_PORT_ID_INT3_MI2S_TX;
2788
2789 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
2790 mad_type);
2791 return afe_port_set_mad_type(port_id, mad_type);
2792}
2793
2794static const char *const adm_override_chs_text[] = {"Zero", "One", "Two"};
2795
2796static SOC_ENUM_SINGLE_EXT_DECL(slim_7_rx_adm_override_chs,
2797 adm_override_chs_text);
2798
2799static int msm_routing_adm_get_backend_idx(struct snd_kcontrol *kcontrol)
2800{
2801 int backend_id;
2802
2803 if (strnstr(kcontrol->id.name, "SLIM7_RX", sizeof("SLIM7_RX"))) {
2804 backend_id = MSM_BACKEND_DAI_SLIMBUS_7_RX;
2805 } else {
2806 pr_err("%s: unsupported backend id: %s",
2807 __func__, kcontrol->id.name);
2808 return -EINVAL;
2809 }
2810
2811 return backend_id;
2812}
2813static int msm_routing_adm_channel_config_get(
2814 struct snd_kcontrol *kcontrol,
2815 struct snd_ctl_elem_value *ucontrol)
2816{
2817 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
2818
2819 if (backend_id >= 0) {
2820 mutex_lock(&routing_lock);
2821 ucontrol->value.integer.value[0] =
2822 msm_bedais[backend_id].adm_override_ch;
2823 pr_debug("%s: adm channel count %ld for BE:%d\n", __func__,
2824 ucontrol->value.integer.value[0], backend_id);
2825 mutex_unlock(&routing_lock);
2826 }
2827
2828 return 0;
2829}
2830
2831static int msm_routing_adm_channel_config_put(
2832 struct snd_kcontrol *kcontrol,
2833 struct snd_ctl_elem_value *ucontrol)
2834{
2835 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
2836
2837 if (backend_id >= 0) {
2838 mutex_lock(&routing_lock);
2839 msm_bedais[backend_id].adm_override_ch =
2840 ucontrol->value.integer.value[0];
2841 pr_debug("%s:updating BE :%d adm channels: %d\n",
2842 __func__, backend_id,
2843 msm_bedais[backend_id].adm_override_ch);
2844 mutex_unlock(&routing_lock);
2845 }
2846
2847 return 0;
2848}
2849
2850static const struct snd_kcontrol_new adm_channel_config_controls[] = {
2851 SOC_ENUM_EXT("SLIM7_RX ADM Channels", slim_7_rx_adm_override_chs,
2852 msm_routing_adm_channel_config_get,
2853 msm_routing_adm_channel_config_put),
2854};
2855
2856static int msm_routing_slim_0_rx_aanc_mux_get(struct snd_kcontrol *kcontrol,
2857 struct snd_ctl_elem_value *ucontrol)
2858{
2859
2860 mutex_lock(&routing_lock);
2861 ucontrol->value.integer.value[0] = slim0_rx_aanc_fb_port;
2862 mutex_unlock(&routing_lock);
2863 pr_debug("%s: AANC Mux Port %ld\n", __func__,
2864 ucontrol->value.integer.value[0]);
2865 return 0;
2866};
2867
2868static int msm_routing_slim_0_rx_aanc_mux_put(struct snd_kcontrol *kcontrol,
2869 struct snd_ctl_elem_value *ucontrol)
2870{
2871 struct aanc_data aanc_info;
2872
2873 mutex_lock(&routing_lock);
2874 memset(&aanc_info, 0x00, sizeof(aanc_info));
2875 pr_debug("%s: AANC Mux Port %ld\n", __func__,
2876 ucontrol->value.integer.value[0]);
2877 slim0_rx_aanc_fb_port = ucontrol->value.integer.value[0];
2878 if (ucontrol->value.integer.value[0] == 0) {
2879 aanc_info.aanc_active = false;
2880 aanc_info.aanc_tx_port = 0;
2881 aanc_info.aanc_rx_port = 0;
2882 } else {
2883 aanc_info.aanc_active = true;
2884 aanc_info.aanc_rx_port = SLIMBUS_0_RX;
2885 aanc_info.aanc_tx_port =
2886 (SLIMBUS_0_RX - 1 + (slim0_rx_aanc_fb_port * 2));
2887 }
2888 afe_set_aanc_info(&aanc_info);
2889 mutex_unlock(&routing_lock);
2890 return 0;
2891};
2892static int msm_routing_get_port_mixer(struct snd_kcontrol *kcontrol,
2893 struct snd_ctl_elem_value *ucontrol)
2894{
2895 int idx = 0, shift = 0;
2896 struct soc_mixer_control *mc =
2897 (struct soc_mixer_control *)kcontrol->private_value;
2898
Meng Wang05d5e9a2018-03-28 16:45:03 +08002899 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
2900 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302901
2902 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
2903 pr_err("%s: Invalid idx = %d\n", __func__, idx);
2904 return -EINVAL;
2905 }
2906
2907 if (test_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08002908 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302909 ucontrol->value.integer.value[0] = 1;
2910 else
2911 ucontrol->value.integer.value[0] = 0;
2912
Meng Wang05d5e9a2018-03-28 16:45:03 +08002913 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302914 ucontrol->value.integer.value[0]);
2915
2916 return 0;
2917}
2918
2919static int msm_routing_put_port_mixer(struct snd_kcontrol *kcontrol,
2920 struct snd_ctl_elem_value *ucontrol)
2921{
2922 int idx = 0, shift = 0;
2923 struct soc_mixer_control *mc =
2924 (struct soc_mixer_control *)kcontrol->private_value;
2925
Meng Wang05d5e9a2018-03-28 16:45:03 +08002926 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
2927 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302928
2929 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
2930 pr_err("%s: Invalid idx = %d\n", __func__, idx);
2931 return -EINVAL;
2932 }
2933
Meng Wang05d5e9a2018-03-28 16:45:03 +08002934 pr_debug("%s: shift 0x%x rshift 0x%x val %ld idx %d reminder shift %d\n",
2935 __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302936 ucontrol->value.integer.value[0], idx, shift);
2937
2938 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002939 afe_loopback(1, msm_bedais[mc->shift].port_id,
2940 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302941 set_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08002942 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302943 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002944 afe_loopback(0, msm_bedais[mc->shift].port_id,
2945 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302946 clear_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08002947 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302948 }
2949
2950 return 1;
2951}
2952
2953static int msm_pcm_get_channel_rule_index(struct snd_kcontrol *kcontrol,
2954 struct snd_ctl_elem_value *ucontrol)
2955{
2956 u16 fe_id = 0;
2957
2958 fe_id = ((struct soc_mixer_control *)
2959 kcontrol->private_value)->shift;
2960 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
2961 pr_err("%s: invalid FE %d\n", __func__, fe_id);
2962 return -EINVAL;
2963 }
2964
2965 ucontrol->value.integer.value[0] = channel_mixer[fe_id].rule;
2966
2967 return 0;
2968}
2969
2970static int msm_pcm_put_channel_rule_index(struct snd_kcontrol *kcontrol,
2971 struct snd_ctl_elem_value *ucontrol)
2972{
2973 u16 fe_id = 0;
2974
2975 fe_id = ((struct soc_mixer_control *)
2976 kcontrol->private_value)->shift;
2977 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
2978 pr_err("%s: invalid FE %d\n", __func__, fe_id);
2979 return -EINVAL;
2980 }
2981
2982 channel_mixer[fe_id].rule = ucontrol->value.integer.value[0];
2983
2984 return 1;
2985}
2986
2987static int msm_pcm_get_out_chs(struct snd_kcontrol *kcontrol,
2988 struct snd_ctl_elem_value *ucontrol)
2989{
2990 u16 fe_id = 0;
2991
2992 fe_id = ((struct soc_multi_mixer_control *)
2993 kcontrol->private_value)->shift;
2994 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
2995 pr_err("%s: invalid FE %d\n", __func__, fe_id);
2996 return -EINVAL;
2997 }
2998
2999 ucontrol->value.integer.value[0] =
3000 channel_mixer[fe_id].output_channel;
3001 return 0;
3002}
3003
3004static int msm_pcm_put_out_chs(struct snd_kcontrol *kcontrol,
3005 struct snd_ctl_elem_value *ucontrol)
3006{
3007 u16 fe_id = 0;
3008
3009 fe_id = ((struct soc_multi_mixer_control *)
3010 kcontrol->private_value)->shift;
3011 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3012 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3013 return -EINVAL;
3014 }
3015
3016 pr_debug("%s: fe_id is %d, output channels = %d\n", __func__,
3017 fe_id,
3018 (unsigned int)(ucontrol->value.integer.value[0]));
3019 channel_mixer[fe_id].output_channel =
3020 (unsigned int)(ucontrol->value.integer.value[0]);
3021
3022 return 1;
3023}
3024
3025static const char *const ch_mixer[] = {"Disable", "Enable"};
3026
3027/* If new backend is added, need update this array */
3028static const char *const be_name[] = {
3029"ZERO", "PRI_I2S_RX", "PRI_I2S_TX", "SLIM_0_RX",
3030"SLIM_0_TX", "HDMI_RX", "INT_BT_SCO_RX", "INT_BT_SCO_TX",
3031"INT_FM_RX", "INT_FM_TX", "AFE_PCM_RX", "AFE_PCM_TX",
3032"AUXPCM_RX", "AUXPCM_TX", "VOICE_PLAYBACK_TX", "VOICE2_PLAYBACK_TX",
3033"INCALL_RECORD_RX", "INCALL_RECORD_TX", "MI2S_RX", "MI2S_TX",
3034"SEC_I2S_RX", "SLIM_1_RX", "SLIM_1_TX", "SLIM_2_RX",
3035"SLIM_2_TX", "SLIM_3_RX", "SLIM_3_TX", "SLIM_4_RX",
3036"SLIM_4_TX", "SLIM_5_RX", "SLIM_5_TX", "SLIM_6_RX",
3037"SLIM_6_TX", "SLIM_7_RX", "SLIM_7_TX", "SLIM_8_RX",
3038"SLIM_8_TX", "EXTPROC_RX", "EXTPROC_TX", "EXPROC_EC_TX",
3039"QUAT_MI2S_RX", "QUAT_MI2S_TX", "SECOND_MI2S_RX", "SECOND_MI2S_TX",
3040"PRI_MI2S_RX", "PRI_MI2S_TX", "TERT_MI2S_RX", "TERT_MI2S_TX",
Ralf Herzc8701f72018-06-20 11:37:35 +02003041"AUDIO_I2S_RX", "SEC_AUXPCM_RX", "SEC_AUXPCM_TX", "PRI_SPDIF_RX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303042"SECOND_MI2S_RX_SD1", "QUIN_MI2S_RX", "QUIN_MI2S_TX", "SENARY_MI2S_TX",
3043"PRI_TDM_RX_0", "PRI_TDM_TX_0", "PRI_TDM_RX_1", "PRI_TDM_TX_1",
3044"PRI_TDM_RX_2", "PRI_TDM_TX_2", "PRI_TDM_RX_3", "PRI_TDM_TX_3",
3045"PRI_TDM_RX_4", "PRI_TDM_TX_4", "PRI_TDM_RX_5", "PRI_TDM_TX_5",
3046"PRI_TDM_RX_6", "PRI_TDM_TX_6", "PRI_TDM_RX_7", "PRI_TDM_TX_7",
3047"SEC_TDM_RX_0", "SEC_TDM_TX_0", "SEC_TDM_RX_1", "SEC_TDM_TX_1",
3048"SEC_TDM_RX_2", "SEC_TDM_TX_2", "SEC_TDM_RX_3", "SEC_TDM_TX_3",
3049"SEC_TDM_RX_4", "SEC_TDM_TX_4", "SEC_TDM_RX_5", "SEC_TDM_TX_5",
3050"SEC_TDM_RX_6", "SEC_TDM_TX_6", "SEC_TDM_RX_7", "SEC_TDM_TX_7",
3051"TERT_TDM_RX_0", "TERT_TDM_TX_0", "TERT_TDM_RX_1", "TERT_TDM_TX_1",
3052"TERT_TDM_RX_2", "TERT_TDM_TX_2", "TERT_TDM_RX_3", "TERT_TDM_TX_3",
3053"TERT_TDM_RX_4", "TERT_TDM_TX_4", "TERT_TDM_RX_5", "TERT_TDM_TX_5",
3054"TERT_TDM_RX_6", "TERT_TDM_TX_6", "TERT_TDM_RX_7", "TERT_TDM_TX_7",
3055"QUAT_TDM_RX_0", "QUAT_TDM_TX_0", "QUAT_TDM_RX_1", "QUAT_TDM_TX_1",
3056"QUAT_TDM_RX_2", "QUAT_TDM_TX_2", "QUAT_TDM_RX_3", "QUAT_TDM_TX_3",
3057"QUAT_TDM_RX_4", "QUAT_TDM_TX_4", "QUAT_TDM_RX_5", "QUAT_TDM_TX_5",
3058"QUAT_TDM_RX_6", "QUAT_TDM_TX_6", "QUAT_TDM_RX_7", "QUAT_TDM_TX_7",
Rohit Kumara5077932017-09-10 22:05:05 +05303059"QUIN_TDM_RX_0", "QUIN_TDM_TX_0", "QUIN_TDM_RX_1", "QUIN_TDM_TX_1",
3060"QUIN_TDM_RX_2", "QUIN_TDM_TX_2", "QUIN_TDM_RX_3", "QUIN_TDM_TX_3",
3061"QUIN_TDM_RX_4", "QUIN_TDM_TX_4", "QUIN_TDM_RX_5", "QUIN_TDM_TX_5",
3062"QUIN_TDM_RX_6", "QUIN_TDM_TX_6", "QUIN_TDM_RX_7", "QUIN_TDM_TX_7",
Karthikeyan Mani57550082018-05-03 18:43:58 -07003063"INT_BT_A2DP_RX", "USB_RX", "USB_TX", "DISPLAY_PORT_RX", "DISPLAY_PORT_RX1",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303064"TERT_AUXPCM_RX", "TERT_AUXPCM_TX", "QUAT_AUXPCM_RX", "QUAT_AUXPCM_TX",
Rohit Kumara5077932017-09-10 22:05:05 +05303065"QUIN_AUXPCM_RX", "QUIN_AUXPCM_TX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303066"INT0_MI2S_RX", "INT0_MI2S_TX", "INT1_MI2S_RX", "INT1_MI2S_TX",
3067"INT2_MI2S_RX", "INT2_MI2S_TX", "INT3_MI2S_RX", "INT3_MI2S_TX",
3068"INT4_MI2S_RX", "INT4_MI2S_TX", "INT5_MI2S_RX", "INT5_MI2S_TX",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303069"INT6_MI2S_RX", "INT6_MI2S_TX", "WSA_CDC_DMA_RX_0",
3070"WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_RX_1", "WSA_CDC_DMA_TX_1",
Ralf Herzc8701f72018-06-20 11:37:35 +02003071"WSA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_1",
Aditya Bavanari1e84a932018-06-18 19:40:08 +05303072"RX_CDC_DMA_RX_0", "TX_CDC_DMA_TX_0", "RX_CDC_DMA_RX_1", "TX_CDC_DMA_TX_1",
3073"RX_CDC_DMA_RX_2", "TX_CDC_DMA_TX_2", "RX_CDC_DMA_RX_3", "TX_CDC_DMA_TX_3",
3074"RX_CDC_DMA_RX_4", "TX_CDC_DMA_TX_4", "RX_CDC_DMA_RX_5", "TX_CDC_DMA_TX_5",
3075"RX_CDC_DMA_RX_6", "RX_CDC_DMA_RX_7",
3076"PRI_SPDIF_TX", "SEC_SPDIF_RX", "SEC_SPDIF_TX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303077};
3078
3079static SOC_ENUM_SINGLE_DECL(mm1_channel_mux,
3080 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, ch_mixer);
3081static SOC_ENUM_SINGLE_DECL(mm2_channel_mux,
3082 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA2, ch_mixer);
3083static SOC_ENUM_SINGLE_DECL(mm3_channel_mux,
3084 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA3, ch_mixer);
3085static SOC_ENUM_SINGLE_DECL(mm4_channel_mux,
3086 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA4, ch_mixer);
3087
3088static SOC_ENUM_DOUBLE_DECL(mm1_ch1_enum,
3089 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 0, be_name);
3090static SOC_ENUM_DOUBLE_DECL(mm1_ch2_enum,
3091 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 1, be_name);
3092static SOC_ENUM_DOUBLE_DECL(mm1_ch3_enum,
3093 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 2, be_name);
3094static SOC_ENUM_DOUBLE_DECL(mm1_ch4_enum,
3095 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 3, be_name);
3096static SOC_ENUM_DOUBLE_DECL(mm1_ch5_enum,
3097 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 4, be_name);
3098static SOC_ENUM_DOUBLE_DECL(mm1_ch6_enum,
3099 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 5, be_name);
3100static SOC_ENUM_DOUBLE_DECL(mm1_ch7_enum,
3101 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 6, be_name);
3102static SOC_ENUM_DOUBLE_DECL(mm1_ch8_enum,
3103 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 7, be_name);
3104
3105static int msm_pcm_get_ctl_enum_info(struct snd_ctl_elem_info *uinfo,
3106 unsigned int channels,
3107 unsigned int items, const char *const names[])
3108{
3109 if (uinfo->value.enumerated.item >= items)
3110 uinfo->value.enumerated.item = items - 1;
3111
3112 WARN(strlen(names[uinfo->value.enumerated.item]) >=
3113 sizeof(uinfo->value.enumerated.name),
3114 "ALSA: too long item name '%s'\n",
3115 names[uinfo->value.enumerated.item]);
3116 strlcpy(uinfo->value.enumerated.name,
3117 names[uinfo->value.enumerated.item],
3118 sizeof(uinfo->value.enumerated.name));
3119 return 0;
3120}
3121
3122static int msm_pcm_channel_mixer_info(struct snd_kcontrol *kcontrol,
3123 struct snd_ctl_elem_info *uinfo)
3124{
3125 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3126
3127 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3128 uinfo->count = 1;
3129
3130 uinfo->value.enumerated.items = ARRAY_SIZE(ch_mixer);
3131 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3132
3133 return 0;
3134}
3135static int msm_pcm_channel_mixer_get(struct snd_kcontrol *kcontrol,
3136 struct snd_ctl_elem_value *ucontrol)
3137{
3138 u16 fe_id = 0;
3139
3140 fe_id = ((struct soc_enum *)
3141 kcontrol->private_value)->shift_l;
3142 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3143 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3144 return -EINVAL;
3145 }
3146
3147 pr_debug("%s: FE %d %s\n", __func__,
3148 fe_id,
3149 channel_mixer[fe_id].enable ? "Enabled" : "Disabled");
3150 ucontrol->value.enumerated.item[0] = channel_mixer[fe_id].enable;
3151 return 0;
3152}
3153
3154static int msm_pcm_channel_mixer_put(struct snd_kcontrol *kcontrol,
3155 struct snd_ctl_elem_value *ucontrol)
3156{
3157 u16 fe_id = 0;
3158
3159 fe_id = ((struct soc_enum *)
3160 kcontrol->private_value)->shift_l;
3161 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3162 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3163 return -EINVAL;
3164 }
3165
3166 channel_mixer[fe_id].enable = ucontrol->value.enumerated.item[0];
3167 pr_debug("%s: %s FE %d\n", __func__,
3168 channel_mixer[fe_id].enable ? "Enable" : "Disable",
3169 fe_id);
3170 return 0;
3171}
3172
3173static int msm_pcm_channel_input_be_info(struct snd_kcontrol *kcontrol,
3174 struct snd_ctl_elem_info *uinfo)
3175{
3176 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3177
3178 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3179 uinfo->count = 1;
3180
3181 uinfo->value.enumerated.items = ARRAY_SIZE(be_name);
3182 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3183
3184 return 0;
3185}
3186
3187static int msm_pcm_channel_input_be_put(struct snd_kcontrol *kcontrol,
3188 struct snd_ctl_elem_value *ucontrol)
3189{
3190 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3191 u16 fe_id = 0, in_ch = 0;
3192
3193 fe_id = e->shift_l;
3194 in_ch = e->shift_r;
3195 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3196 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3197 return -EINVAL;
3198 }
3199 if (in_ch >= ADM_MAX_CHANNELS) {
3200 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3201 return -EINVAL;
3202 }
3203
3204 channel_input[fe_id][in_ch] = ucontrol->value.enumerated.item[0];
3205 return 1;
3206}
3207
3208static int msm_pcm_channel_input_be_get(struct snd_kcontrol *kcontrol,
3209 struct snd_ctl_elem_value *ucontrol)
3210{
3211 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3212 u16 fe_id = 0, in_ch = 0;
3213
3214 fe_id = e->shift_l;
3215 in_ch = e->shift_r;
3216 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3217 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3218 return -EINVAL;
3219 }
3220 if (in_ch >= ADM_MAX_CHANNELS) {
3221 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3222 return -EINVAL;
3223 }
3224
3225 ucontrol->value.enumerated.item[0] = channel_input[fe_id][in_ch];
3226 return 1;
3227}
3228
3229
3230static int msm_pcm_channel_weight_info(struct snd_kcontrol *kcontrol,
3231 struct snd_ctl_elem_info *uinfo)
3232{
3233 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
3234 uinfo->count = ADM_MAX_CHANNELS;
3235 uinfo->value.integer.min = 0;
3236 uinfo->value.integer.max = WEIGHT_0_DB;
3237
3238 return 0;
3239}
3240
3241static int msm_pcm_channel_weight_put(struct snd_kcontrol *kcontrol,
3242 struct snd_ctl_elem_value *ucontrol)
3243{
3244 u16 fe_id = 0, out_ch = 0;
3245 int i, weight;
3246
3247 fe_id = ((struct soc_multi_mixer_control *)
3248 kcontrol->private_value)->shift;
3249 out_ch = ((struct soc_multi_mixer_control *)
3250 kcontrol->private_value)->rshift;
3251 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3252 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3253 return -EINVAL;
3254 }
3255 if (out_ch >= ADM_MAX_CHANNELS) {
3256 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3257 return -EINVAL;
3258 }
3259
3260 pr_debug("%s: FE_ID: %d, channel weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld\n",
3261 __func__, fe_id,
3262 ucontrol->value.integer.value[0],
3263 ucontrol->value.integer.value[1],
3264 ucontrol->value.integer.value[2],
3265 ucontrol->value.integer.value[3],
3266 ucontrol->value.integer.value[4],
3267 ucontrol->value.integer.value[5],
3268 ucontrol->value.integer.value[6],
3269 ucontrol->value.integer.value[7]);
3270
3271 for (i = 0; i < ADM_MAX_CHANNELS; ++i) {
3272 weight = ucontrol->value.integer.value[i];
3273 channel_mixer[fe_id].channel_weight[out_ch][i] = weight;
3274 pr_debug("%s: FE_ID %d, output %d input %d weight %d\n",
3275 __func__, fe_id, out_ch, i,
3276 channel_mixer[fe_id].channel_weight[out_ch][i]);
3277 }
3278
3279 return 0;
3280}
3281
3282static int msm_pcm_channel_weight_get(struct snd_kcontrol *kcontrol,
3283 struct snd_ctl_elem_value *ucontrol)
3284{
3285 u16 fe_id = 0, out_ch = 0;
3286 int i;
3287
3288 fe_id = ((struct soc_multi_mixer_control *)
3289 kcontrol->private_value)->shift;
3290 out_ch = ((struct soc_multi_mixer_control *)
3291 kcontrol->private_value)->rshift;
3292 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3293 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3294 return -EINVAL;
3295 }
3296 if (out_ch >= ADM_MAX_CHANNELS) {
3297 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3298 return -EINVAL;
3299 }
3300
3301 for (i = 0; i < ADM_MAX_CHANNELS; ++i)
3302 ucontrol->value.integer.value[i] =
3303 channel_mixer[fe_id].channel_weight[out_ch][i];
3304
3305 pr_debug("%s: FE_ID: %d, weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld",
3306 __func__, fe_id,
3307 ucontrol->value.integer.value[0],
3308 ucontrol->value.integer.value[1],
3309 ucontrol->value.integer.value[2],
3310 ucontrol->value.integer.value[3],
3311 ucontrol->value.integer.value[4],
3312 ucontrol->value.integer.value[5],
3313 ucontrol->value.integer.value[6],
3314 ucontrol->value.integer.value[7]);
3315
3316 return 0;
3317}
3318
3319static const struct snd_kcontrol_new channel_mixer_controls[] = {
3320 SOC_SINGLE_EXT("MultiMedia1 Channel Rule", SND_SOC_NOPM,
3321 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3322 msm_pcm_get_channel_rule_index,
3323 msm_pcm_put_channel_rule_index),
3324 SOC_SINGLE_EXT("MultiMedia2 Channel Rule", SND_SOC_NOPM,
3325 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3326 msm_pcm_get_channel_rule_index,
3327 msm_pcm_put_channel_rule_index),
3328 SOC_SINGLE_EXT("MultiMedia3 Channel Rule", SND_SOC_NOPM,
3329 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3330 msm_pcm_get_channel_rule_index,
3331 msm_pcm_put_channel_rule_index),
3332 SOC_SINGLE_EXT("MultiMedia4 Channel Rule", SND_SOC_NOPM,
3333 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3334 msm_pcm_get_channel_rule_index,
3335 msm_pcm_put_channel_rule_index),
3336 SOC_SINGLE_EXT("MultiMedia5 Channel Rule", SND_SOC_NOPM,
3337 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3338 msm_pcm_get_channel_rule_index,
3339 msm_pcm_put_channel_rule_index),
3340 SOC_SINGLE_EXT("MultiMedia6 Channel Rule", SND_SOC_NOPM,
3341 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3342 msm_pcm_get_channel_rule_index,
3343 msm_pcm_put_channel_rule_index),
3344
3345 SOC_SINGLE_EXT("MultiMedia1 Channels", SND_SOC_NOPM,
3346 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3347 msm_pcm_get_out_chs,
3348 msm_pcm_put_out_chs),
3349 SOC_SINGLE_EXT("MultiMedia2 Channels", SND_SOC_NOPM,
3350 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3351 msm_pcm_get_out_chs,
3352 msm_pcm_put_out_chs),
3353 SOC_SINGLE_EXT("MultiMedia3 Channels", SND_SOC_NOPM,
3354 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3355 msm_pcm_get_out_chs,
3356 msm_pcm_put_out_chs),
3357 SOC_SINGLE_EXT("MultiMedia4 Channels", SND_SOC_NOPM,
3358 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3359 msm_pcm_get_out_chs,
3360 msm_pcm_put_out_chs),
3361 SOC_SINGLE_EXT("MultiMedia5 Channels", SND_SOC_NOPM,
3362 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3363 msm_pcm_get_out_chs,
3364 msm_pcm_put_out_chs),
3365 SOC_SINGLE_EXT("MultiMedia6 Channels", SND_SOC_NOPM,
3366 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3367 msm_pcm_get_out_chs,
3368 msm_pcm_put_out_chs),
3369 {
3370 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3371 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3372 .name = "MultiMedia1 Channel Mixer",
3373 .info = msm_pcm_channel_mixer_info,
3374 .get = msm_pcm_channel_mixer_get,
3375 .put = msm_pcm_channel_mixer_put,
3376 .private_value = (unsigned long)&(mm1_channel_mux)
3377 },
3378 {
3379 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3380 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3381 .name = "MultiMedia2 Channel Mixer",
3382 .info = msm_pcm_channel_mixer_info,
3383 .get = msm_pcm_channel_mixer_get,
3384 .put = msm_pcm_channel_mixer_put,
3385 .private_value = (unsigned long)&(mm2_channel_mux)
3386 },
3387 {
3388 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3389 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3390 .name = "MultiMedia3 Channel Mixer",
3391 .info = msm_pcm_channel_mixer_info,
3392 .get = msm_pcm_channel_mixer_get,
3393 .put = msm_pcm_channel_mixer_put,
3394 .private_value = (unsigned long)&(mm3_channel_mux)
3395 },
3396 {
3397 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3398 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3399 .name = "MultiMedia4 Channel Mixer",
3400 .info = msm_pcm_channel_mixer_info,
3401 .get = msm_pcm_channel_mixer_get,
3402 .put = msm_pcm_channel_mixer_put,
3403 .private_value = (unsigned long)&(mm4_channel_mux)
3404 },
3405 {
3406 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3407 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3408 .name = "MultiMedia1 Output Channel1",
3409 .info = msm_pcm_channel_weight_info,
3410 .get = msm_pcm_channel_weight_get,
3411 .put = msm_pcm_channel_weight_put,
3412 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3413 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 0,}
3414 },
3415 {
3416 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3417 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3418 .name = "MultiMedia1 Output Channel2",
3419 .info = msm_pcm_channel_weight_info,
3420 .get = msm_pcm_channel_weight_get,
3421 .put = msm_pcm_channel_weight_put,
3422 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3423 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 1, }
3424 },
3425 {
3426 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3427 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3428 .name = "MultiMedia1 Output Channel3",
3429 .info = msm_pcm_channel_weight_info,
3430 .get = msm_pcm_channel_weight_get,
3431 .put = msm_pcm_channel_weight_put,
3432 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3433 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 2,}
3434 },
3435 {
3436 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3437 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3438 .name = "MultiMedia1 Output Channel4",
3439 .info = msm_pcm_channel_weight_info,
3440 .get = msm_pcm_channel_weight_get,
3441 .put = msm_pcm_channel_weight_put,
3442 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3443 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 3,}
3444 },
3445 {
3446 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3447 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3448 .name = "MultiMedia1 Output Channel5",
3449 .info = msm_pcm_channel_weight_info,
3450 .get = msm_pcm_channel_weight_get,
3451 .put = msm_pcm_channel_weight_put,
3452 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3453 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 4,}
3454 },
3455 {
3456 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3457 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3458 .name = "MultiMedia1 Output Channel6",
3459 .info = msm_pcm_channel_weight_info,
3460 .get = msm_pcm_channel_weight_get,
3461 .put = msm_pcm_channel_weight_put,
3462 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3463 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 5,}
3464 },
3465 {
3466 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3467 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3468 .name = "MultiMedia1 Output Channel7",
3469 .info = msm_pcm_channel_weight_info,
3470 .get = msm_pcm_channel_weight_get,
3471 .put = msm_pcm_channel_weight_put,
3472 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3473 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 6,}
3474 },
3475 {
3476 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3477 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3478 .name = "MultiMedia1 Output Channel8",
3479 .info = msm_pcm_channel_weight_info,
3480 .get = msm_pcm_channel_weight_get,
3481 .put = msm_pcm_channel_weight_put,
3482 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3483 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 7,}
3484 },
3485 {
3486 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3487 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3488 .name = "MultiMedia2 Output Channel1",
3489 .info = msm_pcm_channel_weight_info,
3490 .get = msm_pcm_channel_weight_get,
3491 .put = msm_pcm_channel_weight_put,
3492 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3493 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 0,}
3494 },
3495 {
3496 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3497 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3498 .name = "MultiMedia2 Output Channel2",
3499 .info = msm_pcm_channel_weight_info,
3500 .get = msm_pcm_channel_weight_get,
3501 .put = msm_pcm_channel_weight_put,
3502 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3503 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 1,}
3504 },
3505 {
3506 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3507 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3508 .name = "MultiMedia2 Output Channel3",
3509 .info = msm_pcm_channel_weight_info,
3510 .get = msm_pcm_channel_weight_get,
3511 .put = msm_pcm_channel_weight_put,
3512 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3513 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 2,}
3514 },
3515 {
3516 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3517 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3518 .name = "MultiMedia3 Output Channel1",
3519 .info = msm_pcm_channel_weight_info,
3520 .get = msm_pcm_channel_weight_get,
3521 .put = msm_pcm_channel_weight_put,
3522 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3523 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 0,}
3524 },
3525 {
3526 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3527 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3528 .name = "MultiMedia3 Output Channel2",
3529 .info = msm_pcm_channel_weight_info,
3530 .get = msm_pcm_channel_weight_get,
3531 .put = msm_pcm_channel_weight_put,
3532 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3533 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 1,}
3534 },
3535 {
3536 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3537 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3538 .name = "MultiMedia1 Channel1",
3539 .info = msm_pcm_channel_input_be_info,
3540 .get = msm_pcm_channel_input_be_get,
3541 .put = msm_pcm_channel_input_be_put,
3542 .private_value = (unsigned long)&(mm1_ch1_enum)
3543 },
3544 {
3545 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3546 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3547 .name = "MultiMedia1 Channel2",
3548 .info = msm_pcm_channel_input_be_info,
3549 .get = msm_pcm_channel_input_be_get,
3550 .put = msm_pcm_channel_input_be_put,
3551 .private_value = (unsigned long)&(mm1_ch2_enum)
3552 },
3553 {
3554 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3555 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3556 .name = "MultiMedia1 Channel3",
3557 .info = msm_pcm_channel_input_be_info,
3558 .get = msm_pcm_channel_input_be_get,
3559 .put = msm_pcm_channel_input_be_put,
3560 .private_value = (unsigned long)&(mm1_ch3_enum)
3561 },
3562 {
3563 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3564 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3565 .name = "MultiMedia1 Channel4",
3566 .info = msm_pcm_channel_input_be_info,
3567 .get = msm_pcm_channel_input_be_get,
3568 .put = msm_pcm_channel_input_be_put,
3569 .private_value = (unsigned long)&(mm1_ch4_enum)
3570 },
3571 {
3572 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3573 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3574 .name = "MultiMedia1 Channel5",
3575 .info = msm_pcm_channel_input_be_info,
3576 .get = msm_pcm_channel_input_be_get,
3577 .put = msm_pcm_channel_input_be_put,
3578 .private_value = (unsigned long)&(mm1_ch5_enum)
3579 },
3580 {
3581 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3582 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3583 .name = "MultiMedia1 Channel6",
3584 .info = msm_pcm_channel_input_be_info,
3585 .get = msm_pcm_channel_input_be_get,
3586 .put = msm_pcm_channel_input_be_put,
3587 .private_value = (unsigned long)&(mm1_ch6_enum)
3588 },
3589 {
3590 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3591 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3592 .name = "MultiMedia1 Channel7",
3593 .info = msm_pcm_channel_input_be_info,
3594 .get = msm_pcm_channel_input_be_get,
3595 .put = msm_pcm_channel_input_be_put,
3596 .private_value = (unsigned long)&(mm1_ch7_enum)
3597 },
3598 {
3599 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3600 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3601 .name = "MultiMedia1 Channel8",
3602 .info = msm_pcm_channel_input_be_info,
3603 .get = msm_pcm_channel_input_be_get,
3604 .put = msm_pcm_channel_input_be_put,
3605 .private_value = (unsigned long)&(mm1_ch8_enum)
3606 },
3607};
3608static int msm_ec_ref_ch_get(struct snd_kcontrol *kcontrol,
3609 struct snd_ctl_elem_value *ucontrol)
3610{
3611 ucontrol->value.integer.value[0] = msm_ec_ref_ch;
3612 pr_debug("%s: msm_ec_ref_ch = %ld\n", __func__,
3613 ucontrol->value.integer.value[0]);
3614 return 0;
3615}
3616
3617static int msm_ec_ref_ch_put(struct snd_kcontrol *kcontrol,
3618 struct snd_ctl_elem_value *ucontrol)
3619{
3620 msm_ec_ref_ch = ucontrol->value.integer.value[0];
3621 pr_debug("%s: msm_ec_ref_ch = %d\n", __func__, msm_ec_ref_ch);
3622 adm_num_ec_ref_rx_chans(msm_ec_ref_ch);
3623 return 0;
3624}
3625
3626static const char *const ec_ref_ch_text[] = {"Zero", "One", "Two", "Three",
3627 "Four", "Five", "Six", "Seven", "Eight"};
3628
3629static int msm_ec_ref_bit_format_get(struct snd_kcontrol *kcontrol,
3630 struct snd_ctl_elem_value *ucontrol)
3631{
3632 switch (msm_ec_ref_bit_format) {
3633 case SNDRV_PCM_FORMAT_S24_LE:
3634 ucontrol->value.integer.value[0] = 2;
3635 break;
3636 case SNDRV_PCM_FORMAT_S16_LE:
3637 ucontrol->value.integer.value[0] = 1;
3638 break;
3639 default:
3640 ucontrol->value.integer.value[0] = 0;
3641 break;
3642 }
3643 pr_debug("%s: msm_ec_ref_bit_format = %ld\n",
3644 __func__, ucontrol->value.integer.value[0]);
3645 return 0;
3646}
3647
3648static int msm_ec_ref_bit_format_put(struct snd_kcontrol *kcontrol,
3649 struct snd_ctl_elem_value *ucontrol)
3650{
3651 u16 bit_width = 0;
3652
3653 switch (ucontrol->value.integer.value[0]) {
3654 case 2:
3655 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S24_LE;
3656 break;
3657 case 1:
3658 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
3659 break;
3660 default:
3661 msm_ec_ref_bit_format = 0;
3662 break;
3663 }
3664
3665 if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S16_LE)
3666 bit_width = 16;
3667 else if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S24_LE)
3668 bit_width = 24;
3669
3670 pr_debug("%s: msm_ec_ref_bit_format = %d\n",
3671 __func__, msm_ec_ref_bit_format);
3672 adm_ec_ref_rx_bit_width(bit_width);
3673 return 0;
3674}
3675
3676static char const *ec_ref_bit_format_text[] = {"0", "S16_LE", "S24_LE"};
3677
3678static int msm_ec_ref_rate_get(struct snd_kcontrol *kcontrol,
3679 struct snd_ctl_elem_value *ucontrol)
3680{
3681 ucontrol->value.integer.value[0] = msm_ec_ref_sampling_rate;
3682 pr_debug("%s: msm_ec_ref_sampling_rate = %ld\n",
3683 __func__, ucontrol->value.integer.value[0]);
3684 return 0;
3685}
3686
3687static int msm_ec_ref_rate_put(struct snd_kcontrol *kcontrol,
3688 struct snd_ctl_elem_value *ucontrol)
3689{
3690 switch (ucontrol->value.integer.value[0]) {
3691 case 0:
3692 msm_ec_ref_sampling_rate = 0;
3693 break;
3694 case 1:
3695 msm_ec_ref_sampling_rate = 8000;
3696 break;
3697 case 2:
3698 msm_ec_ref_sampling_rate = 16000;
3699 break;
3700 case 3:
3701 msm_ec_ref_sampling_rate = 32000;
3702 break;
3703 case 4:
3704 msm_ec_ref_sampling_rate = 44100;
3705 break;
3706 case 5:
3707 msm_ec_ref_sampling_rate = 48000;
3708 break;
3709 case 6:
3710 msm_ec_ref_sampling_rate = 96000;
3711 break;
3712 case 7:
3713 msm_ec_ref_sampling_rate = 192000;
3714 break;
3715 case 8:
3716 msm_ec_ref_sampling_rate = 384000;
3717 break;
3718 default:
3719 msm_ec_ref_sampling_rate = 48000;
3720 break;
3721 }
3722 pr_debug("%s: msm_ec_ref_sampling_rate = %d\n",
3723 __func__, msm_ec_ref_sampling_rate);
3724 adm_ec_ref_rx_sampling_rate(msm_ec_ref_sampling_rate);
3725 return 0;
3726}
3727
3728static const char *const ec_ref_rate_text[] = {"0", "8000", "16000",
3729 "32000", "44100", "48000", "96000", "192000", "384000"};
3730
3731static const struct soc_enum msm_route_ec_ref_params_enum[] = {
3732 SOC_ENUM_SINGLE_EXT(9, ec_ref_ch_text),
3733 SOC_ENUM_SINGLE_EXT(3, ec_ref_bit_format_text),
3734 SOC_ENUM_SINGLE_EXT(9, ec_ref_rate_text),
3735};
3736
3737static const struct snd_kcontrol_new ec_ref_param_controls[] = {
3738 SOC_ENUM_EXT("EC Reference Channels", msm_route_ec_ref_params_enum[0],
3739 msm_ec_ref_ch_get, msm_ec_ref_ch_put),
3740 SOC_ENUM_EXT("EC Reference Bit Format", msm_route_ec_ref_params_enum[1],
3741 msm_ec_ref_bit_format_get, msm_ec_ref_bit_format_put),
3742 SOC_ENUM_EXT("EC Reference SampleRate", msm_route_ec_ref_params_enum[2],
3743 msm_ec_ref_rate_get, msm_ec_ref_rate_put),
3744};
3745
3746static int msm_routing_ec_ref_rx_get(struct snd_kcontrol *kcontrol,
3747 struct snd_ctl_elem_value *ucontrol)
3748{
3749 pr_debug("%s: ec_ref_rx = %d", __func__, msm_route_ec_ref_rx);
3750 mutex_lock(&routing_lock);
3751 ucontrol->value.integer.value[0] = msm_route_ec_ref_rx;
3752 mutex_unlock(&routing_lock);
3753 return 0;
3754}
3755
3756static int msm_routing_ec_ref_rx_put(struct snd_kcontrol *kcontrol,
3757 struct snd_ctl_elem_value *ucontrol)
3758{
3759 int ec_ref_port_id;
Asish Bhattacharya34504582017-08-08 12:55:01 +05303760 struct snd_soc_dapm_widget *widget =
3761 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303762 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3763 struct snd_soc_dapm_update *update = NULL;
3764
3765
3766 mutex_lock(&routing_lock);
3767 switch (ucontrol->value.integer.value[0]) {
3768 case 0:
3769 msm_route_ec_ref_rx = 0;
3770 ec_ref_port_id = AFE_PORT_INVALID;
3771 break;
3772 case 1:
3773 msm_route_ec_ref_rx = 1;
3774 ec_ref_port_id = SLIMBUS_0_RX;
3775 break;
3776 case 2:
3777 msm_route_ec_ref_rx = 2;
3778 ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_RX;
3779 break;
3780 case 3:
3781 msm_route_ec_ref_rx = 3;
3782 ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
3783 break;
3784 case 4:
3785 msm_route_ec_ref_rx = 4;
3786 ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
3787 break;
3788 case 5:
3789 msm_route_ec_ref_rx = 5;
3790 ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
3791 break;
3792 case 6:
3793 msm_route_ec_ref_rx = 6;
3794 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
3795 break;
3796 case 7:
3797 msm_route_ec_ref_rx = 7;
3798 ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_RX;
3799 break;
3800 case 9:
3801 msm_route_ec_ref_rx = 9;
3802 ec_ref_port_id = SLIMBUS_5_RX;
3803 break;
3804 case 10:
3805 msm_route_ec_ref_rx = 10;
3806 ec_ref_port_id = SLIMBUS_1_TX;
3807 break;
3808 case 11:
3809 msm_route_ec_ref_rx = 11;
3810 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_TX_1;
3811 break;
3812 case 12:
3813 msm_route_ec_ref_rx = 12;
3814 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX;
3815 break;
3816 case 13:
3817 msm_route_ec_ref_rx = 13;
3818 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_1;
3819 break;
3820 case 14:
3821 msm_route_ec_ref_rx = 14;
3822 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_2;
3823 break;
3824 case 15:
3825 msm_route_ec_ref_rx = 15;
3826 ec_ref_port_id = SLIMBUS_6_RX;
3827 break;
3828 case 16:
3829 msm_route_ec_ref_rx = 16;
3830 ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_RX;
3831 break;
3832 case 17:
3833 msm_route_ec_ref_rx = 17;
3834 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_RX;
3835 break;
3836 case 18:
3837 msm_route_ec_ref_rx = 18;
3838 ec_ref_port_id = AFE_PORT_ID_TERTIARY_TDM_TX;
3839 break;
3840 case 19:
3841 msm_route_ec_ref_rx = 19;
3842 ec_ref_port_id = AFE_PORT_ID_USB_RX;
3843 break;
3844 case 20:
3845 msm_route_ec_ref_rx = 20;
3846 ec_ref_port_id = AFE_PORT_ID_INT0_MI2S_RX;
3847 break;
3848 case 21:
3849 msm_route_ec_ref_rx = 21;
3850 ec_ref_port_id = AFE_PORT_ID_INT4_MI2S_RX;
3851 break;
3852 case 22:
3853 msm_route_ec_ref_rx = 22;
3854 ec_ref_port_id = AFE_PORT_ID_INT3_MI2S_TX;
3855 break;
Aalique Grahamee4fd7d52017-11-28 13:24:13 -08003856 case 23:
3857 msm_route_ec_ref_rx = 23;
3858 ec_ref_port_id = AFE_PORT_ID_HDMI_OVER_DP_RX;
3859 break;
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303860 case 24:
3861 msm_route_ec_ref_rx = 24;
3862 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_0;
3863 break;
3864 case 25:
3865 msm_route_ec_ref_rx = 25;
3866 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_1;
3867 break;
3868 case 26:
3869 msm_route_ec_ref_rx = 26;
3870 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_0;
3871 break;
3872 case 27:
3873 msm_route_ec_ref_rx = 27;
3874 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_1;
3875 break;
3876 case 28:
3877 msm_route_ec_ref_rx = 28;
3878 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_2;
3879 break;
Zhou Songb167db12018-07-02 17:14:00 +08003880 case 29:
3881 msm_route_ec_ref_rx = 29;
3882 ec_ref_port_id = SLIMBUS_7_RX;
3883 break;
Aditya Bavanari1e84a932018-06-18 19:40:08 +05303884 case 30:
3885 msm_route_ec_ref_rx = 30;
3886 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_0;
3887 break;
3888 case 31:
3889 msm_route_ec_ref_rx = 31;
3890 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_1;
3891 break;
3892 case 32:
3893 msm_route_ec_ref_rx = 32;
3894 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_2;
3895 break;
3896 case 33:
3897 msm_route_ec_ref_rx = 33;
3898 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_3;
3899 break;
3900 case 34:
3901 msm_route_ec_ref_rx = 34;
3902 ec_ref_port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_0;
3903 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303904 default:
3905 msm_route_ec_ref_rx = 0; /* NONE */
3906 pr_err("%s EC ref rx %ld not valid\n",
3907 __func__, ucontrol->value.integer.value[0]);
3908 ec_ref_port_id = AFE_PORT_INVALID;
3909 break;
3910 }
3911 adm_ec_ref_rx_id(ec_ref_port_id);
3912 pr_debug("%s: msm_route_ec_ref_rx = %d\n",
3913 __func__, msm_route_ec_ref_rx);
3914 mutex_unlock(&routing_lock);
3915 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol,
3916 msm_route_ec_ref_rx, e, update);
3917 return 0;
3918}
3919
3920static const char *const ec_ref_rx[] = { "None", "SLIM_RX", "I2S_RX",
3921 "PRI_MI2S_TX", "SEC_MI2S_TX",
3922 "TERT_MI2S_TX", "QUAT_MI2S_TX", "SEC_I2S_RX", "PROXY_RX",
3923 "SLIM_5_RX", "SLIM_1_TX", "QUAT_TDM_TX_1",
3924 "QUAT_TDM_RX_0", "QUAT_TDM_RX_1", "QUAT_TDM_RX_2", "SLIM_6_RX",
3925 "TERT_MI2S_RX", "QUAT_MI2S_RX", "TERT_TDM_TX_0", "USB_AUDIO_RX",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303926 "INT0_MI2S_RX", "INT4_MI2S_RX", "INT3_MI2S_TX", "DISPLAY_PORT",
3927 "WSA_CDC_DMA_RX_0", "WSA_CDC_DMA_RX_1",
Zhou Songb167db12018-07-02 17:14:00 +08003928 "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_2",
Aditya Bavanari1e84a932018-06-18 19:40:08 +05303929 "SLIM_7_RX", "RX_CDC_DMA_RX_0", "RX_CDC_DMA_RX_1", "RX_CDC_DMA_RX_2",
3930 "RX_CDC_DMA_RX_3", "TX_CDC_DMA_TX_0",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303931};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303932
3933static const struct soc_enum msm_route_ec_ref_rx_enum[] = {
3934 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_rx), ec_ref_rx),
3935};
3936
3937static const struct snd_kcontrol_new ext_ec_ref_mux_ul1 =
3938 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL1 MUX Mux",
3939 msm_route_ec_ref_rx_enum[0],
3940 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3941
3942static const struct snd_kcontrol_new ext_ec_ref_mux_ul2 =
3943 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL2 MUX Mux",
3944 msm_route_ec_ref_rx_enum[0],
3945 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3946
3947static const struct snd_kcontrol_new ext_ec_ref_mux_ul3 =
3948 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL3 MUX Mux",
3949 msm_route_ec_ref_rx_enum[0],
3950 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3951
3952static const struct snd_kcontrol_new ext_ec_ref_mux_ul4 =
3953 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL4 MUX Mux",
3954 msm_route_ec_ref_rx_enum[0],
3955 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3956
3957static const struct snd_kcontrol_new ext_ec_ref_mux_ul5 =
3958 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL5 MUX Mux",
3959 msm_route_ec_ref_rx_enum[0],
3960 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3961
3962static const struct snd_kcontrol_new ext_ec_ref_mux_ul6 =
3963 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL6 MUX Mux",
3964 msm_route_ec_ref_rx_enum[0],
3965 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3966
3967static const struct snd_kcontrol_new ext_ec_ref_mux_ul8 =
3968 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL8 MUX Mux",
3969 msm_route_ec_ref_rx_enum[0],
3970 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3971
3972static const struct snd_kcontrol_new ext_ec_ref_mux_ul9 =
3973 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL9 MUX Mux",
3974 msm_route_ec_ref_rx_enum[0],
3975 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3976
Asish Bhattacharya34504582017-08-08 12:55:01 +05303977static const struct snd_kcontrol_new ext_ec_ref_mux_ul16 =
3978 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL16 MUX Mux",
3979 msm_route_ec_ref_rx_enum[0],
3980 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3981
Laxminath Kasam38070be2017-08-17 18:21:59 +05303982static const struct snd_kcontrol_new ext_ec_ref_mux_ul10 =
3983 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL10 MUX Mux",
3984 msm_route_ec_ref_rx_enum[0],
3985 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3986
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303987static const struct snd_kcontrol_new ext_ec_ref_mux_ul17 =
3988 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL17 MUX Mux",
3989 msm_route_ec_ref_rx_enum[0],
3990 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3991
3992static const struct snd_kcontrol_new ext_ec_ref_mux_ul18 =
3993 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL18 MUX Mux",
3994 msm_route_ec_ref_rx_enum[0],
3995 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3996
3997static const struct snd_kcontrol_new ext_ec_ref_mux_ul19 =
3998 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL19 MUX Mux",
3999 msm_route_ec_ref_rx_enum[0],
4000 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4001
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304002static const struct snd_kcontrol_new ext_ec_ref_mux_ul28 =
4003 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL28 MUX Mux",
4004 msm_route_ec_ref_rx_enum[0],
4005 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4006
4007static const struct snd_kcontrol_new ext_ec_ref_mux_ul29 =
4008 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL29 MUX Mux",
4009 msm_route_ec_ref_rx_enum[0],
4010 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4011
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304012static int msm_routing_ext_ec_get(struct snd_kcontrol *kcontrol,
4013 struct snd_ctl_elem_value *ucontrol)
4014{
4015 pr_debug("%s: ext_ec_ref_rx = %x\n", __func__, msm_route_ext_ec_ref);
4016
4017 mutex_lock(&routing_lock);
4018 ucontrol->value.integer.value[0] = msm_route_ext_ec_ref;
4019 mutex_unlock(&routing_lock);
4020 return 0;
4021}
4022
4023static int msm_routing_ext_ec_put(struct snd_kcontrol *kcontrol,
4024 struct snd_ctl_elem_value *ucontrol)
4025{
Asish Bhattacharya34504582017-08-08 12:55:01 +05304026 struct snd_soc_dapm_widget *widget =
4027 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304028 int mux = ucontrol->value.enumerated.item[0];
4029 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
4030 int ret = 1;
4031 bool state = true;
4032 uint16_t ext_ec_ref_port_id;
4033 struct snd_soc_dapm_update *update = NULL;
4034
4035 if (mux >= e->items) {
4036 pr_err("%s: Invalid mux value %d\n", __func__, mux);
4037 return -EINVAL;
4038 }
4039
4040 mutex_lock(&routing_lock);
4041 msm_route_ext_ec_ref = ucontrol->value.integer.value[0];
4042
4043 switch (msm_route_ext_ec_ref) {
4044 case EXT_EC_REF_PRI_MI2S_TX:
4045 ext_ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
4046 break;
4047 case EXT_EC_REF_SEC_MI2S_TX:
4048 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
4049 break;
4050 case EXT_EC_REF_TERT_MI2S_TX:
4051 ext_ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
4052 break;
4053 case EXT_EC_REF_QUAT_MI2S_TX:
4054 ext_ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
4055 break;
4056 case EXT_EC_REF_QUIN_MI2S_TX:
4057 ext_ec_ref_port_id = AFE_PORT_ID_QUINARY_MI2S_TX;
4058 break;
4059 case EXT_EC_REF_SLIM_1_TX:
4060 ext_ec_ref_port_id = SLIMBUS_1_TX;
4061 break;
Karthikeyan Manibfba0542018-06-20 15:20:28 -07004062 case EXT_EC_REF_SEC_TDM_TX:
4063 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
4064 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304065 case EXT_EC_REF_NONE:
4066 default:
4067 ext_ec_ref_port_id = AFE_PORT_INVALID;
4068 state = false;
4069 break;
4070 }
4071
4072 pr_debug("%s: val = %d ext_ec_ref_port_id = 0x%0x state = %d\n",
4073 __func__, msm_route_ext_ec_ref, ext_ec_ref_port_id, state);
4074
4075 if (!voc_set_ext_ec_ref_port_id(ext_ec_ref_port_id, state)) {
4076 mutex_unlock(&routing_lock);
4077 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol, mux, e,
4078 update);
4079 } else {
4080 ret = -EINVAL;
4081 mutex_unlock(&routing_lock);
4082 }
4083 return ret;
4084}
4085
4086static const char * const ext_ec_ref_rx[] = {"NONE", "PRI_MI2S_TX",
4087 "SEC_MI2S_TX", "TERT_MI2S_TX",
4088 "QUAT_MI2S_TX", "QUIN_MI2S_TX",
Karthikeyan Manibfba0542018-06-20 15:20:28 -07004089 "SLIM_1_TX", "SEC_TDM_TX"};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304090
4091static const struct soc_enum msm_route_ext_ec_ref_rx_enum[] = {
4092 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ext_ec_ref_rx), ext_ec_ref_rx),
4093};
4094
4095static const struct snd_kcontrol_new voc_ext_ec_mux =
4096 SOC_DAPM_ENUM_EXT("VOC_EXT_EC MUX Mux", msm_route_ext_ec_ref_rx_enum[0],
4097 msm_routing_ext_ec_get, msm_routing_ext_ec_put);
4098
4099
4100static const struct snd_kcontrol_new pri_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004101 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4102 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304103 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4104 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004105 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4106 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304107 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4108 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004109 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4110 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304111 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4112 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004113 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4114 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304115 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4116 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004117 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4118 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304119 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4120 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004121 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4122 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304123 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4124 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004125 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4126 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304127 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4128 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004129 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4130 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304131 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4132 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004133 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4134 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304135 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4136 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004137 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4138 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304139 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4140 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004141 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4142 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304143 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4144 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004145 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4146 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304147 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4148 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004149 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4150 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304151 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4152 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004153 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4154 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304155 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4156 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004157 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4158 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304159 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004161 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4162 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304163 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4164 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004165 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4166 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304167 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004169 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4170 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304171 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4172 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004173 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4174 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304175 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4176 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004177 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4178 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304179 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4180 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004181 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4182 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304183 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4184 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304185};
4186
4187static const struct snd_kcontrol_new sec_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004188 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4189 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304190 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4191 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004192 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4193 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304194 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4195 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004196 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4197 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304198 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4199 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004200 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4201 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304202 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4203 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004204 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4205 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304206 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4207 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004208 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4209 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304210 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4211 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004212 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4213 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304214 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4215 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004216 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4217 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304218 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4219 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004220 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4221 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304222 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4223 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004224 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4225 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304226 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4227 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004228 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4229 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304230 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4231 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004232 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4233 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304234 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4235 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004236 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4237 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304238 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4239 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004240 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4241 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304242 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4243 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004244 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4245 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304246 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4247 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004248 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4249 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304250 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4251 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004252 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4253 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304254 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4255 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004256 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4257 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304258 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4259 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004260 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4261 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304262 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4263 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004264 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4265 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304266 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4267 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004268 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4269 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304270 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4271 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304272};
4273
Ralf Herzc8701f72018-06-20 11:37:35 +02004274static const struct snd_kcontrol_new pri_spdif_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004275 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004276 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304277 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4278 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004279 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004280 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304281 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4282 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004283 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004284 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304285 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4286 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004287 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004288 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304289 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4290 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004291 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004292 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304293 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4294 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004295 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004296 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304297 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4298 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004299 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004300 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304301 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4302 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004303 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004304 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304305 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4306 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004307 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004308 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304309 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4310 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004311 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004312 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304313 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4314 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004315 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004316 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304317 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4318 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004319 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004320 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304321 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4322 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004323 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004324 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304325 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4326 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004327 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004328 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304329 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4330 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004331 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004332 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304333 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4334 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004335 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004336 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304337 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4338 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004339 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004340 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304341 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4342 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004343 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004344 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304345 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4346 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004347 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004348 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304349 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4350 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004351 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004352 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304353 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4354 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004355 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004356 MSM_BACKEND_DAI_PRI_SPDIF_RX,
4357 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4358 msm_routing_put_audio_mixer),
4359};
4360
4361static const struct snd_kcontrol_new sec_spdif_rx_mixer_controls[] = {
4362 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4363 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4364 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4365 msm_routing_put_audio_mixer),
4366 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4367 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4368 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4369 msm_routing_put_audio_mixer),
4370 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4371 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4372 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4373 msm_routing_put_audio_mixer),
4374 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4375 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4376 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4377 msm_routing_put_audio_mixer),
4378 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4379 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4380 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4381 msm_routing_put_audio_mixer),
4382 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4383 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4384 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4385 msm_routing_put_audio_mixer),
4386 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4387 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4388 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4389 msm_routing_put_audio_mixer),
4390 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4391 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4392 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4393 msm_routing_put_audio_mixer),
4394 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4395 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4396 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4397 msm_routing_put_audio_mixer),
4398 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4399 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4400 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4401 msm_routing_put_audio_mixer),
4402 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4403 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4404 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4405 msm_routing_put_audio_mixer),
4406 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4407 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4408 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4409 msm_routing_put_audio_mixer),
4410 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4411 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4412 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4413 msm_routing_put_audio_mixer),
4414 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4415 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4416 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4417 msm_routing_put_audio_mixer),
4418 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4419 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4420 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4421 msm_routing_put_audio_mixer),
4422 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4423 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4424 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4425 msm_routing_put_audio_mixer),
4426 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4427 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4428 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4429 msm_routing_put_audio_mixer),
4430 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4431 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4432 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4433 msm_routing_put_audio_mixer),
4434 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4435 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4436 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4437 msm_routing_put_audio_mixer),
4438 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4439 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4440 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4441 msm_routing_put_audio_mixer),
4442 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4443 MSM_BACKEND_DAI_SEC_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304444 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4445 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304446};
4447
4448static const struct snd_kcontrol_new slimbus_2_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004449 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4450 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304451 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4452 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004453 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4454 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304455 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4456 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004457 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4458 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304459 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4460 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004461 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4462 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304463 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4464 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004465 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4466 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304467 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4468 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004469 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4470 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304471 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4472 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004473 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4474 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304475 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4476 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004477 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4478 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304479 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4480 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004481 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4482 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304483 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4484 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004485 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4486 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304487 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4488 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004489 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4490 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304491 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4492 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004493 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4494 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304495 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4496 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004497 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4498 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304499 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4500 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004501 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4502 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304503 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4504 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004505 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4506 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304507 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4508 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004509 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4510 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304511 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4512 msm_routing_put_audio_mixer),
4513};
4514
4515static const struct snd_kcontrol_new slimbus_5_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004516 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4517 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304518 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4519 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004520 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4521 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304522 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4523 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004524 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4525 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304526 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4527 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004528 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4529 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304530 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4531 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004532 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4533 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304534 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4535 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004536 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4537 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304538 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4539 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004540 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4541 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304542 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4543 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004544 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4545 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304546 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4547 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004548 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4549 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304550 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4551 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004552 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4553 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304554 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4555 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004556 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4557 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304558 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4559 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004560 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4561 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304562 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4563 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004564 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4565 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304566 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4567 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004568 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4569 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304570 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4571 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004572 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4573 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304574 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4575 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004576 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4577 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304578 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4579 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004580 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4581 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304582 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4583 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004584 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4585 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304586 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4587 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004588 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4589 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304590 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004592 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4593 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304594 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4595 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004596 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4597 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304598 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4599 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304600};
4601
4602static const struct snd_kcontrol_new slimbus_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004603 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4604 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304605 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4606 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004607 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4608 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304609 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4610 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004611 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4612 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304613 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4614 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004615 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4616 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304617 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4618 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004619 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4620 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304621 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4622 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004623 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4624 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304625 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4626 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004627 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4628 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304629 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4630 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004631 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4632 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304633 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4634 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004635 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4636 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304637 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4638 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004639 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4640 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304641 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4642 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004643 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4644 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304645 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4646 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004647 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4648 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304649 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4650 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004651 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4652 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304653 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4654 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004655 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4656 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304657 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4658 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004659 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4660 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304661 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4662 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004663 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4664 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304665 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4666 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004667 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4668 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304669 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4670 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004671 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4672 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304673 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4674 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004675 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4676 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304677 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4678 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004679 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4680 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304681 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4682 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004683 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4684 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304685 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4686 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304687};
4688
4689static const struct snd_kcontrol_new mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004690 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4691 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304692 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4693 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004694 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4695 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304696 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4697 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004698 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4699 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304700 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4701 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004702 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4703 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304704 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4705 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004706 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4707 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304708 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4709 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004710 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4711 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304712 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4713 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004714 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4715 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304716 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4717 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004718 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4719 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304720 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4721 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004722 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4723 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304724 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4725 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004726 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4727 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304728 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4729 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004730 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4731 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304732 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4733 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004734 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4735 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304736 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4737 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004738 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4739 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304740 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4741 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004742 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4743 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304744 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4745 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004746 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4747 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304748 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4749 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004750 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4751 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304752 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004754 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4755 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304756 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4757 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004758 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4759 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304760 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4761 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004762 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4763 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304764 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4765 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004766 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4767 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304768 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4769 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004770 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4771 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304772 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4773 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304774};
4775
4776static const struct snd_kcontrol_new quaternary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004777 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4778 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304779 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4780 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004781 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4782 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304783 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4784 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004785 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4786 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304787 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4788 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004789 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4790 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304791 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4792 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004793 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4794 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304795 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4796 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004797 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4798 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304799 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4800 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004801 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4802 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304803 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4804 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004805 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4806 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304807 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4808 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004809 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4810 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304811 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4812 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004813 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4814 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304815 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4816 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004817 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4818 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304819 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4820 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004821 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4822 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304823 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4824 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004825 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4826 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304827 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4828 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004829 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4830 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304831 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4832 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004833 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4834 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304835 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4836 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004837 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4838 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304839 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4840 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004841 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4842 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304843 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4844 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004845 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4846 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304847 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4848 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004849 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4850 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304851 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4852 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004853 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4854 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304855 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4856 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004857 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4858 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304859 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4860 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304861};
4862
4863static const struct snd_kcontrol_new quinary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004864 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4865 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304866 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4867 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004868 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4869 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304870 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4871 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004872 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4873 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304874 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4875 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004876 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4877 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304878 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4879 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004880 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4881 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304882 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4883 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004884 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4885 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304886 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4887 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004888 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4889 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304890 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4891 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004892 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4893 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304894 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4895 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004896 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4897 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304898 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4899 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004900 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4901 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304902 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4903 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004904 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4905 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304906 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4907 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004908 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4909 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304910 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4911 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004912 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4913 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304914 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4915 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004916 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4917 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304918 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4919 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004920 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4921 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304922 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4923 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004924 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4925 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304926 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4927 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004928 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4929 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304930 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4931 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004932 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4933 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304934 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4935 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004936 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4937 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304938 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4939 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004940 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4941 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304942 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4943 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004944 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4945 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304946 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4947 msm_routing_put_audio_mixer),
4948
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304949};
4950
4951static const struct snd_kcontrol_new tertiary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004952 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4953 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304954 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4955 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004956 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4957 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304958 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4959 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004960 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4961 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304962 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4963 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004964 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4965 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304966 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4967 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004968 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4969 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304970 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4971 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004972 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4973 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304974 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4975 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004976 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4977 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304978 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4979 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004980 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4981 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304982 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4983 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004984 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4985 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304986 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4987 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004988 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4989 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304990 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4991 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004992 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4993 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304994 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4995 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004996 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4997 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304998 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4999 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005000 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5001 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305002 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5003 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005004 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5005 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305006 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5007 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005008 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5009 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305010 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5011 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005012 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5013 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305014 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5015 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005016 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5017 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305018 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5019 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005020 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5021 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305022 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005024 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5025 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305026 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5027 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305028};
5029
5030static const struct snd_kcontrol_new secondary_mi2s_rx2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005031 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5032 MSM_BACKEND_DAI_SECONDARY_MI2S_RX_SD1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305033 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5034 msm_routing_put_audio_mixer),
5035};
5036
5037static const struct snd_kcontrol_new secondary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005038 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5039 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305040 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5041 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005042 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5043 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305044 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5045 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005046 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5047 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305048 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5049 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005050 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5051 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305052 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5053 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005054 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5055 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305056 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5057 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005058 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5059 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305060 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5061 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005062 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5063 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305064 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5065 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005066 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5067 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305068 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5069 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005070 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5071 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305072 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5073 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005074 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5075 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305076 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5077 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005078 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5079 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305080 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5081 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005082 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5083 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305084 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5085 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005086 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5087 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305088 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5089 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005090 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5091 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305092 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5093 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005094 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5095 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305096 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5097 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005098 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5099 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305100 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5101 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005102 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5103 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305104 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5105 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005106 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5107 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305108 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5109 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005110 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5111 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305112 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5113 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005114 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5115 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305116 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5117 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005118 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5119 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305120 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5121 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305122};
5123
5124static const struct snd_kcontrol_new primary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005125 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5126 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305127 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5128 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005129 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5130 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305131 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5132 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005133 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5134 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305135 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5136 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005137 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5138 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305139 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5140 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005141 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5142 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305143 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5144 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005145 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5146 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305147 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5148 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005149 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5150 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305151 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5152 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005153 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5154 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305155 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5156 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005157 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5158 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305159 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005161 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5162 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305163 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5164 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005165 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5166 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305167 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005169 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5170 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305171 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5172 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005173 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5174 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305175 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5176 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005177 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5178 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305179 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5180 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005181 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5182 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305183 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5184 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005185 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5186 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305187 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5188 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005189 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5190 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305191 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5192 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005193 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5194 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305195 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5196 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005197 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5198 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305199 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5200 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005201 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5202 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305203 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5204 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005205 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5206 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305207 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5208 msm_routing_put_audio_mixer),
5209
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305210};
5211
5212static const struct snd_kcontrol_new int0_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005213 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5214 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305215 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5216 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005217 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5218 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305219 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5220 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005221 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5222 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305223 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5224 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005225 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5226 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305227 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5228 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005229 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5230 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305231 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5232 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005233 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5234 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305235 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5236 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005237 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5238 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305239 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5240 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005241 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5242 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305243 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5244 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005245 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5246 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305247 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5248 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005249 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5250 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305251 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5252 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005253 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5254 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305255 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5256 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005257 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5258 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305259 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5260 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005261 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5262 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305263 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5264 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005265 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5266 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305267 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5268 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005269 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5270 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305271 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5272 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005273 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5274 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305275 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5276 msm_routing_put_audio_mixer),
5277};
5278
5279static const struct snd_kcontrol_new int4_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005280 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5281 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305282 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5283 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005284 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5285 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305286 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5287 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005288 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5289 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305290 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5291 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005292 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5293 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305294 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5295 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005296 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5297 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305298 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5299 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005300 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5301 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305302 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5303 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005304 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5305 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305306 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5307 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005308 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5309 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305310 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5311 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005312 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5313 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305314 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5315 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005316 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5317 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305318 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5319 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005320 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5321 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305322 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5323 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005324 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5325 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305326 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5327 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005328 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5329 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305330 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5331 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005332 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5333 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305334 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5335 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005336 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5337 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305338 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5339 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005340 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5341 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305342 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5343 msm_routing_put_audio_mixer),
5344};
5345
5346static const struct snd_kcontrol_new hdmi_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005347 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5348 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305349 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5350 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005351 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5352 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305353 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5354 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005355 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5356 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305357 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5358 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005359 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5360 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305361 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5362 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005363 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5364 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305365 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5366 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005367 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5368 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305369 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5370 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005371 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5372 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305373 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5374 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005375 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5376 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305377 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5378 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005379 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5380 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305381 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5382 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005383 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5384 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305385 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5386 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005387 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5388 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305389 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5390 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005391 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5392 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305393 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5394 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005395 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5396 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305397 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5398 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005399 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5400 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305401 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5402 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005403 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5404 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305405 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5406 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005407 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5408 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305409 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5410 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005411 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5412 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305413 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5414 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005415 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5416 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305417 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5418 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005419 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5420 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305421 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5422 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005423 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5424 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305425 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5426 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005427 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5428 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305429 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5430 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305431};
5432
5433static const struct snd_kcontrol_new display_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005434 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5435 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305436 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5437 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005438 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5439 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305440 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5441 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005442 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5443 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305444 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5445 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005446 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5447 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305448 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5449 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005450 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5451 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305452 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5453 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005454 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5455 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305456 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5457 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005458 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5459 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305460 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5461 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005462 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5463 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305464 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5465 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005466 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5467 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305468 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5469 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005470 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5471 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305472 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5473 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005474 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5475 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305476 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5477 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005478 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5479 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305480 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5481 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005482 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5483 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305484 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5485 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005486 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5487 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305488 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5489 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005490 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5491 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305492 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5493 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005494 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5495 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305496 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5497 msm_routing_put_audio_mixer),
5498};
5499
Karthikeyan Mani57550082018-05-03 18:43:58 -07005500static const struct snd_kcontrol_new display_port1_mixer_controls[] = {
5501 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5502 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5503 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5504 msm_routing_put_audio_mixer),
5505 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5506 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5507 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5508 msm_routing_put_audio_mixer),
5509 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5510 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5511 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5512 msm_routing_put_audio_mixer),
5513 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5514 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5515 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5516 msm_routing_put_audio_mixer),
5517 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5518 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5519 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5520 msm_routing_put_audio_mixer),
5521 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5522 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5523 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5524 msm_routing_put_audio_mixer),
5525 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5526 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5527 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5528 msm_routing_put_audio_mixer),
5529 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5530 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5531 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5532 msm_routing_put_audio_mixer),
5533 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5534 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5535 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5536 msm_routing_put_audio_mixer),
5537 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5538 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5539 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5540 msm_routing_put_audio_mixer),
5541 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5542 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5543 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5544 msm_routing_put_audio_mixer),
5545 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5546 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5547 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5548 msm_routing_put_audio_mixer),
5549 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5550 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5551 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5552 msm_routing_put_audio_mixer),
5553 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5554 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5555 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5556 msm_routing_put_audio_mixer),
5557 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5558 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5559 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5560 msm_routing_put_audio_mixer),
5561 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5562 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5563 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5564 msm_routing_put_audio_mixer),
5565};
5566
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305567 /* incall music delivery mixer */
5568static const struct snd_kcontrol_new incall_music_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005569 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5570 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305571 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5572 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005573 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5574 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305575 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5576 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005577 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5578 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305579 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5580 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005581 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5582 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305583 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5584 msm_routing_put_audio_mixer),
5585};
5586
5587static const struct snd_kcontrol_new incall_music2_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005588 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5589 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305590 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005592 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5593 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305594 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5595 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005596 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5597 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305598 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5599 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005600 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5601 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305602 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5603 msm_routing_put_audio_mixer),
5604};
5605
5606static const struct snd_kcontrol_new slimbus_4_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005607 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5608 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305609 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5610 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005611 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5612 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305613 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5614 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005615 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5616 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305617 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5618 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005619 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5620 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305621 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5622 msm_routing_put_audio_mixer),
5623};
5624
5625static const struct snd_kcontrol_new slimbus_6_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005626 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5627 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305628 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5629 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005630 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5631 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305632 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5633 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005634 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5635 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305636 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5637 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005638 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5639 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305640 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5641 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005642 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5643 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305644 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5645 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005646 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5647 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305648 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5649 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005650 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5651 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305652 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5653 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005654 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5655 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305656 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5657 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005658 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5659 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305660 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5661 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005662 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5663 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305664 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5665 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005666 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5667 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305668 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5669 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005670 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5671 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305672 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5673 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005674 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5675 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305676 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5677 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005678 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5679 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305680 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5681 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005682 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5683 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305684 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5685 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005686 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5687 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305688 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5689 msm_routing_put_audio_mixer),
5690};
5691
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305692static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_mixer_controls[] = {
5693 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5694 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5695 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5696 msm_routing_put_audio_mixer),
5697 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5698 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5699 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5700 msm_routing_put_audio_mixer),
5701 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5702 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5703 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5704 msm_routing_put_audio_mixer),
5705 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5706 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5707 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5708 msm_routing_put_audio_mixer),
5709 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5710 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5711 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5712 msm_routing_put_audio_mixer),
5713 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5714 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5715 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5716 msm_routing_put_audio_mixer),
5717 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5718 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5719 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5720 msm_routing_put_audio_mixer),
5721 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5722 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5723 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5724 msm_routing_put_audio_mixer),
5725 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5726 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5727 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5728 msm_routing_put_audio_mixer),
5729 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5730 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5731 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5732 msm_routing_put_audio_mixer),
5733 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5734 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5735 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5736 msm_routing_put_audio_mixer),
5737 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5738 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5739 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5740 msm_routing_put_audio_mixer),
5741 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5742 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5743 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5744 msm_routing_put_audio_mixer),
5745 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5746 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5747 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5748 msm_routing_put_audio_mixer),
5749 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5750 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5751 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5752 msm_routing_put_audio_mixer),
5753 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5754 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5755 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5756 msm_routing_put_audio_mixer),
5757};
5758
5759static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_mixer_controls[] = {
5760 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5761 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5762 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5763 msm_routing_put_audio_mixer),
5764 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5765 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5766 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5767 msm_routing_put_audio_mixer),
5768 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5769 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5770 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5771 msm_routing_put_audio_mixer),
5772 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5773 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5774 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5775 msm_routing_put_audio_mixer),
5776 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5777 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5778 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5779 msm_routing_put_audio_mixer),
5780 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5781 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5782 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5783 msm_routing_put_audio_mixer),
5784 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5785 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5786 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5787 msm_routing_put_audio_mixer),
5788 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5789 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5790 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5791 msm_routing_put_audio_mixer),
5792 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5793 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5794 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5795 msm_routing_put_audio_mixer),
5796 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5797 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5798 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5799 msm_routing_put_audio_mixer),
5800 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5801 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5802 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5803 msm_routing_put_audio_mixer),
5804 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5805 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5806 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5807 msm_routing_put_audio_mixer),
5808 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5809 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5810 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5811 msm_routing_put_audio_mixer),
5812 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5813 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5814 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5815 msm_routing_put_audio_mixer),
5816 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5817 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5818 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5819 msm_routing_put_audio_mixer),
5820 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5821 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5822 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5823 msm_routing_put_audio_mixer),
5824};
5825
Aditya Bavanari1e84a932018-06-18 19:40:08 +05305826static const struct snd_kcontrol_new rx_cdc_dma_rx_0_mixer_controls[] = {
5827 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5828 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5829 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5830 msm_routing_put_audio_mixer),
5831 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5832 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5833 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5834 msm_routing_put_audio_mixer),
5835 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5836 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5837 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5838 msm_routing_put_audio_mixer),
5839 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5840 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5841 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5842 msm_routing_put_audio_mixer),
5843 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5844 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5845 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5846 msm_routing_put_audio_mixer),
5847 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5848 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5849 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5850 msm_routing_put_audio_mixer),
5851 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5852 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5853 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5854 msm_routing_put_audio_mixer),
5855 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5856 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5857 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5858 msm_routing_put_audio_mixer),
5859 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5860 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5861 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5862 msm_routing_put_audio_mixer),
5863 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5864 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5865 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5866 msm_routing_put_audio_mixer),
5867 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5868 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5869 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5870 msm_routing_put_audio_mixer),
5871 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5872 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5873 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5874 msm_routing_put_audio_mixer),
5875 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5876 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5877 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5878 msm_routing_put_audio_mixer),
5879 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5880 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5881 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5882 msm_routing_put_audio_mixer),
5883 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5884 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5885 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5886 msm_routing_put_audio_mixer),
5887 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5888 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5889 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5890 msm_routing_put_audio_mixer),
5891};
5892
5893static const struct snd_kcontrol_new rx_cdc_dma_rx_1_mixer_controls[] = {
5894 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5895 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5896 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5897 msm_routing_put_audio_mixer),
5898 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5899 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5900 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5901 msm_routing_put_audio_mixer),
5902 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5903 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5904 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5905 msm_routing_put_audio_mixer),
5906 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5907 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5908 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5909 msm_routing_put_audio_mixer),
5910 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5911 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5912 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5913 msm_routing_put_audio_mixer),
5914 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5915 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5916 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5917 msm_routing_put_audio_mixer),
5918 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5919 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5920 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5921 msm_routing_put_audio_mixer),
5922 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5923 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5924 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5925 msm_routing_put_audio_mixer),
5926 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5927 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5928 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5929 msm_routing_put_audio_mixer),
5930 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5931 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5932 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5933 msm_routing_put_audio_mixer),
5934 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5935 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5936 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5937 msm_routing_put_audio_mixer),
5938 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5939 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5940 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5941 msm_routing_put_audio_mixer),
5942 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5943 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5944 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5945 msm_routing_put_audio_mixer),
5946 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5947 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5948 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5949 msm_routing_put_audio_mixer),
5950 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5951 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5952 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5953 msm_routing_put_audio_mixer),
5954 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5955 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5956 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5957 msm_routing_put_audio_mixer),
5958};
5959
5960static const struct snd_kcontrol_new rx_cdc_dma_rx_2_mixer_controls[] = {
5961 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5962 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
5963 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5964 msm_routing_put_audio_mixer),
5965 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5966 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
5967 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5968 msm_routing_put_audio_mixer),
5969 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5970 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
5971 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5972 msm_routing_put_audio_mixer),
5973 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5974 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
5975 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5976 msm_routing_put_audio_mixer),
5977 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5978 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
5979 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5980 msm_routing_put_audio_mixer),
5981 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5982 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
5983 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5984 msm_routing_put_audio_mixer),
5985 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5986 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
5987 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5988 msm_routing_put_audio_mixer),
5989 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5990 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
5991 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5992 msm_routing_put_audio_mixer),
5993 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5994 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
5995 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5996 msm_routing_put_audio_mixer),
5997 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5998 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
5999 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6000 msm_routing_put_audio_mixer),
6001 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6002 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6003 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6004 msm_routing_put_audio_mixer),
6005 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6006 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6007 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6008 msm_routing_put_audio_mixer),
6009 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6010 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6011 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6012 msm_routing_put_audio_mixer),
6013 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6014 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6015 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6016 msm_routing_put_audio_mixer),
6017 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6018 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6019 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6020 msm_routing_put_audio_mixer),
6021 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6022 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6023 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6024 msm_routing_put_audio_mixer),
6025};
6026
6027static const struct snd_kcontrol_new rx_cdc_dma_rx_3_mixer_controls[] = {
6028 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6029 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6030 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6031 msm_routing_put_audio_mixer),
6032 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6033 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6034 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6035 msm_routing_put_audio_mixer),
6036 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6037 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6038 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6039 msm_routing_put_audio_mixer),
6040 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6041 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6042 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6043 msm_routing_put_audio_mixer),
6044 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6045 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6046 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6047 msm_routing_put_audio_mixer),
6048 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6049 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6050 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6051 msm_routing_put_audio_mixer),
6052 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6053 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6054 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6055 msm_routing_put_audio_mixer),
6056 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6057 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6058 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6059 msm_routing_put_audio_mixer),
6060 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6061 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6062 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6063 msm_routing_put_audio_mixer),
6064 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6065 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6066 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6067 msm_routing_put_audio_mixer),
6068 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6069 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6070 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6071 msm_routing_put_audio_mixer),
6072 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6073 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6074 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6075 msm_routing_put_audio_mixer),
6076 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6077 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6078 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6079 msm_routing_put_audio_mixer),
6080 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6081 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6082 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6083 msm_routing_put_audio_mixer),
6084 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6085 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6086 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6087 msm_routing_put_audio_mixer),
6088 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6089 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6090 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6091 msm_routing_put_audio_mixer),
6092};
6093
6094static const struct snd_kcontrol_new rx_cdc_dma_rx_4_mixer_controls[] = {
6095 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6096 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6097 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6098 msm_routing_put_audio_mixer),
6099 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6100 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6101 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6102 msm_routing_put_audio_mixer),
6103 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6104 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6105 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6106 msm_routing_put_audio_mixer),
6107 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6108 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6109 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6110 msm_routing_put_audio_mixer),
6111 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6112 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6113 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6114 msm_routing_put_audio_mixer),
6115 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6116 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6117 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6118 msm_routing_put_audio_mixer),
6119 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6120 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6121 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6122 msm_routing_put_audio_mixer),
6123 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6124 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6125 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6126 msm_routing_put_audio_mixer),
6127 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6128 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6129 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6130 msm_routing_put_audio_mixer),
6131 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6132 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6133 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6134 msm_routing_put_audio_mixer),
6135 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6136 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6137 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6138 msm_routing_put_audio_mixer),
6139 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6140 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6141 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6142 msm_routing_put_audio_mixer),
6143 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6144 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6145 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6146 msm_routing_put_audio_mixer),
6147 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6148 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6149 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6150 msm_routing_put_audio_mixer),
6151 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6152 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6153 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6154 msm_routing_put_audio_mixer),
6155 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6156 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6157 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6158 msm_routing_put_audio_mixer),
6159};
6160
6161static const struct snd_kcontrol_new rx_cdc_dma_rx_5_mixer_controls[] = {
6162 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6163 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6164 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6165 msm_routing_put_audio_mixer),
6166 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6167 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6168 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6169 msm_routing_put_audio_mixer),
6170 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6171 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6172 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6173 msm_routing_put_audio_mixer),
6174 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6175 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6176 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6177 msm_routing_put_audio_mixer),
6178 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6179 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6180 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6181 msm_routing_put_audio_mixer),
6182 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6183 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6184 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6185 msm_routing_put_audio_mixer),
6186 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6187 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6188 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6189 msm_routing_put_audio_mixer),
6190 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6191 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6192 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6193 msm_routing_put_audio_mixer),
6194 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6195 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6196 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6197 msm_routing_put_audio_mixer),
6198 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6199 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6200 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6201 msm_routing_put_audio_mixer),
6202 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6203 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6204 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6205 msm_routing_put_audio_mixer),
6206 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6207 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6208 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6209 msm_routing_put_audio_mixer),
6210 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6211 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6212 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6213 msm_routing_put_audio_mixer),
6214 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6215 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6216 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6217 msm_routing_put_audio_mixer),
6218 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6219 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6220 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6221 msm_routing_put_audio_mixer),
6222 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6223 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6224 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6225 msm_routing_put_audio_mixer),
6226};
6227
6228static const struct snd_kcontrol_new rx_cdc_dma_rx_6_mixer_controls[] = {
6229 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6230 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6231 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6232 msm_routing_put_audio_mixer),
6233 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6234 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6235 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6236 msm_routing_put_audio_mixer),
6237 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6238 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6239 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6240 msm_routing_put_audio_mixer),
6241 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6242 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6243 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6244 msm_routing_put_audio_mixer),
6245 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6246 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6247 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6248 msm_routing_put_audio_mixer),
6249 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6250 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6251 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6252 msm_routing_put_audio_mixer),
6253 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6254 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6255 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6256 msm_routing_put_audio_mixer),
6257 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6258 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6259 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6260 msm_routing_put_audio_mixer),
6261 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6262 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6263 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6264 msm_routing_put_audio_mixer),
6265 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6266 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6267 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6268 msm_routing_put_audio_mixer),
6269 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6270 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6271 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6272 msm_routing_put_audio_mixer),
6273 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6274 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6275 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6276 msm_routing_put_audio_mixer),
6277 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6278 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6279 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6280 msm_routing_put_audio_mixer),
6281 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6282 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6283 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6284 msm_routing_put_audio_mixer),
6285 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6286 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6287 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6288 msm_routing_put_audio_mixer),
6289 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6290 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6291 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6292 msm_routing_put_audio_mixer),
6293};
6294
6295static const struct snd_kcontrol_new rx_cdc_dma_rx_7_mixer_controls[] = {
6296 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6297 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6298 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6299 msm_routing_put_audio_mixer),
6300 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6301 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6302 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6303 msm_routing_put_audio_mixer),
6304 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6305 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6306 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6307 msm_routing_put_audio_mixer),
6308 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6309 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6310 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6311 msm_routing_put_audio_mixer),
6312 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6313 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6314 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6315 msm_routing_put_audio_mixer),
6316 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6317 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6318 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6319 msm_routing_put_audio_mixer),
6320 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6321 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6322 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6323 msm_routing_put_audio_mixer),
6324 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6325 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6326 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6327 msm_routing_put_audio_mixer),
6328 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6329 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6330 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6331 msm_routing_put_audio_mixer),
6332 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6333 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6334 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6335 msm_routing_put_audio_mixer),
6336 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6337 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6338 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6339 msm_routing_put_audio_mixer),
6340 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6341 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6342 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6343 msm_routing_put_audio_mixer),
6344 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6345 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6346 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6347 msm_routing_put_audio_mixer),
6348 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6349 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6350 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6351 msm_routing_put_audio_mixer),
6352 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6353 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6354 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6355 msm_routing_put_audio_mixer),
6356 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6357 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6358 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6359 msm_routing_put_audio_mixer),
6360};
6361
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306362static const struct snd_kcontrol_new slimbus_7_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006363 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6364 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306365 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6366 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006367 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6368 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306369 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6370 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006371 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6372 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306373 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6374 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006375 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6376 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306377 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6378 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006379 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6380 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306381 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6382 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006383 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6384 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306385 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6386 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006387 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6388 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306389 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6390 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006391 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6392 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306393 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6394 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006395 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6396 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306397 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6398 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006399 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6400 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306401 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6402 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006403 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6404 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306405 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6406 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006407 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6408 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306409 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6410 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006411 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6412 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306413 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6414 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006415 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6416 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306417 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6418 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006419 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6420 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306421 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6422 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006423 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6424 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306425 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6426 msm_routing_put_audio_mixer),
6427};
6428
6429static const struct snd_kcontrol_new usb_audio_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006430 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6431 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306432 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6433 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006434 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6435 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306436 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6437 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006438 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6439 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306440 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6441 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006442 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6443 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306444 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6445 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006446 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6447 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306448 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6449 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006450 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6451 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306452 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6453 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006454 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6455 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306456 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6457 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006458 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6459 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306460 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6461 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006462 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6463 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306464 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6465 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006466 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6467 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306468 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6469 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006470 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6471 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306472 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6473 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006474 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6475 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306476 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6477 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006478 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6479 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306480 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6481 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006482 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6483 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306484 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6485 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006486 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6487 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306488 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6489 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006490 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6491 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306492 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6493 msm_routing_put_audio_mixer),
6494};
6495
6496static const struct snd_kcontrol_new int_bt_sco_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006497 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6498 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306499 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6500 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006501 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6502 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306503 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6504 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006505 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6506 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306507 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6508 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006509 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6510 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306511 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6512 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006513 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6514 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306515 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6516 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006517 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6518 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306519 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6520 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006521 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6522 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306523 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6524 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006525 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6526 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306527 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6528 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006529 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6530 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306531 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006533 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6534 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306535 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006537 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6538 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306539 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006541 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6542 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306543 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006545 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6546 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306547 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006549 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6550 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306551 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006553 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6554 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306555 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6556 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006557 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6558 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306559 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6560 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006561 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6562 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306563 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6564 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006565 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6566 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306567 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6568 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006569 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6570 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306571 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6572 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006573 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6574 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306575 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6576 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006577 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6578 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306579 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6580 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306581};
6582
6583static const struct snd_kcontrol_new int_bt_a2dp_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006584 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6585 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306586 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6587 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006588 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6589 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306590 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006592 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6593 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306594 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6595 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006596 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6597 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306598 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6599 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006600 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6601 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306602 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6603 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006604 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6605 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306606 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6607 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006608 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6609 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306610 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6611 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006612 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6613 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306614 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6615 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006616 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6617 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306618 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6619 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006620 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6621 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306622 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6623 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006624 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6625 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306626 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6627 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006628 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6629 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306630 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6631 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006632 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6633 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306634 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6635 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006636 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6637 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306638 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6639 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006640 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6641 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306642 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6643 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006644 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6645 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306646 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6647 msm_routing_put_audio_mixer),
6648};
6649
6650static const struct snd_kcontrol_new int_fm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006651 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6652 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306653 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6654 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006655 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6656 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306657 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6658 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006659 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6660 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306661 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6662 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006663 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6664 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306665 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6666 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006667 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6668 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306669 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6670 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006671 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6672 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306673 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6674 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006675 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6676 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306677 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6678 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006679 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6680 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306681 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6682 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006683 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6684 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306685 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6686 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006687 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6688 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306689 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6690 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006691 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6692 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306693 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6694 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006695 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6696 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306697 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6698 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006699 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6700 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306701 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6702 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006703 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6704 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306705 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6706 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006707 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6708 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306709 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6710 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006711 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6712 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306713 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6714 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006715 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6716 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306717 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6718 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006719 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6720 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306721 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6722 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006723 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6724 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306725 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6726 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006727 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6728 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306729 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6730 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006731 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6732 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306733 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6734 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306735};
6736
6737static const struct snd_kcontrol_new afe_pcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006738 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6739 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306740 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6741 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006742 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6743 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306744 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6745 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006746 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6747 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306748 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6749 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006750 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6751 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306752 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006754 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6755 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306756 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6757 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006758 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6759 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306760 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6761 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006762 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6763 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306764 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6765 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006766 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6767 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306768 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6769 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006770 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6771 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306772 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6773 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006774 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6775 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306776 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6777 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006778 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6779 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306780 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6781 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006782 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6783 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306784 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6785 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006786 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6787 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306788 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6789 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006790 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6791 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306792 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6793 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006794 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6795 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306796 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6797 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006798 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6799 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306800 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6801 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006802 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6803 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306804 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6805 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006806 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6807 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306808 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6809 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006810 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6811 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306812 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6813 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006814 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6815 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306816 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6817 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006818 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6819 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306820 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6821 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306822};
6823
6824static const struct snd_kcontrol_new auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006825 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6826 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306827 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6828 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006829 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6830 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306831 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6832 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006833 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6834 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306835 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6836 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006837 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6838 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306839 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6840 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006841 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6842 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306843 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6844 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006845 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6846 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306847 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6848 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006849 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6850 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306851 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6852 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006853 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6854 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306855 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6856 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006857 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6858 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306859 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6860 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006861 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6862 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306863 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6864 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006865 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6866 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306867 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6868 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006869 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6870 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306871 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6872 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006873 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6874 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306875 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6876 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006877 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6878 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306879 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6880 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006881 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6882 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306883 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6884 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006885 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6886 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306887 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6888 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006889 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6890 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306891 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6892 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006893 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6894 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306895 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6896 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006897 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6898 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306899 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6900 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07006901 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
6902 MSM_BACKEND_DAI_AUXPCM_RX,
6903 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
6904 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006905 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6906 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306907 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6908 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006909 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6910 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306911 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6912 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306913};
6914
6915static const struct snd_kcontrol_new sec_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006916 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6917 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306918 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6919 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006920 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6921 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306922 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6923 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006924 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6925 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306926 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6927 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006928 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6929 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306930 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6931 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006932 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6933 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306934 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6935 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006936 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6937 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306938 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6939 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006940 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6941 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306942 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6943 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006944 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6945 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306946 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6947 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006948 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6949 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306950 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6951 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006952 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6953 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306954 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6955 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006956 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6957 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306958 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6959 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006960 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6961 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306962 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6963 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006964 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6965 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306966 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6967 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006968 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6969 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306970 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6971 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006972 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6973 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306974 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6975 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006976 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6977 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306978 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6979 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006980 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6981 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306982 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6983 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006984 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6985 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306986 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6987 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006988 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6989 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306990 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6991 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07006992 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
6993 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
6994 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
6995 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006996 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6997 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306998 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6999 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007000 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7001 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307002 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7003 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307004};
7005
7006static const struct snd_kcontrol_new tert_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007007 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7008 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307009 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7010 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007011 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7012 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307013 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7014 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007015 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7016 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307017 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7018 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007019 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7020 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307021 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7022 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007023 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7024 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307025 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7026 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007027 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7028 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307029 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7030 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007031 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7032 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307033 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7034 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007035 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7036 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307037 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7038 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007039 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7040 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307041 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7042 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007043 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7044 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307045 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7046 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007047 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7048 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307049 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7050 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007051 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7052 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307053 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7054 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007055 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7056 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307057 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7058 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007059 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7060 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307061 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7062 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007063 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7064 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307065 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7066 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007067 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7068 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307069 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7070 msm_routing_put_audio_mixer),
7071};
7072
7073static const struct snd_kcontrol_new quat_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007074 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7075 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307076 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7077 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007078 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7079 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307080 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7081 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007082 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7083 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307084 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7085 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007086 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7087 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307088 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7089 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007090 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7091 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307092 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7093 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007094 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7095 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307096 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7097 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007098 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7099 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307100 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7101 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007102 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7103 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307104 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7105 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007106 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7107 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307108 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7109 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007110 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7111 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307112 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7113 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007114 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7115 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307116 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7117 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007118 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7119 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307120 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7121 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007122 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7123 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307124 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7125 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007126 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7127 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307128 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7129 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007130 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7131 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307132 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7133 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007134 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7135 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307136 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7137 msm_routing_put_audio_mixer),
7138};
7139
Rohit Kumara5077932017-09-10 22:05:05 +05307140static const struct snd_kcontrol_new quin_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007141 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7142 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307143 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7144 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007145 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7146 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307147 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7148 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007149 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7150 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307151 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7152 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007153 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7154 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307155 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7156 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007157 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7158 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307159 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007161 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7162 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307163 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7164 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007165 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7166 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307167 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007169 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7170 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307171 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7172 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007173 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7174 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307175 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7176 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007177 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7178 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307179 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7180 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007181 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7182 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307183 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7184 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007185 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7186 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307187 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7188 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007189 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7190 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307191 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7192 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007193 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7194 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307195 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7196 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007197 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7198 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307199 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7200 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007201 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7202 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307203 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7204 msm_routing_put_audio_mixer),
7205};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307206static const struct snd_kcontrol_new pri_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007207 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7208 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307209 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7210 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007211 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7212 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307213 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7214 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007215 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7216 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307217 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7218 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007219 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7220 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307221 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7222 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007223 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7224 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307225 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7226 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007227 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7228 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307229 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7230 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007231 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7232 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307233 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7234 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007235 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7236 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307237 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7238 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007239 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7240 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307241 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7242 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007243 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7244 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307245 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7246 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007247 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7248 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307249 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7250 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007251 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7252 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307253 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7254 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007255 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7256 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307257 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7258 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007259 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7260 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307261 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7262 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007263 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7264 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307265 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7266 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007267 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7268 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307269 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7270 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007271 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7272 MSM_BACKEND_DAI_PRI_TDM_RX_0,
7273 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7274 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307275};
7276
7277static const struct snd_kcontrol_new pri_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007278 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7279 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307280 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7281 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007282 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7283 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307284 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7285 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007286 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7287 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307288 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7289 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007290 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7291 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307292 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7293 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007294 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7295 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307296 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7297 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007298 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7299 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307300 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7301 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007302 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7303 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307304 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7305 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007306 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7307 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307308 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7309 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007310 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7311 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307312 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7313 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007314 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7315 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307316 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7317 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007318 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7319 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307320 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7321 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007322 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7323 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307324 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7325 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007326 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7327 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307328 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7329 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007330 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7331 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307332 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7333 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007334 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7335 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307336 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7337 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007338 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7339 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307340 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7341 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007342 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7343 MSM_BACKEND_DAI_PRI_TDM_RX_1,
7344 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7345 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307346};
7347
7348static const struct snd_kcontrol_new pri_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007349 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7350 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307351 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7352 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007353 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7354 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307355 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7356 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007357 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7358 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307359 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7360 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007361 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7362 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307363 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7364 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007365 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7366 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307367 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7368 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007369 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7370 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307371 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7372 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007373 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7374 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307375 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7376 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007377 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7378 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307379 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7380 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007381 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7382 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307383 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7384 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007385 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7386 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307387 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7388 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007389 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7390 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307391 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7392 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007393 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7394 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307395 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7396 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007397 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7398 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307399 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7400 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007401 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7402 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307403 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7404 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007405 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7406 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307407 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7408 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007409 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7410 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307411 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7412 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007413 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7414 MSM_BACKEND_DAI_PRI_TDM_RX_2,
7415 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7416 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307417};
7418
7419static const struct snd_kcontrol_new pri_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007420 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7421 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307422 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7423 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007424 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7425 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307426 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7427 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007428 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7429 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307430 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7431 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007432 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7433 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307434 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7435 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007436 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7437 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307438 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7439 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007440 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7441 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307442 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7443 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007444 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7445 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307446 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7447 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007448 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7449 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307450 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7451 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007452 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7453 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307454 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7455 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007456 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7457 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307458 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7459 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007460 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7461 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307462 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7463 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007464 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7465 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307466 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7467 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007468 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7469 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307470 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7471 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007472 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7473 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307474 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7475 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007476 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7477 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307478 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7479 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007480 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7481 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307482 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7483 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007484 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7485 MSM_BACKEND_DAI_PRI_TDM_RX_3,
7486 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7487 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307488};
7489
7490static const struct snd_kcontrol_new pri_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007491 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7492 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307493 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7494 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007495 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7496 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307497 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7498 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007499 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7500 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307501 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7502 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007503 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7504 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307505 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7506 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007507 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7508 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307509 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7510 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007511 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7512 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307513 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7514 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007515 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7516 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307517 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7518 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007519 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7520 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307521 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7522 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007523 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7524 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307525 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7526 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007527 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7528 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307529 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7530 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007531 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7532 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307533 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7534 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007535 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7536 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307537 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7538 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007539 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7540 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307541 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7542 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007543 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7544 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307545 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7546 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007547 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7548 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307549 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7550 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007551 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7552 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307553 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7554 msm_routing_put_audio_mixer),
7555};
7556
7557static const struct snd_kcontrol_new sec_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007558 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7559 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307560 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7561 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007562 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7563 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307564 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7565 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007566 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7567 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307568 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7569 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007570 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7571 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307572 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7573 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007574 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7575 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307576 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7577 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007578 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7579 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307580 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7581 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007582 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7583 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307584 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7585 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007586 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7587 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307588 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7589 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007590 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7591 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307592 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7593 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007594 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7595 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307596 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7597 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007598 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7599 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307600 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7601 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007602 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7603 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307604 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7605 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007606 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7607 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307608 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7609 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007610 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7611 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307612 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7613 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007614 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7615 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307616 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7617 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007618 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7619 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307620 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7621 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007622 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7623 MSM_BACKEND_DAI_SEC_TDM_RX_0,
7624 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7625 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307626};
7627
7628static const struct snd_kcontrol_new sec_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007629 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7630 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307631 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7632 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007633 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7634 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307635 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7636 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007637 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7638 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307639 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7640 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007641 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7642 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307643 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7644 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007645 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7646 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307647 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7648 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007649 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7650 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307651 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7652 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007653 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7654 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307655 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7656 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007657 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7658 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307659 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7660 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007661 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7662 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307663 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7664 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007665 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7666 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307667 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7668 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007669 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7670 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307671 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7672 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007673 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7674 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307675 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7676 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007677 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7678 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307679 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7680 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007681 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7682 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307683 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7684 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007685 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7686 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307687 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7688 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007689 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7690 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307691 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7692 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007693 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7694 MSM_BACKEND_DAI_SEC_TDM_RX_1,
7695 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7696 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307697};
7698
7699static const struct snd_kcontrol_new sec_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007700 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7701 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307702 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7703 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007704 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7705 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307706 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7707 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007708 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7709 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307710 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7711 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007712 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7713 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307714 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7715 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007716 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7717 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307718 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7719 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007720 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7721 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307722 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7723 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007724 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7725 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307726 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7727 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007728 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7729 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307730 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7731 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007732 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7733 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307734 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7735 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007736 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7737 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307738 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7739 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007740 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7741 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307742 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7743 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007744 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7745 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307746 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7747 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007748 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7749 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307750 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7751 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007752 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7753 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307754 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7755 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007756 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7757 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307758 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7759 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007760 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7761 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307762 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7763 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007764 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7765 MSM_BACKEND_DAI_SEC_TDM_RX_2,
7766 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7767 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307768};
7769
7770static const struct snd_kcontrol_new sec_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007771 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7772 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307773 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7774 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007775 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7776 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307777 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7778 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007779 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7780 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307781 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7782 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007783 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7784 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307785 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7786 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007787 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7788 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307789 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7790 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007791 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7792 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307793 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7794 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007795 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7796 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307797 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7798 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007799 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7800 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307801 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7802 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007803 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7804 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307805 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7806 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007807 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7808 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307809 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7810 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007811 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7812 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307813 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7814 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007815 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7816 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307817 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7818 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007819 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7820 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307821 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7822 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007823 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7824 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307825 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7826 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007827 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7828 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307829 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7830 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007831 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7832 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307833 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7834 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007835 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7836 MSM_BACKEND_DAI_SEC_TDM_RX_3,
7837 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7838 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307839};
7840
7841static const struct snd_kcontrol_new sec_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007842 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7843 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307844 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7845 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007846 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7847 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307848 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7849 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007850 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7851 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307852 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7853 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007854 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7855 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307856 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7857 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007858 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7859 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307860 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7861 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007862 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7863 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307864 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7865 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007866 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7867 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307868 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7869 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007870 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7871 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307872 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7873 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007874 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7875 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307876 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7877 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007878 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7879 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307880 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7881 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007882 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7883 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307884 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7885 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007886 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7887 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307888 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7889 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007890 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7891 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307892 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7893 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007894 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7895 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307896 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7897 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007898 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7899 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307900 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7901 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007902 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7903 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307904 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7905 msm_routing_put_audio_mixer),
7906};
7907
7908static const struct snd_kcontrol_new tert_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007909 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7910 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307911 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7912 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007913 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7914 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307915 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7916 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007917 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7918 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307919 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7920 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007921 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7922 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307923 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7924 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007925 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7926 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307927 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7928 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007929 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7930 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307931 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7932 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007933 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7934 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307935 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7936 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007937 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7938 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307939 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7940 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007941 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7942 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307943 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7944 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007945 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7946 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307947 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7948 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007949 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7950 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307951 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7952 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007953 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7954 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307955 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7956 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007957 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7958 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307959 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7960 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007961 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7962 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307963 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7964 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007965 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7966 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307967 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7968 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007969 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7970 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307971 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7972 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007973 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7974 MSM_BACKEND_DAI_TERT_TDM_RX_0,
7975 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7976 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307977};
7978
7979static const struct snd_kcontrol_new tert_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007980 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7981 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307982 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7983 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007984 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7985 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307986 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7987 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007988 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7989 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307990 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7991 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007992 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7993 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307994 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7995 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007996 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7997 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307998 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7999 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008000 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8001 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308002 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8003 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008004 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8005 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308006 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8007 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008008 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8009 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308010 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8011 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008012 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8013 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308014 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8015 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008016 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8017 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308018 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8019 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008020 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8021 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308022 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008024 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8025 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308026 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8027 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008028 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8029 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308030 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8031 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008032 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8033 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308034 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8035 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008036 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8037 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308038 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8039 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008040 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8041 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308042 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8043 msm_routing_put_audio_mixer),
8044};
8045
8046static const struct snd_kcontrol_new tert_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008047 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8048 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308049 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8050 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008051 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8052 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308053 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8054 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008055 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8056 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308057 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8058 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008059 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8060 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308061 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8062 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008063 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8064 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308065 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8066 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008067 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8068 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308069 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8070 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008071 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8072 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308073 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8074 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008075 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8076 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308077 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8078 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008079 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8080 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308081 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8082 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008083 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8084 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308085 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8086 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008087 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8088 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308089 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8090 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008091 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8092 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308093 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8094 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008095 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8096 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308097 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8098 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008099 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8100 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308101 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8102 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008103 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8104 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308105 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8106 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008107 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8108 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308109 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8110 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008111 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8112 MSM_BACKEND_DAI_TERT_TDM_RX_1,
8113 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8114 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308115};
8116
8117static const struct snd_kcontrol_new tert_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008118 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8119 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308120 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8121 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008122 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8123 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308124 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8125 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008126 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8127 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308128 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8129 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008130 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8131 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308132 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8133 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008134 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8135 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308136 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8137 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008138 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8139 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308140 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8141 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008142 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8143 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308144 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8145 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008146 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8147 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308148 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8149 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008150 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8151 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308152 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8153 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008154 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8155 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308156 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8157 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008158 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8159 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308160 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8161 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008162 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8163 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308164 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8165 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008166 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8167 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308168 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8169 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008170 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8171 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308172 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8173 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008174 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8175 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308176 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8177 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008178 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8179 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308180 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8181 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008182 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8183 MSM_BACKEND_DAI_TERT_TDM_RX_2,
8184 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8185 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308186};
8187
8188static const struct snd_kcontrol_new tert_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008189 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8190 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308191 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8192 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008193 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8194 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308195 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8196 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008197 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8198 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308199 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8200 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008201 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8202 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308203 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8204 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008205 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8206 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308207 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8208 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008209 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8210 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308211 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8212 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008213 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8214 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308215 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8216 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008217 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8218 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308219 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8220 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008221 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8222 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308223 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8224 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008225 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8226 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308227 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8228 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008229 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8230 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308231 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8232 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008233 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8234 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308235 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8236 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008237 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8238 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308239 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8240 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008241 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8242 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308243 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8244 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008245 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8246 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308247 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8248 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008249 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8250 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308251 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8252 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008253 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8254 MSM_BACKEND_DAI_TERT_TDM_RX_3,
8255 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8256 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308257};
8258
8259static const struct snd_kcontrol_new tert_tdm_rx_4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008260 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8261 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308262 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8263 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008264 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8265 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308266 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8267 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008268 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8269 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308270 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8271 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008272 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8273 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308274 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8275 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008276 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8277 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308278 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8279 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008280 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8281 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308282 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8283 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008284 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8285 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308286 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8287 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008288 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8289 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308290 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8291 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008292 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8293 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308294 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8295 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008296 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8297 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308298 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8299 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008300 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8301 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308302 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8303 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008304 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8305 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308306 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8307 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008308 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8309 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308310 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8311 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008312 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8313 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308314 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8315 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008316 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8317 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308318 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8319 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008320 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8321 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308322 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8323 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008324 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8325 MSM_BACKEND_DAI_TERT_TDM_RX_4,
8326 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8327 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308328};
8329
8330static const struct snd_kcontrol_new quat_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008331 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8332 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308333 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8334 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008335 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8336 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308337 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8338 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008339 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8340 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308341 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8342 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008343 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8344 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308345 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8346 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008347 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8348 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308349 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8350 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008351 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8352 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308353 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8354 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008355 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8356 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308357 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8358 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008359 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8360 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308361 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8362 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008363 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8364 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308365 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8366 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008367 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8368 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308369 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8370 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008371 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8372 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308373 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8374 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008375 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8376 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308377 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8378 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008379 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8380 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308381 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8382 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008383 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8384 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308385 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8386 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008387 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8388 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308389 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8390 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008391 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8392 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308393 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8394 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008395 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8396 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308397 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8398 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008399 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8400 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
8401 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8402 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308403};
8404
8405static const struct snd_kcontrol_new quat_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008406 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8407 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308408 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8409 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008410 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8411 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308412 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8413 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008414 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8415 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308416 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8417 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008418 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8419 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308420 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8421 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008422 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8423 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308424 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8425 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008426 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8427 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308428 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8429 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008430 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8431 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308432 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8433 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008434 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8435 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308436 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8437 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008438 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8439 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308440 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8441 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008442 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8443 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308444 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8445 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008446 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8447 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308448 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8449 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008450 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8451 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308452 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8453 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008454 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8455 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308456 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8457 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008458 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8459 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308460 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8461 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008462 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8463 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308464 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8465 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008466 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8467 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308468 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8469 msm_routing_put_audio_mixer),
8470};
8471
8472static const struct snd_kcontrol_new quat_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008473 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8474 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308475 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8476 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008477 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8478 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308479 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8480 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008481 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8482 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308483 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8484 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008485 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8486 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308487 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8488 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008489 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8490 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308491 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8492 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008493 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8494 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308495 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8496 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008497 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8498 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308499 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8500 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008501 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8502 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308503 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8504 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008505 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8506 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308507 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8508 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008509 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8510 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308511 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8512 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008513 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8514 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308515 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8516 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008517 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8518 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308519 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8520 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008521 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8522 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308523 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8524 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008525 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8526 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308527 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8528 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008529 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8530 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308531 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008533 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8534 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308535 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008537 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8538 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308539 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8540 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008541 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8542 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
8543 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8544 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308545};
8546
8547static const struct snd_kcontrol_new quat_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008548 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8549 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308550 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8551 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008552 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8553 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308554 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8555 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008556 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8557 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308558 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8559 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008560 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8561 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308562 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8563 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008564 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8565 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308566 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8567 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008568 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8569 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308570 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8571 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008572 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8573 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308574 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8575 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008576 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8577 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308578 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8579 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008580 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8581 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308582 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8583 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008584 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8585 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308586 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8587 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008588 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8589 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308590 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008592 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8593 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308594 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8595 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008596 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8597 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308598 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8599 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008600 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8601 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308602 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8603 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008604 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8605 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308606 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8607 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008608 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8609 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308610 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8611 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008612 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8613 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308614 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8615 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008616 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8617 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
8618 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8619 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308620};
8621
8622static const struct snd_kcontrol_new quat_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008623 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8624 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308625 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8626 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008627 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8628 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308629 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8630 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008631 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8632 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308633 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8634 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008635 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8636 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308637 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8638 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008639 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8640 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308641 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8642 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008643 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8644 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308645 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8646 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008647 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8648 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308649 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8650 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008651 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8652 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308653 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8654 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008655 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8656 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308657 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8658 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008659 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8660 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308661 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8662 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008663 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8664 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308665 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8666 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008667 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8668 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308669 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8670 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008671 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8672 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308673 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8674 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008675 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8676 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308677 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8678 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008679 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8680 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308681 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8682 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008683 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8684 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308685 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8686 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008687 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8688 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308689 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8690 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008691 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8692 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
8693 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8694 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308695};
8696
Rohit Kumara5077932017-09-10 22:05:05 +05308697static const struct snd_kcontrol_new quin_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008698 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8699 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308700 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8701 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008702 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8703 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308704 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8705 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008706 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8707 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308708 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8709 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008710 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8711 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308712 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8713 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008714 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8715 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308716 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8717 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008718 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8719 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308720 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8721 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008722 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8723 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308724 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8725 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008726 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8727 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308728 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8729 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008730 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8731 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308732 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8733 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008734 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8735 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308736 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8737 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008738 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8739 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308740 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8741 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008742 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8743 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308744 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8745 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008746 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8747 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308748 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8749 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008750 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8751 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308752 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008754 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8755 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308756 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8757 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008758 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8759 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308760 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8761 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008762 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8763 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308764 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8765 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008766 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8767 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
8768 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8769 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05308770};
8771
8772static const struct snd_kcontrol_new quin_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008773 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8774 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308775 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8776 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008777 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8778 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308779 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8780 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008781 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8782 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308783 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8784 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008785 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8786 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308787 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8788 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008789 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8790 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308791 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8792 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008793 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8794 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308795 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8796 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008797 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8798 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308799 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8800 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008801 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8802 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308803 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8804 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008805 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8806 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308807 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8808 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008809 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8810 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308811 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8812 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008813 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8814 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308815 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8816 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008817 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8818 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308819 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8820 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008821 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8822 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308823 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8824 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008825 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8826 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308827 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8828 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008829 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8830 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308831 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8832 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008833 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8834 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308835 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8836 msm_routing_put_audio_mixer),
8837};
8838
8839static const struct snd_kcontrol_new quin_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008840 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8841 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308842 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8843 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008844 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8845 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308846 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8847 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008848 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8849 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308850 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8851 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008852 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8853 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308854 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8855 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008856 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8857 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308858 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8859 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008860 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8861 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308862 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8863 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008864 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8865 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308866 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8867 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008868 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8869 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308870 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8871 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008872 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8873 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308874 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8875 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008876 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8877 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308878 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8879 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008880 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8881 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308882 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8883 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008884 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8885 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308886 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8887 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008888 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8889 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308890 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8891 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008892 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8893 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308894 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8895 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008896 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8897 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308898 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8899 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008900 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8901 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308902 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8903 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008904 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8905 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308906 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8907 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008908 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8909 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
8910 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8911 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05308912};
8913
8914static const struct snd_kcontrol_new quin_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008915 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8916 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308917 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8918 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008919 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8920 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308921 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8922 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008923 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8924 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308925 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8926 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008927 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8928 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308929 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8930 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008931 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8932 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308933 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8934 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008935 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8936 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308937 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8938 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008939 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8940 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308941 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8942 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008943 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8944 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308945 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8946 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008947 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8948 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308949 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8950 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008951 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8952 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308953 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8954 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008955 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8956 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308957 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8958 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008959 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8960 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308961 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8962 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008963 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8964 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308965 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8966 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008967 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8968 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308969 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8970 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008971 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8972 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308973 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8974 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008975 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8976 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308977 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8978 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008979 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8980 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308981 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8982 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008983 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8984 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
8985 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8986 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05308987};
8988
8989static const struct snd_kcontrol_new quin_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008990 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8991 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308992 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8993 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008994 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8995 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308996 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8997 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008998 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8999 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309000 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9001 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009002 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9003 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309004 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9005 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009006 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9007 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309008 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9009 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009010 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9011 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309012 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9013 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009014 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9015 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309016 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9017 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009018 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9019 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309020 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9021 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009022 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9023 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309024 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9025 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009026 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9027 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309028 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9029 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009030 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9031 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309032 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9033 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009034 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9035 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309036 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9037 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009038 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9039 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309040 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9041 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009042 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9043 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309044 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9045 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009046 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9047 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309048 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9049 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009050 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9051 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309052 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9053 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009054 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9055 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309056 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9057 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009058 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9059 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
9060 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9061 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309062};
9063
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309064static const struct snd_kcontrol_new mmul1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009065 SOC_DOUBLE_EXT("PRI_TX", SND_SOC_NOPM,
9066 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309067 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9068 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009069 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9070 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309071 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9072 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009073 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9074 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309075 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9076 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009077 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9078 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309079 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9080 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009081 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9082 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309083 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9084 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009085 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9086 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309087 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9088 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009089 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9090 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309091 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9092 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009093 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9094 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309095 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9096 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009097 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9098 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309099 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9100 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009101 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
9102 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309103 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9104 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009105 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
9106 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309107 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9108 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009109 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
9110 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309111 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9112 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009113 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
9114 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309115 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9116 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009117 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
9118 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05309119 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9120 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009121 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9122 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309123 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9124 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009125 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9126 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309127 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9128 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009129 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9130 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309131 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9132 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009133 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9134 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309135 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9136 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009137 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9138 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309139 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9140 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009141 SOC_DOUBLE_EXT("SLIM_4_TX", SND_SOC_NOPM,
9142 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309143 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9144 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009145 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9146 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309147 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9148 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009149 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
9150 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309151 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9152 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009153 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9154 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309155 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9156 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009157 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9158 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309159 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009161 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9162 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309163 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9164 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009165 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9166 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309167 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009169 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9170 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309171 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9172 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009173 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9174 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309175 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9176 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009177 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9178 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309179 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9180 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009181 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9182 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309183 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9184 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009185 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9186 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309187 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9188 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009189 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9190 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309191 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9192 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009193 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9194 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309195 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9196 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009197 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9198 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309199 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9200 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009201 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9202 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309203 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9204 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009205 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9206 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309207 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9208 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009209 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9210 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309211 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9212 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009213 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9214 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309215 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9216 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009217 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9218 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309219 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9220 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009221 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9222 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309223 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9224 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009225 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9226 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309227 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9228 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009229 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9230 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309231 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9232 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009233 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
9234 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309235 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9236 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009237 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
9238 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309239 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9240 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009241 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9242 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309243 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9244 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309245 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9246 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9247 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9248 msm_routing_put_audio_mixer),
9249 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9250 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9251 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9252 msm_routing_put_audio_mixer),
9253 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9254 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9255 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9256 msm_routing_put_audio_mixer),
9257 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9258 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9259 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9260 msm_routing_put_audio_mixer),
9261 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9262 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9263 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9264 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309265 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9266 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9267 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9268 msm_routing_put_audio_mixer),
9269 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9270 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9271 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9272 msm_routing_put_audio_mixer),
9273 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9274 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9275 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9276 msm_routing_put_audio_mixer),
9277 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9278 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9279 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9280 msm_routing_put_audio_mixer),
9281 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9282 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9283 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9284 msm_routing_put_audio_mixer),
9285 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9286 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9287 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9288 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009289 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9290 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9291 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9292 msm_routing_put_audio_mixer),
9293 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9294 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9295 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9296 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309297};
9298
9299static const struct snd_kcontrol_new mmul2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009300 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9301 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309302 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9303 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009304 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9305 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309306 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9307 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009308 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9309 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309310 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9311 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009312 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9313 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309314 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9315 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009316 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9317 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309318 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9319 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009320 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9321 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309322 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9323 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009324 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9325 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309326 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9327 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009328 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9329 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309330 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9331 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009332 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9333 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309334 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9335 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009336 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9337 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309338 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9339 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009340 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
9341 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309342 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9343 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009344 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
9345 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309346 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9347 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009348 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9349 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309350 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9351 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009352 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9353 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309354 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9355 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009356 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9357 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309358 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9359 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009360 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9361 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309362 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9363 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009364 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9365 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309366 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9367 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009368 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9369 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309370 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9371 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009372 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9373 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309374 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9375 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009376 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9377 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309378 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9379 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009380 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9381 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309382 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9383 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009384 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9385 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309386 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9387 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009388 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9389 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309390 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9391 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009392 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9393 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309394 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9395 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009396 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9397 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309398 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9399 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009400 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9401 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309402 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9403 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009404 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9405 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309406 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9407 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009408 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9409 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309410 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9411 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009412 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9413 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309414 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9415 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009416 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9417 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309418 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9419 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009420 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9421 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309422 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9423 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009424 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9425 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309426 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9427 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009428 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
9429 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309430 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9431 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009432 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9433 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309434 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9435 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309436 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9437 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9438 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9439 msm_routing_put_audio_mixer),
9440 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9441 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9442 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9443 msm_routing_put_audio_mixer),
9444 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9445 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9446 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9447 msm_routing_put_audio_mixer),
9448 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9449 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9450 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9451 msm_routing_put_audio_mixer),
9452 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9453 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9454 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9455 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309456 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9457 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9458 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9459 msm_routing_put_audio_mixer),
9460 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9461 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9462 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9463 msm_routing_put_audio_mixer),
9464 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9465 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9466 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9467 msm_routing_put_audio_mixer),
9468 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9469 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9470 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9471 msm_routing_put_audio_mixer),
9472 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9473 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9474 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9475 msm_routing_put_audio_mixer),
9476 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9477 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9478 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9479 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009480 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9481 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9482 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9483 msm_routing_put_audio_mixer),
9484 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9485 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9486 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9487 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309488};
9489
9490static const struct snd_kcontrol_new mmul3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009491 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9492 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309493 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9494 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009495 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9496 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309497 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9498 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009499 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9500 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309501 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9502 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009503 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9504 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309505 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9506 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009507 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9508 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309509 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9510 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009511 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
9512 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309513 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9514 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009515 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
9516 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309517 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9518 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009519 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
9520 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309521 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9522 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009523 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
9524 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309525 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9526 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009527 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
9528 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05309529 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9530 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009531 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9532 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309533 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9534 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009535 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9536 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309537 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9538 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009539 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9540 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309541 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9542 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009543 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9544 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309545 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9546 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009547 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9548 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309549 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9550 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009551 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9552 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309553 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9554 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009555 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9556 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309557 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9558 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009559 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9560 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309561 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9562 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009563 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9564 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309565 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9566 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009567 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9568 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309569 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9570 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009571 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9572 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309573 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9574 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009575 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9576 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309577 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9578 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009579 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9580 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309581 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9582 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009583 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9584 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309585 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9586 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009587 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9588 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309589 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9590 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009591 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9592 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309593 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9594 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009595 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9596 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309597 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9598 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009599 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9600 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309601 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9602 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009603 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9604 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309605 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9606 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009607 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9608 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309609 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9610 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009611 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9612 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309613 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9614 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009615 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9616 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309617 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9618 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009619 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9620 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309621 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9622 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009623 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9624 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309625 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9626 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309627 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9628 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9629 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9630 msm_routing_put_audio_mixer),
9631 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9632 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9633 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9634 msm_routing_put_audio_mixer),
9635 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9636 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9637 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9638 msm_routing_put_audio_mixer),
9639 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9640 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9641 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9642 msm_routing_put_audio_mixer),
9643 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9644 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9645 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9646 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309647 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9648 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9649 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9650 msm_routing_put_audio_mixer),
9651 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9652 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9653 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9654 msm_routing_put_audio_mixer),
9655 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9656 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9657 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9658 msm_routing_put_audio_mixer),
9659 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9660 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9661 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9662 msm_routing_put_audio_mixer),
9663 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9664 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9665 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9666 msm_routing_put_audio_mixer),
9667 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9668 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9669 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9670 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009671 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9672 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9673 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9674 msm_routing_put_audio_mixer),
9675 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9676 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9677 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9678 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309679};
9680
9681static const struct snd_kcontrol_new mmul4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009682 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9683 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309684 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9685 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009686 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9687 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309688 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9689 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009690 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9691 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309692 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9693 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009694 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9695 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309696 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9697 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009698 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9699 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309700 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9701 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009702 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9703 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309704 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9705 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009706 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9707 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309708 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9709 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009710 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9711 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309712 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9713 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009714 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9715 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309716 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9717 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009718 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9719 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309720 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9721 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009722 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9723 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309724 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9725 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009726 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9727 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309728 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9729 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009730 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9731 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309732 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9733 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009734 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9735 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309736 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9737 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009738 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9739 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309740 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9741 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009742 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9743 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309744 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9745 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009746 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9747 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309748 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9749 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009750 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9751 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309752 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009754 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9755 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309756 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9757 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009758 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9759 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309760 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9761 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009762 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9763 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309764 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9765 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009766 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9767 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309768 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9769 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009770 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9771 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309772 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9773 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009774 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9775 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309776 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9777 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009778 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9779 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309780 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9781 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009782 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9783 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309784 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9785 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009786 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9787 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309788 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9789 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009790 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9791 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309792 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9793 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009794 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9795 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309796 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9797 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009798 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9799 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309800 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9801 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009802 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9803 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309804 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9805 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009806 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9807 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309808 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9809 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009810 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9811 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309812 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9813 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309814 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9815 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9816 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9817 msm_routing_put_audio_mixer),
9818 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9819 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9820 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9821 msm_routing_put_audio_mixer),
9822 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9823 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9824 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9825 msm_routing_put_audio_mixer),
9826 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9827 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9828 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9829 msm_routing_put_audio_mixer),
9830 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9831 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9832 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9833 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309834 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9835 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9836 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9837 msm_routing_put_audio_mixer),
9838 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9839 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9840 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9841 msm_routing_put_audio_mixer),
9842 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9843 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9844 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9845 msm_routing_put_audio_mixer),
9846 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9847 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9848 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9849 msm_routing_put_audio_mixer),
9850 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9851 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9852 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9853 msm_routing_put_audio_mixer),
9854 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9855 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9856 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9857 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009858 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9859 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9860 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9861 msm_routing_put_audio_mixer),
9862 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9863 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9864 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9865 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309866};
9867
9868static const struct snd_kcontrol_new mmul5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009869 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9870 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309871 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9872 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009873 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9874 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309875 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9876 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009877 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9878 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309879 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9880 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009881 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9882 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309883 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9884 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009885 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9886 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309887 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9888 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009889 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
9890 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309891 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9892 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009893 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
9894 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309895 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9896 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009897 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
9898 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309899 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9900 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009901 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
9902 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309903 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9904 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009905 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
9906 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05309907 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9908 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009909 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9910 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309911 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9912 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009913 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9914 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309915 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9916 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009917 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9918 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309919 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9920 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009921 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9922 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309923 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9924 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009925 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9926 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309927 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9928 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009929 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9930 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309931 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9932 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009933 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9934 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309935 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9936 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009937 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9938 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309939 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9940 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009941 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9942 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309943 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9944 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009945 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9946 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309947 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9948 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009949 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9950 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309951 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9952 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009953 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9954 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309955 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9956 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009957 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9958 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309959 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9960 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009961 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9962 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309963 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9964 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009965 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9966 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309967 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9968 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009969 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9970 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309971 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9972 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009973 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9974 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309975 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9976 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009977 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9978 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309979 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9980 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009981 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9982 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309983 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9984 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009985 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9986 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309987 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9988 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009989 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9990 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309991 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9992 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009993 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9994 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309995 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9996 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009997 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9998 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309999 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10000 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010001 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10002 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010003 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10004 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010005 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10006 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010007 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10008 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010009 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10010 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010011 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10012 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010013 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10014 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010015 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10016 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010017 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
10018 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010019 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10020 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010021 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10022 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010023 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10024 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010025 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10026 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10027 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10028 msm_routing_put_audio_mixer),
10029 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10030 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10031 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10032 msm_routing_put_audio_mixer),
10033 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10034 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10035 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10036 msm_routing_put_audio_mixer),
10037 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10038 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10039 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10040 msm_routing_put_audio_mixer),
10041 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10042 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10043 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10044 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010045 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10046 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10047 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10048 msm_routing_put_audio_mixer),
10049 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10050 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10051 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10052 msm_routing_put_audio_mixer),
10053 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10054 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10055 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10056 msm_routing_put_audio_mixer),
10057 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10058 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10059 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10060 msm_routing_put_audio_mixer),
10061 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10062 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10063 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10064 msm_routing_put_audio_mixer),
10065 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10066 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10067 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10068 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010069 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10070 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10071 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10072 msm_routing_put_audio_mixer),
10073 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10074 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10075 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10076 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010077};
10078
10079static const struct snd_kcontrol_new mmul6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010080 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10081 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010082 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10083 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010084 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10085 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010086 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10087 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010088 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10089 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010090 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10091 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010092 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10093 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010094 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10095 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010096 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10097 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010098 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10099 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010100 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10101 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010102 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10103 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010104 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10105 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010106 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10107 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010108 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10109 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010110 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10111 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010112 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
10113 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010114 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10115 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010116 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
10117 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010118 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10119 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010120 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
10121 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010122 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10123 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010124 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
10125 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010126 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10127 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010128 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
10129 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010130 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10131 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010132 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10133 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010134 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10135 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010136 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10137 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010138 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10139 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010140 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10141 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010142 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10143 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010144 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10145 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010146 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10147 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010148 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10149 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010150 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10151 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010152 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10153 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010154 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10155 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010156 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10157 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010158 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10159 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010160 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10161 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010162 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10163 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010164 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10165 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010166 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10167 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010168 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10169 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010170 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10171 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010172 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10173 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010174 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10175 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010176 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10177 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010178 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10179 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010180 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10181 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010182 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10183 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010184 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10185 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010186 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10187 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010188 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10189 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010190 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10191 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010192 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10193 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010194 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10195 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010196 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10197 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010198 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10199 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010200 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10201 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010202 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10203 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010204 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10205 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010206 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10207 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010208 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10209 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010210 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10211 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010212 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10213 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010214 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10215 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010216 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10217 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10218 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10219 msm_routing_put_audio_mixer),
10220 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10221 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10222 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10223 msm_routing_put_audio_mixer),
10224 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10225 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10226 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10227 msm_routing_put_audio_mixer),
10228 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10229 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10230 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10231 msm_routing_put_audio_mixer),
10232 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10233 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10234 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10235 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010236 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10237 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10238 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10239 msm_routing_put_audio_mixer),
10240 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10241 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10242 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10243 msm_routing_put_audio_mixer),
10244 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10245 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10246 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10247 msm_routing_put_audio_mixer),
10248 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10249 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10250 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10251 msm_routing_put_audio_mixer),
10252 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10253 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10254 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10255 msm_routing_put_audio_mixer),
10256 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10257 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10258 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10259 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010260 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10261 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10262 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10263 msm_routing_put_audio_mixer),
10264 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10265 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10266 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10267 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010268};
10269
10270static const struct snd_kcontrol_new mmul8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010271 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10272 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010273 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10274 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010275 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10276 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010277 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10278 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010279 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10280 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010281 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10282 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010283 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10284 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010285 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10286 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010287 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10288 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010289 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10290 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010291 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10292 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010293 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10294 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010295 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10296 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010297 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10298 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010299 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10300 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010301 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10302 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010303 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10304 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010305 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10306 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010307 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10308 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010309 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10310 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010311 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10312 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010313 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10314 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010315 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10316 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010317 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10318 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010319 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
10320 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010321 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10322 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010323 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10324 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010325 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10326 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010327 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10328 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010329 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10330 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010331 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10332 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010333 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10334 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010335 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10336 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010337 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10338 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010339 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10340 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010341 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10342 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010343 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10344 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010345 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10346 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010347 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10348 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010349 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10350 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010351 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10352 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010353 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10354 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010355 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10356 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010357 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10358 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010359 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10360 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010361 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10362 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010363 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10364 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010365 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10366 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010367 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10368 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010369 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10370 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010371 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10372 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010373 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10374 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010375 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10376 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010377 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10378 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010379 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10380 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010381 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10382 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010383 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10384 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010385 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10386 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010387 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10388 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010389 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10390 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010391 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10392 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010393 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10394 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010395 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10396 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010397 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10398 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010399 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10400 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010401 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10402 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010403 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10404 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010405 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10406 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010407 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10408 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010409 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10410 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010411 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10412 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10413 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10414 msm_routing_put_audio_mixer),
10415 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10416 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10417 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10418 msm_routing_put_audio_mixer),
10419 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10420 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10421 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10422 msm_routing_put_audio_mixer),
10423 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10424 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10425 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10426 msm_routing_put_audio_mixer),
10427 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10428 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10429 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10430 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010431 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10432 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10433 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10434 msm_routing_put_audio_mixer),
10435 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10436 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10437 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10438 msm_routing_put_audio_mixer),
10439 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10440 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10441 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10442 msm_routing_put_audio_mixer),
10443 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10444 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10445 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10446 msm_routing_put_audio_mixer),
10447 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10448 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10449 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10450 msm_routing_put_audio_mixer),
10451 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10452 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10453 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10454 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010455 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10456 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10457 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10458 msm_routing_put_audio_mixer),
10459 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10460 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10461 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10462 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010463};
10464
Asish Bhattacharya34504582017-08-08 12:55:01 +053010465static const struct snd_kcontrol_new mmul16_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010466 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10467 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010468 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10469 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010470 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10471 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010472 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10473 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010474 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10475 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010476 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10477 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010478 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10479 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010480 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10481 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010482 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10483 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010484 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10485 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010486 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10487 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010488 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10489 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010490 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10491 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010492 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10493 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010494 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10495 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010496 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10497 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010498 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10499 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010500 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10501 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010502 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10503 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010504 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10505 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010506 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10507 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010508 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10509 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010510 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10511 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010512 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10513 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010514 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
10515 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010516 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10517 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010518 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10519 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010520 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10521 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010522 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10523 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010524 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10525 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010526 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10527 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010528 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10529 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010530 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10531 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010532 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10533 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010534 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10535 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010536 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10537 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010538 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10539 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010540 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10541 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010542 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10543 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010544 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10545 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010546 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10547 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010548 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10549 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010550 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10551 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010552 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10553 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010554 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10555 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010556 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10557 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010558 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10559 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010560 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10561 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010562 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10563 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010564 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10565 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010566 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10567 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010568 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10569 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010570 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10571 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010572 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10573 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010574 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10575 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010576 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10577 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010578 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10579 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010580 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10581 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010582 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10583 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010584 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10585 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010586 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10587 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010588 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10589 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010590 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
10591 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010592 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10593 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010594 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
10595 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010596 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10597 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010598 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
10599 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010600 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10601 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010602 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
10603 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010604 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10605 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010606 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10607 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10608 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10609 msm_routing_put_audio_mixer),
10610 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10611 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10612 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10613 msm_routing_put_audio_mixer),
10614 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10615 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10616 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10617 msm_routing_put_audio_mixer),
10618 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10619 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10620 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10621 msm_routing_put_audio_mixer),
10622 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10623 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10624 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10625 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010626 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10627 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10628 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10629 msm_routing_get_audio_mixer,
10630 msm_routing_put_audio_mixer),
10631 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10632 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10633 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10634 msm_routing_get_audio_mixer,
10635 msm_routing_put_audio_mixer),
10636 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10637 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10638 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10639 msm_routing_get_audio_mixer,
10640 msm_routing_put_audio_mixer),
10641 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10642 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10643 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10644 msm_routing_get_audio_mixer,
10645 msm_routing_put_audio_mixer),
10646 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10647 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10648 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10649 msm_routing_get_audio_mixer,
10650 msm_routing_put_audio_mixer),
10651 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10652 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10653 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10654 msm_routing_get_audio_mixer,
10655 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010656 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10657 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10658 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10659 msm_routing_put_audio_mixer),
10660 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10661 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10662 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10663 msm_routing_put_audio_mixer),
Asish Bhattacharya34504582017-08-08 12:55:01 +053010664};
10665
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010666static const struct snd_kcontrol_new mmul9_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010667 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10668 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010669 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10670 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010671 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10672 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010673 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10674 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010675 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10676 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010677 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10678 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010679 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10680 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010681 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10682 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010683 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10684 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010685 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10686 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010687 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10688 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010689 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10690 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010691 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10692 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010693 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10694 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010695 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
10696 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010697 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10698 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010699 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10700 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010701 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10702 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010703 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10704 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010705 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10706 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010707 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10708 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010709 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10710 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010711 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10712 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010713 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10714 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010715 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10716 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010717 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10718 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010719 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10720 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010721 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10722 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010723 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10724 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010725 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10726 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010727 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10728 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010729 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10730 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010731 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10732 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010733 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10734 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010735 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10736 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010737 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10738 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010739 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10740 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010741 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10742 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010743 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10744 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010745 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10746 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010747 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10748 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10749 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10750 msm_routing_put_audio_mixer),
10751 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10752 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10753 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10754 msm_routing_put_audio_mixer),
10755 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10756 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10757 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10758 msm_routing_put_audio_mixer),
10759 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10760 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10761 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10762 msm_routing_put_audio_mixer),
10763 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10764 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10765 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10766 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010767 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10768 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10769 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10770 msm_routing_put_audio_mixer),
10771 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10772 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10773 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10774 msm_routing_put_audio_mixer),
10775 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10776 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10777 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10778 msm_routing_put_audio_mixer),
10779 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10780 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10781 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10782 msm_routing_put_audio_mixer),
10783 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10784 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10785 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10786 msm_routing_put_audio_mixer),
10787 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10788 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10789 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10790 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010791 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10792 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10793 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10794 msm_routing_put_audio_mixer),
10795 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10796 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10797 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10798 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010799};
10800
Laxminath Kasam38070be2017-08-17 18:21:59 +053010801static const struct snd_kcontrol_new mmul10_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010802 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10803 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010804 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10805 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010806 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10807 MSM_BACKEND_DAI_PRI_MI2S_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010808 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10809 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010810 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10811 MSM_BACKEND_DAI_INT_FM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010812 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10813 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010814 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10815 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010816 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10817 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010818 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10819 MSM_BACKEND_DAI_AFE_PCM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010820 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10821 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010822 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10823 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010824 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10825 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010826 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10827 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010828 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10829 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010830 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
10831 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010832 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10833 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010834 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10835 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Vikram Panduranga72863152017-09-06 15:47:35 -070010836 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10837 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010838 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10839 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010840 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10841 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010842 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10843 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010844 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10845 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010846 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10847 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010848 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10849 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010850 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10851 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010852 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10853 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010854 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10855 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010856 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10857 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010858 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10859 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010860 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10861 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010862 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10863 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010864 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10865 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010866 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10867 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010868 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10869 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010870 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10871 MSM_BACKEND_DAI_USB_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010872 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10873 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010874 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
10875 MSM_BACKEND_DAI_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070010876 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10877 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010878 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
10879 MSM_BACKEND_DAI_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070010880 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10881 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010882 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
10883 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070010884 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10885 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010886 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
10887 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070010888 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10889 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010890 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
10891 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070010892 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10893 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010894 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10895 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070010896 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10897 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010898 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10899 MSM_BACKEND_DAI_INT2_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070010900 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10901 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010902 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10903 MSM_BACKEND_DAI_INT3_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070010904 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10905 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010906 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10907 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10908 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10909 msm_routing_put_audio_mixer),
10910 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10911 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10912 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10913 msm_routing_put_audio_mixer),
10914 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10915 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10916 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10917 msm_routing_put_audio_mixer),
10918 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10919 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10920 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10921 msm_routing_put_audio_mixer),
10922 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10923 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10924 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10925 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010926 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10927 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10928 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
10929 msm_routing_get_audio_mixer,
10930 msm_routing_put_audio_mixer),
10931 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10932 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10933 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
10934 msm_routing_get_audio_mixer,
10935 msm_routing_put_audio_mixer),
10936 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10937 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10938 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
10939 msm_routing_get_audio_mixer,
10940 msm_routing_put_audio_mixer),
10941 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10942 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10943 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
10944 msm_routing_get_audio_mixer,
10945 msm_routing_put_audio_mixer),
10946 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10947 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10948 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
10949 msm_routing_get_audio_mixer,
10950 msm_routing_put_audio_mixer),
10951 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10952 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10953 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
10954 msm_routing_get_audio_mixer,
10955 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010956 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10957 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10958 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10959 msm_routing_put_audio_mixer),
10960 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10961 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10962 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10963 msm_routing_put_audio_mixer),
Laxminath Kasam38070be2017-08-17 18:21:59 +053010964};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010965static const struct snd_kcontrol_new mmul17_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010966 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10967 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010968 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
10969 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010970 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10971 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010972 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
10973 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010974 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10975 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053010976 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
10977 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010978 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10979 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010980 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
10981 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010982 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10983 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010984 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
10985 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010986 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10987 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010988 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
10989 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010990 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10991 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010992 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
10993 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010994 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10995 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010996 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
10997 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080010998 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10999 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11000 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11001 msm_routing_put_audio_mixer),
11002 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11003 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11004 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11005 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011006 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11007 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11008 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11009 msm_routing_put_audio_mixer),
11010 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11011 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11012 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11013 msm_routing_put_audio_mixer),
11014 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11015 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11016 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11017 msm_routing_put_audio_mixer),
11018 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11019 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11020 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11021 msm_routing_put_audio_mixer),
11022 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11023 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11024 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11025 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011026 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11027 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11028 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11029 msm_routing_get_audio_mixer,
11030 msm_routing_put_audio_mixer),
11031 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11032 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11033 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11034 msm_routing_get_audio_mixer,
11035 msm_routing_put_audio_mixer),
11036 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11037 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11038 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11039 msm_routing_get_audio_mixer,
11040 msm_routing_put_audio_mixer),
11041 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11042 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11043 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11044 msm_routing_get_audio_mixer,
11045 msm_routing_put_audio_mixer),
11046 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11047 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11048 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11049 msm_routing_get_audio_mixer,
11050 msm_routing_put_audio_mixer),
11051 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11052 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11053 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11054 msm_routing_get_audio_mixer,
11055 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011056 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11057 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11058 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11059 msm_routing_put_audio_mixer),
11060 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11061 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11062 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11063 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011064};
11065
11066static const struct snd_kcontrol_new mmul18_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011067 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11068 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011069 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11070 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011071 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11072 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011073 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11074 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011075 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11076 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011077 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11078 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011079 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11080 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
11081 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11082 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011083 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11084 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11085 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11086 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011087 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11088 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011089 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11090 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011091 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11092 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011093 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11094 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011095 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11096 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011097 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11098 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011099 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11100 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011101 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11102 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011103 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11104 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011105 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11106 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011107 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11108 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011109 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11110 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011111 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11112 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11113 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11114 msm_routing_put_audio_mixer),
11115 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11116 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11117 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11118 msm_routing_put_audio_mixer),
11119 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11120 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11121 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11122 msm_routing_put_audio_mixer),
11123 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11124 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11125 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11126 msm_routing_put_audio_mixer),
11127 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11128 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11129 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11130 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011131 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11132 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11133 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11134 msm_routing_get_audio_mixer,
11135 msm_routing_put_audio_mixer),
11136 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11137 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11138 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11139 msm_routing_get_audio_mixer,
11140 msm_routing_put_audio_mixer),
11141 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11142 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11143 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11144 msm_routing_get_audio_mixer,
11145 msm_routing_put_audio_mixer),
11146 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11147 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11148 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11149 msm_routing_get_audio_mixer,
11150 msm_routing_put_audio_mixer),
11151 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11152 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11153 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11154 msm_routing_get_audio_mixer,
11155 msm_routing_put_audio_mixer),
11156 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11157 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11158 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11159 msm_routing_get_audio_mixer,
11160 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011161 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11162 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11163 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11164 msm_routing_put_audio_mixer),
11165 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11166 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11167 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11168 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011169};
11170
11171static const struct snd_kcontrol_new mmul19_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011172 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11173 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011174 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11175 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011176 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11177 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011178 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11179 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011180 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11181 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011182 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11183 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011184 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11185 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011186 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11187 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011188 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11189 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011190 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11191 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011192 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11193 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011194 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11195 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011196 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11197 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011198 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11199 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011200 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11201 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011202 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11203 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011204 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11205 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11206 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11207 msm_routing_put_audio_mixer),
11208 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11209 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11210 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11211 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011212 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11213 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11214 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11215 msm_routing_put_audio_mixer),
11216 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11217 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11218 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11219 msm_routing_put_audio_mixer),
11220 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11221 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11222 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11223 msm_routing_put_audio_mixer),
11224 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11225 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11226 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11227 msm_routing_put_audio_mixer),
11228 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11229 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11230 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11231 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011232 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11233 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11234 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11235 msm_routing_get_audio_mixer,
11236 msm_routing_put_audio_mixer),
11237 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11238 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11239 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11240 msm_routing_get_audio_mixer,
11241 msm_routing_put_audio_mixer),
11242 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11243 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11244 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11245 msm_routing_get_audio_mixer,
11246 msm_routing_put_audio_mixer),
11247 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11248 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11249 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11250 msm_routing_get_audio_mixer,
11251 msm_routing_put_audio_mixer),
11252 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11253 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11254 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11255 msm_routing_get_audio_mixer,
11256 msm_routing_put_audio_mixer),
11257 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11258 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11259 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11260 msm_routing_get_audio_mixer,
11261 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011262 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11263 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11264 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11265 msm_routing_put_audio_mixer),
11266 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11267 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11268 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11269 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011270};
11271
11272static const struct snd_kcontrol_new mmul20_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011273 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11274 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011275 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11276 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011277 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11278 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011279 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11280 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011281 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11282 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011283 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11284 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011285 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11286 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011287 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11288 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011289 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11290 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053011291 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11292 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011293 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11294 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011295 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11296 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011297 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11298 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011299 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11300 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011301 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11302 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011303 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11304 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011305 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11306 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011307 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11308 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011309 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11310 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011311 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11312 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011313 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11314 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011315 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11316 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011317 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11318 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011319 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11320 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011321 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11322 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011323 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11324 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011325 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11326 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011327 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11328 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011329 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11330 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011331 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11332 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011333 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11334 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011335 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11336 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011337 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11338 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011339 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11340 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011341 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11342 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011343 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11344 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011345 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11346 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011347 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11348 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011349 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11350 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011351 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11352 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011353 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11354 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011355 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11356 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011357 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11358 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011359 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11360 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011361 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11362 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011363 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11364 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011365 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11366 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011367 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11368 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011369 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11370 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011371 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11372 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011373};
11374
11375static const struct snd_kcontrol_new mmul21_mixer_controls[] = {
11376 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11377 MSM_BACKEND_DAI_AUXPCM_TX,
11378 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11379 msm_routing_put_audio_mixer),
11380 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11381 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
11382 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11383 msm_routing_put_audio_mixer),
11384 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11385 MSM_BACKEND_DAI_PRI_TDM_TX_0,
11386 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11387 msm_routing_put_audio_mixer),
11388 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11389 MSM_BACKEND_DAI_PRI_TDM_TX_1,
11390 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11391 msm_routing_put_audio_mixer),
11392 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11393 MSM_BACKEND_DAI_PRI_TDM_TX_2,
11394 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11395 msm_routing_put_audio_mixer),
11396 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11397 MSM_BACKEND_DAI_PRI_TDM_TX_3,
11398 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11399 msm_routing_put_audio_mixer),
11400 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11401 MSM_BACKEND_DAI_SEC_TDM_TX_0,
11402 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11403 msm_routing_put_audio_mixer),
11404 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11405 MSM_BACKEND_DAI_SEC_TDM_TX_1,
11406 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11407 msm_routing_put_audio_mixer),
11408 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11409 MSM_BACKEND_DAI_SEC_TDM_TX_2,
11410 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11411 msm_routing_put_audio_mixer),
11412 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11413 MSM_BACKEND_DAI_SEC_TDM_TX_3,
11414 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11415 msm_routing_put_audio_mixer),
11416 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11417 MSM_BACKEND_DAI_TERT_TDM_TX_0,
11418 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11419 msm_routing_put_audio_mixer),
11420 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11421 MSM_BACKEND_DAI_TERT_TDM_TX_1,
11422 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11423 msm_routing_put_audio_mixer),
11424 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11425 MSM_BACKEND_DAI_TERT_TDM_TX_2,
11426 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11427 msm_routing_put_audio_mixer),
11428 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11429 MSM_BACKEND_DAI_TERT_TDM_TX_3,
11430 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11431 msm_routing_put_audio_mixer),
11432 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11433 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
11434 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11435 msm_routing_put_audio_mixer),
11436 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11437 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
11438 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11439 msm_routing_put_audio_mixer),
11440 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11441 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
11442 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11443 msm_routing_put_audio_mixer),
11444 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11445 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
11446 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11447 msm_routing_put_audio_mixer),
11448 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11449 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
11450 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11451 msm_routing_put_audio_mixer),
11452 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11453 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11454 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11455 msm_routing_put_audio_mixer),
11456 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11457 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11458 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11459 msm_routing_put_audio_mixer),
11460 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11461 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11462 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11463 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011464 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11465 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11466 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11467 msm_routing_put_audio_mixer),
11468 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11469 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11470 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11471 msm_routing_put_audio_mixer),
11472 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11473 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11474 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11475 msm_routing_put_audio_mixer),
11476 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11477 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11478 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11479 msm_routing_put_audio_mixer),
11480 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11481 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11482 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11483 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011484 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11485 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11486 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0,
11487 msm_routing_get_audio_mixer,
11488 msm_routing_put_audio_mixer),
11489 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11490 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11491 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0,
11492 msm_routing_get_audio_mixer,
11493 msm_routing_put_audio_mixer),
11494 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11495 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11496 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0,
11497 msm_routing_get_audio_mixer,
11498 msm_routing_put_audio_mixer),
11499 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11500 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11501 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0,
11502 msm_routing_get_audio_mixer,
11503 msm_routing_put_audio_mixer),
11504 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11505 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11506 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0,
11507 msm_routing_get_audio_mixer,
11508 msm_routing_put_audio_mixer),
11509 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11510 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11511 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0,
11512 msm_routing_get_audio_mixer,
11513 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011514 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11515 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11516 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11517 msm_routing_put_audio_mixer),
11518 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11519 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11520 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11521 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011522};
11523
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011524static const struct snd_kcontrol_new mmul28_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011525 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11526 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011527 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11528 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011529 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11530 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011531 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011533 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11534 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011535 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011537 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11538 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011539 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011541 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11542 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011543 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011545 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11546 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011547 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011549 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11550 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011551 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011553 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11554 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011555 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11556 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011557 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11558 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11559 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11560 msm_routing_put_audio_mixer),
11561 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11562 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11563 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11564 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011565 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11566 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11567 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11568 msm_routing_put_audio_mixer),
11569 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11570 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11571 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11572 msm_routing_put_audio_mixer),
11573 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11574 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11575 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11576 msm_routing_put_audio_mixer),
11577 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11578 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11579 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11580 msm_routing_put_audio_mixer),
11581 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11582 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11583 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11584 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011585 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11586 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11587 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11588 msm_routing_get_audio_mixer,
11589 msm_routing_put_audio_mixer),
11590 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11591 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11592 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11593 msm_routing_get_audio_mixer,
11594 msm_routing_put_audio_mixer),
11595 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11596 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11597 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11598 msm_routing_get_audio_mixer,
11599 msm_routing_put_audio_mixer),
11600 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11601 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11602 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11603 msm_routing_get_audio_mixer,
11604 msm_routing_put_audio_mixer),
11605 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11606 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11607 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11608 msm_routing_get_audio_mixer,
11609 msm_routing_put_audio_mixer),
11610 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11611 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11612 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11613 msm_routing_get_audio_mixer,
11614 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011615 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11616 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11617 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11618 msm_routing_put_audio_mixer),
11619 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11620 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11621 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11622 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011623};
11624
11625static const struct snd_kcontrol_new mmul29_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011626 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11627 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011628 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11629 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011630 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11631 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011632 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11633 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011634 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11635 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011636 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11637 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011638 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11639 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011640 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11641 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011642 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11643 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011644 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11645 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011646 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11647 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011648 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11649 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011650 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11651 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011652 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11653 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011654 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11655 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011656 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11657 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011658 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11659 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11660 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11661 msm_routing_put_audio_mixer),
11662 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11663 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11664 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11665 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011666 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11667 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11668 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11669 msm_routing_put_audio_mixer),
11670 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11671 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11672 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11673 msm_routing_put_audio_mixer),
11674 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11675 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11676 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11677 msm_routing_put_audio_mixer),
11678 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11679 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11680 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11681 msm_routing_put_audio_mixer),
11682 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11683 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11684 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11685 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011686 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11687 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11688 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
11689 msm_routing_get_audio_mixer,
11690 msm_routing_put_audio_mixer),
11691 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11692 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11693 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
11694 msm_routing_get_audio_mixer,
11695 msm_routing_put_audio_mixer),
11696 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11697 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11698 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
11699 msm_routing_get_audio_mixer,
11700 msm_routing_put_audio_mixer),
11701 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11702 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11703 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
11704 msm_routing_get_audio_mixer,
11705 msm_routing_put_audio_mixer),
11706 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11707 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11708 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
11709 msm_routing_get_audio_mixer,
11710 msm_routing_put_audio_mixer),
11711 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11712 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11713 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
11714 msm_routing_get_audio_mixer,
11715 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011716 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11717 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11718 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11719 msm_routing_put_audio_mixer),
11720 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11721 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11722 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11723 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011724};
11725
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011726static const struct snd_kcontrol_new pri_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011727 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11728 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011729 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11730 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011731 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11732 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011733 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11734 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011735 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
11736 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011737 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11738 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011739 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11740 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011741 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11742 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011743 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11744 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011745 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11746 msm_routing_put_voice_mixer),
11747};
11748
11749static const struct snd_kcontrol_new sec_i2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011750 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11751 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011752 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11753 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011754 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11755 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011756 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11757 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011758 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11759 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011760 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11761 msm_routing_put_voice_mixer),
11762};
11763
11764static const struct snd_kcontrol_new sec_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011765 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11766 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011767 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11768 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011769 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11770 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011771 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11772 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011773 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11774 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011775 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11776 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011777 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11778 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011779 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11780 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011781 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
11782 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011783 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11784 msm_routing_put_voice_mixer),
11785};
11786
11787static const struct snd_kcontrol_new slimbus_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011788 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11789 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011790 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11791 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011792 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11793 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011794 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11795 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011796 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11797 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011798 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11799 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011800 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11801 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011802 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11803 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011804 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
11805 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011806 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11807 msm_routing_put_voice_mixer),
11808};
11809
11810static const struct snd_kcontrol_new slimbus_6_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011811 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11812MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011813 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11814 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011815 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11816MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011817 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11818 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011819 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11820MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011821 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11822 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011823 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11824MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011825 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11826 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011827 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
11828MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011829 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11830 msm_routing_put_voice_mixer),
11831};
11832
11833static const struct snd_kcontrol_new usb_audio_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011834 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11835 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011836 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11837 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011838 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11839 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011840 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11841 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011842 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11843 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011844 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11845 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011846 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11847 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011848 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11849 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011850 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
11851 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011852 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11853 msm_routing_put_voice_mixer),
11854};
11855
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080011856static const struct snd_kcontrol_new display_port_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011857 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11858MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080011859 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11860 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011861 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11862MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080011863 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11864 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011865 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11866MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080011867 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11868 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011869 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11870MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080011871 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11872 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011873 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
11874MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080011875 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11876 msm_routing_put_voice_mixer),
11877};
11878
Karthikeyan Mani57550082018-05-03 18:43:58 -070011879static const struct snd_kcontrol_new display_port_rx1_voice_mixer_controls[] = {
11880 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11881 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
11882 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11883 msm_routing_put_voice_mixer),
11884 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11885 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
11886 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11887 msm_routing_put_voice_mixer),
11888 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11889 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
11890 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11891 msm_routing_put_voice_mixer),
11892 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11893 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
11894 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11895 msm_routing_put_voice_mixer),
11896 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
11897 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
11898 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11899 msm_routing_put_voice_mixer),
11900};
11901
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011902static const struct snd_kcontrol_new bt_sco_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011903 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11904 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011905 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11906 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011907 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11908 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011909 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11910 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011911 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11912 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011913 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11914 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011915 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11916 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011917 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11918 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011919 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
11920 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011921 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11922 msm_routing_put_voice_mixer),
11923};
11924
11925static const struct snd_kcontrol_new mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011926 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11927 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011928 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11929 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011930 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11931 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011932 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11933 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011934 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11935 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011936 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11937 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011938 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11939 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011940 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11941 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011942 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
11943 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011944 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11945 msm_routing_put_voice_mixer),
11946};
11947
11948static const struct snd_kcontrol_new pri_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011949 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11950MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011951 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11952 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011953 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11954MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011955 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11956 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011957 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11958MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011959 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11960 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011961 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11962MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011963 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11964 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011965 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
11966MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011967 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11968 msm_routing_put_voice_mixer),
11969};
11970
11971static const struct snd_kcontrol_new int0_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011972 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11973MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011974 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11975 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011976 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11977MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011978 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11979 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011980 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11981MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011982 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11983 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011984 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11985MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011986 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11987 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011988 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
11989MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011990 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11991 msm_routing_put_voice_mixer),
11992};
11993
11994static const struct snd_kcontrol_new int4_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011995 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11996 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011997 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11998 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011999 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12000 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012001 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12002 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012003 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12004 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012005 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12006 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012007 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12008 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012009 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12010 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012011 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12012 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012013 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12014 msm_routing_put_voice_mixer),
12015};
12016
12017static const struct snd_kcontrol_new tert_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012018 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12019 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012020 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12021 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012022 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12023 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012024 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12025 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012026 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12027 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012028 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12029 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012030 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12031 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012032 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12033 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012034 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12035 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012036 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12037 msm_routing_put_voice_mixer),
12038};
12039
12040static const struct snd_kcontrol_new quat_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012041 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12042 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012043 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12044 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012045 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12046 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012047 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12048 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012049 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12050 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012051 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12052 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012053 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12054 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012055 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12056 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012057 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12058 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012059 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12060 msm_routing_put_voice_mixer),
12061};
12062
12063static const struct snd_kcontrol_new quin_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012064 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12065 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012066 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12067 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012068 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12069 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012070 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12071 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012072 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12073 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012074 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12075 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012076 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12077 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012078 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12079 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012080 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12081 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012082 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12083 msm_routing_put_voice_mixer),
12084};
12085
12086static const struct snd_kcontrol_new afe_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012087 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12088 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012089 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12090 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012091 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12092 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012093 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12094 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012095 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12096 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012097 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12098 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012099 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12100 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012101 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12102 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012103 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12104 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012105 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12106 msm_routing_put_voice_mixer),
12107};
12108
12109static const struct snd_kcontrol_new aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012110 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12111 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012112 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12113 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012114 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12115 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012116 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12117 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012118 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12119 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012120 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12121 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012122 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12123 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012124 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12125 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012126 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12127 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012128 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12129 msm_routing_put_voice_mixer),
12130};
12131
12132static const struct snd_kcontrol_new sec_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012133 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12134MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012135 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12136 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012137 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12138MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012139 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12140 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012141 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12142MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012143 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12144 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012145 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12146MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012147 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12148 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012149 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12150MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012151 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12152 msm_routing_put_voice_mixer),
12153};
12154
12155static const struct snd_kcontrol_new tert_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012156 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12157MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012158 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12159 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012160 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12161MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012162 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12163 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012164 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12165MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012166 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12167 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012168 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12169MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012170 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12171 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012172 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12173MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012174 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12175 msm_routing_put_voice_mixer),
12176};
12177
12178static const struct snd_kcontrol_new quat_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012179 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12180MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012181 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12182 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012183 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12184MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012185 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12186 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012187 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12188MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012189 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12190 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012191 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12192MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012193 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12194 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012195 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12196MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012197 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12198 msm_routing_put_voice_mixer),
12199};
12200
Rohit Kumara5077932017-09-10 22:05:05 +053012201static const struct snd_kcontrol_new quin_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012202 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12203MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012204 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12205 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012206 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12207MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012208 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12209 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012210 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12211MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012212 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12213 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012214 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12215MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012216 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12217 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012218 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12219MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012220 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12221 msm_routing_put_voice_mixer),
12222};
12223
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012224static const struct snd_kcontrol_new hdmi_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012225 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12226 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012227 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12228 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012229 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12230 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012231 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12232 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012233 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12234 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012235 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12236 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012237 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12238 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012239 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12240 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012241 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12242 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012243 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12244 msm_routing_put_voice_mixer),
12245};
12246
12247static const struct snd_kcontrol_new slimbus_7_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012248 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12249MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012250 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12251 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012252 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12253MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012254 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12255 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012256 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12257MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012258 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12259 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012260 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12261MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012262 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12263 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012264 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12265MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012266 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12267 msm_routing_put_voice_mixer),
12268};
12269
12270static const struct snd_kcontrol_new slimbus_8_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012271 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12272 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012273 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12274 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012275 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12276 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012277 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12278 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012279 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12280 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012281 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12282 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012283 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12284 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012285 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12286 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012287 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12288 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012289 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12290 msm_routing_put_voice_mixer),
12291};
12292
12293static const struct snd_kcontrol_new quat_tdm_rx_2_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012294 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12295 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012296 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12297 msm_routing_put_voice_mixer),
12298};
12299
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012300static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_voice_mixer_controls[] = {
12301 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12302 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12303 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12304 msm_routing_put_voice_mixer),
12305 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12306 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12307 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12308 msm_routing_put_voice_mixer),
12309 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12310 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12311 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12312 msm_routing_put_voice_mixer),
12313 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12314 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12315 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12316 msm_routing_put_voice_mixer),
12317 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12318 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12319 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12320 msm_routing_put_voice_mixer),
12321};
12322
12323static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_voice_mixer_controls[] = {
12324 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12325 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12326 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12327 msm_routing_put_voice_mixer),
12328 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12329 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12330 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12331 msm_routing_put_voice_mixer),
12332 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12333 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12334 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12335 msm_routing_put_voice_mixer),
12336 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12337 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12338 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12339 msm_routing_put_voice_mixer),
12340 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12341 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12342 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12343 msm_routing_put_voice_mixer),
12344};
12345
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012346static const struct snd_kcontrol_new rx_cdc_dma_rx_0_voice_mixer_controls[] = {
12347 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12348 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12349 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12350 msm_routing_put_voice_mixer),
12351 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12352 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12353 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12354 msm_routing_put_voice_mixer),
12355 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12356 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12357 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12358 msm_routing_put_voice_mixer),
12359 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12360 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12361 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12362 msm_routing_put_voice_mixer),
12363 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12364 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12365 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12366 msm_routing_put_voice_mixer),
12367};
12368
12369static const struct snd_kcontrol_new rx_cdc_dma_rx_1_voice_mixer_controls[] = {
12370 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12371 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12372 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12373 msm_routing_put_voice_mixer),
12374 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12375 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12376 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12377 msm_routing_put_voice_mixer),
12378 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12379 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12380 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12381 msm_routing_put_voice_mixer),
12382 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12383 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12384 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12385 msm_routing_put_voice_mixer),
12386 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12387 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12388 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12389 msm_routing_put_voice_mixer),
12390};
12391
12392static const struct snd_kcontrol_new rx_cdc_dma_rx_2_voice_mixer_controls[] = {
12393 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12394 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12395 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12396 msm_routing_put_voice_mixer),
12397 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12398 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12399 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12400 msm_routing_put_voice_mixer),
12401 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12402 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12403 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12404 msm_routing_put_voice_mixer),
12405 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12406 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12407 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12408 msm_routing_put_voice_mixer),
12409 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12410 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12411 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12412 msm_routing_put_voice_mixer),
12413};
12414
12415static const struct snd_kcontrol_new rx_cdc_dma_rx_3_voice_mixer_controls[] = {
12416 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12417 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12418 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12419 msm_routing_put_voice_mixer),
12420 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12421 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12422 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12423 msm_routing_put_voice_mixer),
12424 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12425 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12426 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12427 msm_routing_put_voice_mixer),
12428 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12429 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12430 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12431 msm_routing_put_voice_mixer),
12432 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12433 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12434 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12435 msm_routing_put_voice_mixer),
12436};
12437
12438static const struct snd_kcontrol_new rx_cdc_dma_rx_4_voice_mixer_controls[] = {
12439 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12440 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12441 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12442 msm_routing_put_voice_mixer),
12443 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12444 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12445 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12446 msm_routing_put_voice_mixer),
12447 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12448 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12449 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12450 msm_routing_put_voice_mixer),
12451 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12452 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12453 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12454 msm_routing_put_voice_mixer),
12455 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12456 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12457 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12458 msm_routing_put_voice_mixer),
12459};
12460
12461static const struct snd_kcontrol_new rx_cdc_dma_rx_5_voice_mixer_controls[] = {
12462 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12463 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12464 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12465 msm_routing_put_voice_mixer),
12466 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12467 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12468 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12469 msm_routing_put_voice_mixer),
12470 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12471 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12472 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12473 msm_routing_put_voice_mixer),
12474 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12475 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12476 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12477 msm_routing_put_voice_mixer),
12478 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12479 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12480 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12481 msm_routing_put_voice_mixer),
12482};
12483
12484static const struct snd_kcontrol_new rx_cdc_dma_rx_6_voice_mixer_controls[] = {
12485 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12486 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12487 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12488 msm_routing_put_voice_mixer),
12489 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12490 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12491 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12492 msm_routing_put_voice_mixer),
12493 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12494 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12495 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12496 msm_routing_put_voice_mixer),
12497 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12498 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12499 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12500 msm_routing_put_voice_mixer),
12501 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12502 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12503 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12504 msm_routing_put_voice_mixer),
12505};
12506
12507static const struct snd_kcontrol_new rx_cdc_dma_rx_7_voice_mixer_controls[] = {
12508 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12509 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12510 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12511 msm_routing_put_voice_mixer),
12512 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12513 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12514 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12515 msm_routing_put_voice_mixer),
12516 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12517 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12518 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12519 msm_routing_put_voice_mixer),
12520 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12521 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12522 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12523 msm_routing_put_voice_mixer),
12524 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12525 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12526 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12527 msm_routing_put_voice_mixer),
12528};
12529
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012530static const struct snd_kcontrol_new stub_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012531 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12532 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012533 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12534 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012535 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12536 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012537 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12538 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012539};
12540
12541static const struct snd_kcontrol_new slimbus_1_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012542 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12543 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012544 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12545 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012546 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12547 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012548 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12549 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012550};
12551
12552static const struct snd_kcontrol_new slimbus_3_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012553 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12554 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012555 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12556 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012557 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12558 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012559 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12560 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012561};
12562
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012563static const struct snd_kcontrol_new tx_voicemmode1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012564 SOC_DOUBLE_EXT("PRI_TX_MMode1", SND_SOC_NOPM,
12565 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012566 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12567 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012568 SOC_DOUBLE_EXT("MI2S_TX_MMode1", SND_SOC_NOPM,
12569 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012570 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12571 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012572 SOC_DOUBLE_EXT("SLIM_0_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012573 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12574 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012575 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012576 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12577 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012578 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012579 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
12580 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012581 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012582 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
12583 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012584 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012585 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12586 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012587 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012588 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12589 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012590 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012591 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12592 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012593 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053012594 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12595 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012596 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012597 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
12598 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012599 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012600 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
12601 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012602 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012603 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
12604 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012605 SOC_DOUBLE_EXT("SLIM_7_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012606 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12607 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012608 SOC_DOUBLE_EXT("SLIM_8_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012609 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12610 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012611 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode1", SND_SOC_NOPM,
12612 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012613 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12614 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012615 SOC_DOUBLE_EXT("QUAT_TDM_TX_0_MMode1", SND_SOC_NOPM,
12616MSM_BACKEND_DAI_QUAT_TDM_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012617 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012618 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
12619 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
12620 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12621 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
12622 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
12623 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012624 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
12625 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
12626 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12627 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
12628 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
12629 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12630 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
12631 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
12632 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12633 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode1", SND_SOC_NOPM,
12634 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
12635 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12636 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode1", SND_SOC_NOPM,
12637 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE1,
12638 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12639 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode1", SND_SOC_NOPM,
12640 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE1,
12641 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012642};
12643
12644static const struct snd_kcontrol_new tx_voicemmode2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012645 SOC_DOUBLE_EXT("PRI_TX_MMode2", SND_SOC_NOPM,
12646 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012647 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12648 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012649 SOC_DOUBLE_EXT("MI2S_TX_MMode2", SND_SOC_NOPM,
12650 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012651 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12652 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012653 SOC_DOUBLE_EXT("SLIM_0_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012654 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12655 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012656 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012657 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12658 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012659 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012660 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
12661 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012662 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012663 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
12664 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012665 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012666 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12667 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012668 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012669 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12670 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012671 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012672 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12673 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012674 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053012675 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12676 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012677 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012678 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
12679 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012680 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012681 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
12682 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012683 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012684 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
12685 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012686 SOC_DOUBLE_EXT("SLIM_7_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012687 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12688 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012689 SOC_DOUBLE_EXT("SLIM_8_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012690 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12691 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012692 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012693 MSM_BACKEND_DAI_USB_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12694 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012695 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
12696 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
12697 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12698 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
12699 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
12700 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012701 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
12702 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
12703 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12704 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
12705 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
12706 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12707 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
12708 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
12709 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12710 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode2", SND_SOC_NOPM,
12711 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE2,
12712 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12713 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode2", SND_SOC_NOPM,
12714 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE2,
12715 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12716 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode2", SND_SOC_NOPM,
12717 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE2,
12718 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012719};
12720
12721static const struct snd_kcontrol_new tx_voip_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012722 SOC_DOUBLE_EXT("PRI_TX_Voip", SND_SOC_NOPM,
12723 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012724 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12725 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012726 SOC_DOUBLE_EXT("MI2S_TX_Voip", SND_SOC_NOPM,
12727 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012728 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12729 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012730 SOC_DOUBLE_EXT("SLIM_0_TX_Voip", SND_SOC_NOPM,
12731 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012732 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12733 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012734 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_Voip", SND_SOC_NOPM,
12735 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012736 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12737 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012738 SOC_DOUBLE_EXT("AFE_PCM_TX_Voip", SND_SOC_NOPM,
12739 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012740 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12741 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012742 SOC_DOUBLE_EXT("AUX_PCM_TX_Voip", SND_SOC_NOPM,
12743 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012744 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12745 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012746 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_Voip", SND_SOC_NOPM,
12747 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012748 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12749 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012750 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
12751 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012752 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12753 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012754 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
12755 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012756 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12757 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012758 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_Voip", SND_SOC_NOPM,
12759 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053012760 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12761 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012762 SOC_DOUBLE_EXT("PRI_MI2S_TX_Voip", SND_SOC_NOPM,
12763 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012764 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12765 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012766 SOC_DOUBLE_EXT("TERT_MI2S_TX_Voip", SND_SOC_NOPM,
12767 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012768 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12769 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012770 SOC_DOUBLE_EXT("INT3_MI2S_TX_Voip", SND_SOC_NOPM,
12771 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012772 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12773 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012774 SOC_DOUBLE_EXT("SLIM_7_TX_Voip", SND_SOC_NOPM,
12775 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012776 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12777 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012778 SOC_DOUBLE_EXT("SLIM_8_TX_Voip", SND_SOC_NOPM,
12779 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012780 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12781 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012782 SOC_DOUBLE_EXT("USB_AUDIO_TX_Voip", SND_SOC_NOPM,
12783 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012784 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12785 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012786 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
12787 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
12788 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12789 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
12790 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
12791 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012792 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
12793 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
12794 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12795 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
12796 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
12797 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12798 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
12799 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
12800 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12801 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_Voip", SND_SOC_NOPM,
12802 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOIP,
12803 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12804 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_Voip", SND_SOC_NOPM,
12805 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOIP,
12806 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12807 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_Voip", SND_SOC_NOPM,
12808 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOIP,
12809 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012810};
12811
12812static const struct snd_kcontrol_new tx_voice_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012813 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
12814 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012815 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12816 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012817 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12818 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012819 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12820 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012821 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12822 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012823 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12824 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012825 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
12826 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012827 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12828 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012829 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
12830 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012831 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12832 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012833 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12834 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012835 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12836 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012837 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12838 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012839 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12840 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012841 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12842 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012843 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12844 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012845 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12846 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012847 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12848 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012849 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12850 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012851 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12852 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012853 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12854 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012855 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12856 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012857 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
12858 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012859 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12860 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012861 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
12862 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012863 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12864 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012865 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
12866 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053012867 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12868 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012869 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12870 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012871 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12872 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012873 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
12874 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012875 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12876 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012877 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12878 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012879 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12880 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012881 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
12882 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012883 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12884 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012885 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
12886 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012887 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12888 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012889 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12890 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
12891 1, 0, msm_routing_get_voice_stub_mixer,
12892 msm_routing_put_voice_stub_mixer),
12893 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12894 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
12895 1, 0, msm_routing_get_voice_stub_mixer,
12896 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012897 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12898 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
12899 1, 0, msm_routing_get_voice_stub_mixer,
12900 msm_routing_put_voice_stub_mixer),
12901 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12902 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
12903 1, 0, msm_routing_get_voice_stub_mixer,
12904 msm_routing_put_voice_stub_mixer),
12905 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12906 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
12907 1, 0, msm_routing_get_voice_stub_mixer,
12908 msm_routing_put_voice_stub_mixer),
12909 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12910 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE_STUB,
12911 1, 0, msm_routing_get_voice_stub_mixer,
12912 msm_routing_put_voice_stub_mixer),
12913 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12914 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE_STUB,
12915 1, 0, msm_routing_get_voice_stub_mixer,
12916 msm_routing_put_voice_stub_mixer),
12917 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12918 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE_STUB,
12919 1, 0, msm_routing_get_voice_stub_mixer,
12920 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012921};
12922
12923static const struct snd_kcontrol_new tx_voice2_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012924 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
12925 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012926 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12927 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012928 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12929 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012930 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12931 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012932 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
12933 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012934 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12935 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012936 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12937 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012938 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12939 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012940 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12941 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012942 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12943 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012944 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
12945 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012946 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12947 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012948 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
12949 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012950 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12951 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012952 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
12953 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053012954 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12955 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012956 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12957 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012958 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12959 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012960 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
12961 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012962 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12963 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012964 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12965 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012966 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12967 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012968 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12969 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012970 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12971 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012972 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12973 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012974 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12975 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012976 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
12977 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012978 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12979 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012980 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
12981 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012982 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12983 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012984 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12985 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
12986 1, 0, msm_routing_get_voice_stub_mixer,
12987 msm_routing_put_voice_stub_mixer),
12988 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12989 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
12990 1, 0, msm_routing_get_voice_stub_mixer,
12991 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012992 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12993 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
12994 1, 0, msm_routing_get_voice_stub_mixer,
12995 msm_routing_put_voice_stub_mixer),
12996 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12997 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
12998 1, 0, msm_routing_get_voice_stub_mixer,
12999 msm_routing_put_voice_stub_mixer),
13000 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13001 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
13002 1, 0, msm_routing_get_voice_stub_mixer,
13003 msm_routing_put_voice_stub_mixer),
13004 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13005 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE2_STUB,
13006 1, 0, msm_routing_get_voice_stub_mixer,
13007 msm_routing_put_voice_stub_mixer),
13008 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13009 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE2_STUB,
13010 1, 0, msm_routing_get_voice_stub_mixer,
13011 msm_routing_put_voice_stub_mixer),
13012 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13013 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE2_STUB,
13014 1, 0, msm_routing_get_voice_stub_mixer,
13015 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013016};
13017
13018static const struct snd_kcontrol_new tx_volte_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013019 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
13020 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013021 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13022 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013023 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13024 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013025 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13026 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013027 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
13028 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013029 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13030 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013031 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13032 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013033 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13034 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013035 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13036 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013037 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13038 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013039 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13040 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013041 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13042 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013043 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13044 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013045 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13046 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013047 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13048 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013049 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13050 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013051 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13052 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013053 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13054 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013055 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
13056 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013057 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13058 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013059 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13060 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013061 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13062 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013063 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13064 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013065 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13066 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013067 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13068 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013069 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13070 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013071 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13072 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013073 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13074 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013075 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13076 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013077 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13078 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013079 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13080 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
13081 1, 0, msm_routing_get_voice_stub_mixer,
13082 msm_routing_put_voice_stub_mixer),
13083 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13084 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
13085 1, 0, msm_routing_get_voice_stub_mixer,
13086 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013087 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13088 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
13089 1, 0, msm_routing_get_voice_stub_mixer,
13090 msm_routing_put_voice_stub_mixer),
13091 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13092 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
13093 1, 0, msm_routing_get_voice_stub_mixer,
13094 msm_routing_put_voice_stub_mixer),
13095 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13096 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
13097 1, 0, msm_routing_get_voice_stub_mixer,
13098 msm_routing_put_voice_stub_mixer),
13099 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13100 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOLTE_STUB,
13101 1, 0, msm_routing_get_voice_stub_mixer,
13102 msm_routing_put_voice_stub_mixer),
13103 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13104 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOLTE_STUB,
13105 1, 0, msm_routing_get_voice_stub_mixer,
13106 msm_routing_put_voice_stub_mixer),
13107 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13108 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOLTE_STUB,
13109 1, 0, msm_routing_get_voice_stub_mixer,
13110 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013111};
13112
13113static const struct snd_kcontrol_new tx_qchat_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013114 SOC_DOUBLE_EXT("PRI_TX_QCHAT", SND_SOC_NOPM,
13115 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013116 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13117 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013118 SOC_DOUBLE_EXT("SLIM_0_TX_QCHAT", SND_SOC_NOPM,
13119 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013120 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13121 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013122 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_QCHAT", SND_SOC_NOPM,
13123 MSM_BACKEND_DAI_INT_BT_SCO_TX,
13124 MSM_FRONTEND_DAI_QCHAT, 1, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013125 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013126 SOC_DOUBLE_EXT("AFE_PCM_TX_QCHAT", SND_SOC_NOPM,
13127 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013128 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13129 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013130 SOC_DOUBLE_EXT("AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13131 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013132 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13133 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013134 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13135 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013136 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13137 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013138 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13139 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013140 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13141 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013142 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13143 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013144 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13145 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013146 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13147 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013148 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13149 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013150 SOC_DOUBLE_EXT("MI2S_TX_QCHAT", SND_SOC_NOPM,
13151 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013152 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13153 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013154 SOC_DOUBLE_EXT("PRI_MI2S_TX_QCHAT", SND_SOC_NOPM,
13155 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013156 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13157 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013158 SOC_DOUBLE_EXT("TERT_MI2S_TX_QCHAT", SND_SOC_NOPM,
13159 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013160 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13161 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013162 SOC_DOUBLE_EXT("INT3_MI2S_TX_QCHAT", SND_SOC_NOPM,
13163 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013164 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13165 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013166 SOC_DOUBLE_EXT("SLIM_7_TX_QCHAT", SND_SOC_NOPM,
13167 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013168 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13169 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013170 SOC_DOUBLE_EXT("SLIM_8_TX_QCHAT", SND_SOC_NOPM,
13171 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013172 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13173 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013174 SOC_DOUBLE_EXT("USB_AUDIO_TX_QCHAT", SND_SOC_NOPM,
13175 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013176 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13177 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013178 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
13179 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
13180 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13181 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
13182 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
13183 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013184 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
13185 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
13186 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13187 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
13188 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
13189 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13190 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
13191 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
13192 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13193 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_QCHAT", SND_SOC_NOPM,
13194 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_QCHAT,
13195 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13196 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_QCHAT", SND_SOC_NOPM,
13197 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_QCHAT,
13198 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13199 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_QCHAT", SND_SOC_NOPM,
13200 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_QCHAT,
13201 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013202};
13203
13204static const struct snd_kcontrol_new int0_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013205 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13206 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013207 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13208 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013209 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13210 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013211 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13212 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013213 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13214 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013215 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13216 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013217 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13218 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013219 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13220 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013221 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13222 MSM_BACKEND_DAI_INT0_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013223 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13224 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013225 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13226 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013227 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13228 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013229 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13230 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013231 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13232 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013233 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13234 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013235 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13236 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013237 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13238 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013239 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13240 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013241 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13242 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013243 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13244 msm_routing_put_port_mixer),
13245};
13246
13247static const struct snd_kcontrol_new int4_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013248 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13249 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013250 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13251 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013252 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13253 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013254 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13255 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013256 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13257 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013258 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13259 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013260 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13261 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013262 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13263 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013264 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13265 MSM_BACKEND_DAI_INT4_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013266 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13267 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013268 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13269 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013270 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13271 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013272 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13273 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013274 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13275 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013276 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13277 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013278 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13279 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013280 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13281 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013282 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13283 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013284 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13285 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013286 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13287 msm_routing_put_port_mixer),
13288};
13289
13290static const struct snd_kcontrol_new sbus_0_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013291 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13292 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013293 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13294 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013295 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13296 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013297 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13298 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013299 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13300 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013301 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13302 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013303 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13304 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013305 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13306 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013307 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13308 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013309 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13310 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013311 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13312 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013313 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13314 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013315 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13316 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013317 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13318 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013319 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13320 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013321 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13322 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013323 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13324 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013325 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13326 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013327 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13328 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013329 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13330 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013331 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13332 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013333 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13334 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013335 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13336 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013337 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13338 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013339 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13340 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013341 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13342 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013343 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13344 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013345 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13346 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013347 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13348 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013349 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13350 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013351 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13352 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013353 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13354 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013355 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13356 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013357 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13358 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013359 SOC_DOUBLE_EXT("PRI_MI2S_RX", SND_SOC_NOPM,
13360 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013361 MSM_BACKEND_DAI_PRI_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13362 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013363 SOC_DOUBLE_EXT("SEC_MI2S_RX", SND_SOC_NOPM,
13364 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013365 MSM_BACKEND_DAI_SECONDARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13366 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013367 SOC_DOUBLE_EXT("TERT_MI2S_RX", SND_SOC_NOPM,
13368 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013369 MSM_BACKEND_DAI_TERTIARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13370 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013371 SOC_DOUBLE_EXT("QUAT_MI2S_RX", SND_SOC_NOPM,
13372 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013373 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13374 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013375 SOC_DOUBLE_EXT("QUIN_MI2S_RX", SND_SOC_NOPM,
13376 MSM_BACKEND_DAI_SLIMBUS_0_RX,
13377MSM_BACKEND_DAI_QUINARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
Rohit Kumara5077932017-09-10 22:05:05 +053013378 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013379};
13380
13381static const struct snd_kcontrol_new aux_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013382 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13383 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013384 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13385 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013386 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13387 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013388 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13389 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013390 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13391 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013392 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13393 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013394 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13395 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013396 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13397 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013398 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13399 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013400 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
13401 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013402 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13403 MSM_BACKEND_DAI_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080013404 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13405 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013406};
13407
13408static const struct snd_kcontrol_new sec_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013409 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13410 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013411 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13412 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013413 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13414 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013415 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13416 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013417 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13418 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013419 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13420 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013421 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13422 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080013423 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13424 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013425};
13426
13427static const struct snd_kcontrol_new tert_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013428 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13429 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013430 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13431 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013432 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13433 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013434 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13435 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013436 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13437 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013438 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13439 msm_routing_put_port_mixer),
13440};
13441
13442static const struct snd_kcontrol_new quat_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013443 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13444 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013445 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13446 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013447 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13448 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013449 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13450 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013451 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13452 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013453 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13454 msm_routing_put_port_mixer),
13455};
13456
Rohit Kumara5077932017-09-10 22:05:05 +053013457static const struct snd_kcontrol_new quin_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013458 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13459 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013460 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13461 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013462 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13463 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013464 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13465 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013466 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13467 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013468 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13469 msm_routing_put_port_mixer),
13470};
13471
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013472static const struct snd_kcontrol_new sbus_1_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013473 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13474 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013475 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13476 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013477 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13478 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013479 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0, msm_routing_get_port_mixer,
13480 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013481 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13482 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013483 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13484 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013485 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13486 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013487 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13488 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013489 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13490 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013491 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13492 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013493 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13494 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013495 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13496 msm_routing_put_port_mixer),
13497};
13498
13499static const struct snd_kcontrol_new sbus_3_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013500 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_RX", SND_SOC_NOPM,
13501 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013502 MSM_BACKEND_DAI_INT_BT_SCO_RX, 1, 0, msm_routing_get_port_mixer,
13503 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013504 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13505 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013506 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13507 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013508 SOC_DOUBLE_EXT("AFE_PCM_RX", SND_SOC_NOPM,
13509 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013510 MSM_BACKEND_DAI_AFE_PCM_RX, 1, 0, msm_routing_get_port_mixer,
13511 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013512 SOC_DOUBLE_EXT("AUX_PCM_RX", SND_SOC_NOPM,
13513 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013514 MSM_BACKEND_DAI_AUXPCM_RX, 1, 0, msm_routing_get_port_mixer,
13515 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013516 SOC_DOUBLE_EXT("SLIM_0_RX", SND_SOC_NOPM,
13517 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013518 MSM_BACKEND_DAI_SLIMBUS_0_RX, 1, 0, msm_routing_get_port_mixer,
13519 msm_routing_put_port_mixer),
13520};
13521
13522static const struct snd_kcontrol_new sbus_6_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013523 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13524 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013525 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13526 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013527 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13528 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013529 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13530 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013531 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13532 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013533 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13534 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013535 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13536 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013537 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13538 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013539 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13540 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013541 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13542 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013543 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13544 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013545 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13546 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013547 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13548 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013549 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13550 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013551 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13552 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013553 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13554 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013555 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13556 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013557 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13558 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013559 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13560 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013561 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13562 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013563 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13564 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013565 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13566 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013567 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13568 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013569 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13570 msm_routing_put_port_mixer),
13571};
13572
13573static const struct snd_kcontrol_new bt_sco_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013574 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13575 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013576 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13577 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013578 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13579 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013580 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13581 msm_routing_put_port_mixer),
13582};
13583
13584static const struct snd_kcontrol_new afe_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013585 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13586 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013587 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13588 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013589 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13590 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013591 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13592 msm_routing_put_port_mixer),
13593};
13594
13595
13596static const struct snd_kcontrol_new hdmi_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013597 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13598 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013599 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13600 msm_routing_put_port_mixer),
13601};
13602
13603static const struct snd_kcontrol_new display_port_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013604 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13605 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013606 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13607 msm_routing_put_port_mixer),
13608};
13609
Karthikeyan Mani57550082018-05-03 18:43:58 -070013610static const struct snd_kcontrol_new display_port_rx1_port_mixer_controls[] = {
13611 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13612 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
13613 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13614 msm_routing_put_port_mixer),
13615};
13616
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013617static const struct snd_kcontrol_new sec_i2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013618 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13619 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013620 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13621 msm_routing_put_port_mixer),
13622};
13623
13624static const struct snd_kcontrol_new mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013625 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13626 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013627 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13628 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013629 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13630 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013631 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13632 msm_routing_put_port_mixer),
13633};
13634
13635static const struct snd_kcontrol_new primary_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013636 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13637 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013638 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13639 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013640 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13641 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013642 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13643 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013644 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13645 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013646 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13647 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013648 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13649 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013650 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13651 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013652 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13653 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013654 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13655 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013656 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13657 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013658 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13659 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013660 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13661 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013662 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13663 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013664 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13665 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013666 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13667 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013668 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13669 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013670 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13671 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013672 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13673 MSM_BACKEND_DAI_PRI_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080013674 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13675 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013676};
13677
13678static const struct snd_kcontrol_new usb_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013679 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
13680 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013681 MSM_BACKEND_DAI_USB_TX, 1, 0, msm_routing_get_port_mixer,
13682 msm_routing_put_port_mixer),
13683};
13684
13685static const struct snd_kcontrol_new quat_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013686 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13687 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013688 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13689 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013690 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13691 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013692 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13693 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013694 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13695 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013696 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13697 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013698 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13699 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013700 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13701 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013702 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13703 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013704 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13705 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013706 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13707 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013708 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13709 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013710 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13711 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013712 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13713 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013714 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13715 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013716 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13717 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013718 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13719 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013720 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13721 msm_routing_put_port_mixer),
13722};
13723
Rohit Kumara5077932017-09-10 22:05:05 +053013724static const struct snd_kcontrol_new quin_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013725 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13726 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013727 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13728 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013729 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13730 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013731 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13732 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013733 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13734 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013735 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13736 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013737 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13738 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013739 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13740 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013741 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13742 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013743 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13744 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013745 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13746 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013747 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13748 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013749 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13750 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013751 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13752 msm_routing_put_port_mixer),
13753};
13754
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013755static const struct snd_kcontrol_new pri_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013756 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13757 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013758 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
13759 msm_routing_get_port_mixer,
13760 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013761 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13762 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013763 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
13764 msm_routing_get_port_mixer,
13765 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013766 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13767 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013768 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
13769 msm_routing_get_port_mixer,
13770 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013771 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13772 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013773 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
13774 msm_routing_get_port_mixer,
13775 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013776 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13777 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013778 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
13779 msm_routing_get_port_mixer,
13780 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013781 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13782 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013783 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
13784 msm_routing_get_port_mixer,
13785 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013786 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13787 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013788 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
13789 msm_routing_get_port_mixer,
13790 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013791 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13792 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013793 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
13794 msm_routing_get_port_mixer,
13795 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013796 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
13797 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013798 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
13799 msm_routing_get_port_mixer,
13800 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013801 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
13802 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013803 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
13804 msm_routing_get_port_mixer,
13805 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013806 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13807 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013808 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
13809 msm_routing_get_port_mixer,
13810 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013811 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13812 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013813 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
13814 msm_routing_get_port_mixer,
13815 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013816 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13817 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013818 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
13819 msm_routing_get_port_mixer,
13820 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013821 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13822 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013823 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
13824 msm_routing_get_port_mixer,
13825 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013826 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13827 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013828 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
13829 msm_routing_get_port_mixer,
13830 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013831 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13832 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013833 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
13834 msm_routing_get_port_mixer,
13835 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013836 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13837 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013838 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
13839 msm_routing_get_port_mixer,
13840 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013841 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13842 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013843 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
13844 msm_routing_get_port_mixer,
13845 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013846 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13847 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013848 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
13849 msm_routing_get_port_mixer,
13850 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013851 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13852 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013853 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
13854 msm_routing_get_port_mixer,
13855 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013856};
13857
13858static const struct snd_kcontrol_new pri_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013859 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13860 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013861 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
13862 msm_routing_get_port_mixer,
13863 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013864 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13865 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013866 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
13867 msm_routing_get_port_mixer,
13868 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013869 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13870 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013871 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
13872 msm_routing_get_port_mixer,
13873 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013874 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13875 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013876 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
13877 msm_routing_get_port_mixer,
13878 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013879 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13880 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013881 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
13882 msm_routing_get_port_mixer,
13883 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013884 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13885 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013886 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
13887 msm_routing_get_port_mixer,
13888 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013889 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13890 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013891 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
13892 msm_routing_get_port_mixer,
13893 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013894 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13895 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013896 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
13897 msm_routing_get_port_mixer,
13898 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013899 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
13900 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013901 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
13902 msm_routing_get_port_mixer,
13903 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013904 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
13905 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013906 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
13907 msm_routing_get_port_mixer,
13908 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013909 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13910 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013911 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
13912 msm_routing_get_port_mixer,
13913 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013914 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13915 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013916 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
13917 msm_routing_get_port_mixer,
13918 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013919 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13920 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013921 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
13922 msm_routing_get_port_mixer,
13923 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013924 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13925 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013926 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
13927 msm_routing_get_port_mixer,
13928 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013929 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13930 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013931 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
13932 msm_routing_get_port_mixer,
13933 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013934 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13935 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013936 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
13937 msm_routing_get_port_mixer,
13938 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013939 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13940 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013941 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
13942 msm_routing_get_port_mixer,
13943 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013944 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13945 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013946 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
13947 msm_routing_get_port_mixer,
13948 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013949 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13950 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013951 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
13952 msm_routing_get_port_mixer,
13953 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013954 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13955 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013956 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
13957 msm_routing_get_port_mixer,
13958 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013959};
13960
13961static const struct snd_kcontrol_new pri_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013962 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13963 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013964 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
13965 msm_routing_get_port_mixer,
13966 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013967 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13968 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013969 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
13970 msm_routing_get_port_mixer,
13971 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013972 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13973 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013974 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
13975 msm_routing_get_port_mixer,
13976 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013977 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13978 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013979 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
13980 msm_routing_get_port_mixer,
13981 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013982 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13983 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013984 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
13985 msm_routing_get_port_mixer,
13986 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013987 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13988 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013989 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
13990 msm_routing_get_port_mixer,
13991 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013992 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13993 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013994 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
13995 msm_routing_get_port_mixer,
13996 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013997 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13998 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013999 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14000 msm_routing_get_port_mixer,
14001 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014002 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14003 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014004 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14005 msm_routing_get_port_mixer,
14006 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014007 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14008 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014009 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14010 msm_routing_get_port_mixer,
14011 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014012 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14013 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014014 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14015 msm_routing_get_port_mixer,
14016 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014017 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14018 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014019 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14020 msm_routing_get_port_mixer,
14021 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014022 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14023 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014024 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14025 msm_routing_get_port_mixer,
14026 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014027 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14028 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014029 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14030 msm_routing_get_port_mixer,
14031 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014032 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14033 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014034 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14035 msm_routing_get_port_mixer,
14036 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014037 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14038 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014039 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14040 msm_routing_get_port_mixer,
14041 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014042 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14043 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014044 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14045 msm_routing_get_port_mixer,
14046 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014047 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14048 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014049 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14050 msm_routing_get_port_mixer,
14051 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014052 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14053 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014054 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14055 msm_routing_get_port_mixer,
14056 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014057 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14058 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014059 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14060 msm_routing_get_port_mixer,
14061 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014062};
14063
14064static const struct snd_kcontrol_new pri_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014065 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14066 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014067 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14068 msm_routing_get_port_mixer,
14069 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014070 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14071 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014072 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14073 msm_routing_get_port_mixer,
14074 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014075 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14076 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014077 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14078 msm_routing_get_port_mixer,
14079 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014080 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14081 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014082 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14083 msm_routing_get_port_mixer,
14084 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014085 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14086 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014087 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14088 msm_routing_get_port_mixer,
14089 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014090 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14091 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014092 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14093 msm_routing_get_port_mixer,
14094 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014095 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14096 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014097 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14098 msm_routing_get_port_mixer,
14099 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014100 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14101 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014102 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14103 msm_routing_get_port_mixer,
14104 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014105 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14106 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014107 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14108 msm_routing_get_port_mixer,
14109 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014110 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14111 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014112 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14113 msm_routing_get_port_mixer,
14114 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014115 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14116 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014117 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14118 msm_routing_get_port_mixer,
14119 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014120 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14121 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014122 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14123 msm_routing_get_port_mixer,
14124 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014125 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14126 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014127 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14128 msm_routing_get_port_mixer,
14129 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014130 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14131 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014132 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14133 msm_routing_get_port_mixer,
14134 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014135 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14136 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014137 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14138 msm_routing_get_port_mixer,
14139 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014140 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14141 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014142 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14143 msm_routing_get_port_mixer,
14144 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014145 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14146 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014147 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14148 msm_routing_get_port_mixer,
14149 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014150 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14151 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014152 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14153 msm_routing_get_port_mixer,
14154 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014155 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14156 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014157 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14158 msm_routing_get_port_mixer,
14159 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014160 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14161 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014162 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14163 msm_routing_get_port_mixer,
14164 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014165};
14166
14167static const struct snd_kcontrol_new sec_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014168 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14169 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014170 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14171 msm_routing_get_port_mixer,
14172 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014173 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14174 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014175 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14176 msm_routing_get_port_mixer,
14177 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014178 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14179 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014180 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14181 msm_routing_get_port_mixer,
14182 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014183 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14184 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014185 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14186 msm_routing_get_port_mixer,
14187 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014188 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14189 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014190 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14191 msm_routing_get_port_mixer,
14192 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014193 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14194 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014195 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14196 msm_routing_get_port_mixer,
14197 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014198 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14199 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014200 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14201 msm_routing_get_port_mixer,
14202 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014203 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14204 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014205 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14206 msm_routing_get_port_mixer,
14207 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014208 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14209 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014210 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14211 msm_routing_get_port_mixer,
14212 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014213 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14214 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014215 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
14216 msm_routing_get_port_mixer,
14217 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014218 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14219 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014220 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
14221 msm_routing_get_port_mixer,
14222 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014223 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14224 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014225 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
14226 msm_routing_get_port_mixer,
14227 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014228 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14229 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014230 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14231 msm_routing_get_port_mixer,
14232 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014233 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14234 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014235 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14236 msm_routing_get_port_mixer,
14237 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014238 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14239 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014240 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14241 msm_routing_get_port_mixer,
14242 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014243 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14244 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014245 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14246 msm_routing_get_port_mixer,
14247 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014248 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14249 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014250 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14251 msm_routing_get_port_mixer,
14252 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014253 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14254 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014255 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14256 msm_routing_get_port_mixer,
14257 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014258 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14259 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014260 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14261 msm_routing_get_port_mixer,
14262 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014263 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14264 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014265 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14266 msm_routing_get_port_mixer,
14267 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014268};
14269
14270static const struct snd_kcontrol_new sec_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014271 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14272 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014273 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14274 msm_routing_get_port_mixer,
14275 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014276 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14277 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014278 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14279 msm_routing_get_port_mixer,
14280 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014281 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14282 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014283 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14284 msm_routing_get_port_mixer,
14285 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014286 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14287 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014288 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14289 msm_routing_get_port_mixer,
14290 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014291 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14292 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014293 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14294 msm_routing_get_port_mixer,
14295 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014296 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14297 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014298 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14299 msm_routing_get_port_mixer,
14300 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014301 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14302 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014303 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14304 msm_routing_get_port_mixer,
14305 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014306 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14307 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014308 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14309 msm_routing_get_port_mixer,
14310 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014311 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14312 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014313 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14314 msm_routing_get_port_mixer,
14315 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014316 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14317 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014318 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
14319 msm_routing_get_port_mixer,
14320 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014321 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14322 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014323 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
14324 msm_routing_get_port_mixer,
14325 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014326 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14327 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014328 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
14329 msm_routing_get_port_mixer,
14330 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014331 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14332 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014333 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14334 msm_routing_get_port_mixer,
14335 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014336 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14337 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014338 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14339 msm_routing_get_port_mixer,
14340 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014341 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14342 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014343 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14344 msm_routing_get_port_mixer,
14345 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014346 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14347 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014348 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14349 msm_routing_get_port_mixer,
14350 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014351 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14352 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014353 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14354 msm_routing_get_port_mixer,
14355 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014356 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14357 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014358 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14359 msm_routing_get_port_mixer,
14360 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014361 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14362 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014363 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14364 msm_routing_get_port_mixer,
14365 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014366 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14367 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014368 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14369 msm_routing_get_port_mixer,
14370 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014371};
14372
14373static const struct snd_kcontrol_new sec_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014374 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14375 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014376 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14377 msm_routing_get_port_mixer,
14378 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014379 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14380 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014381 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14382 msm_routing_get_port_mixer,
14383 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014384 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14385 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014386 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14387 msm_routing_get_port_mixer,
14388 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014389 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14390 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014391 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14392 msm_routing_get_port_mixer,
14393 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014394 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14395 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014396 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14397 msm_routing_get_port_mixer,
14398 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014399 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14400 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014401 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14402 msm_routing_get_port_mixer,
14403 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014404 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14405 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014406 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14407 msm_routing_get_port_mixer,
14408 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014409 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14410 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014411 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14412 msm_routing_get_port_mixer,
14413 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014414 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14415 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014416 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14417 msm_routing_get_port_mixer,
14418 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014419 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14420 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014421 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
14422 msm_routing_get_port_mixer,
14423 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014424 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14425 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014426 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
14427 msm_routing_get_port_mixer,
14428 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014429 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14430 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014431 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
14432 msm_routing_get_port_mixer,
14433 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014434 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14435 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014436 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14437 msm_routing_get_port_mixer,
14438 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014439 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14440 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014441 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14442 msm_routing_get_port_mixer,
14443 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014444 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14445 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014446 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14447 msm_routing_get_port_mixer,
14448 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014449 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14450 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014451 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14452 msm_routing_get_port_mixer,
14453 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014454 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14455 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014456 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14457 msm_routing_get_port_mixer,
14458 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014459 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14460 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014461 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14462 msm_routing_get_port_mixer,
14463 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014464 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14465 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014466 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14467 msm_routing_get_port_mixer,
14468 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014469 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14470 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014471 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14472 msm_routing_get_port_mixer,
14473 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014474};
14475
14476static const struct snd_kcontrol_new sec_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014477 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14478 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014479 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14480 msm_routing_get_port_mixer,
14481 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014482 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14483 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014484 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14485 msm_routing_get_port_mixer,
14486 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014487 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14488 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014489 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14490 msm_routing_get_port_mixer,
14491 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014492 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14493 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014494 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14495 msm_routing_get_port_mixer,
14496 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014497 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14498 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014499 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14500 msm_routing_get_port_mixer,
14501 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014502 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14503 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014504 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14505 msm_routing_get_port_mixer,
14506 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014507 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14508 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014509 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14510 msm_routing_get_port_mixer,
14511 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014512 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14513 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014514 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14515 msm_routing_get_port_mixer,
14516 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014517 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14518 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014519 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14520 msm_routing_get_port_mixer,
14521 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014522 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14523 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014524 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
14525 msm_routing_get_port_mixer,
14526 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014527 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14528 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014529 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
14530 msm_routing_get_port_mixer,
14531 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014532 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14533 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014534 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
14535 msm_routing_get_port_mixer,
14536 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014537 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14538 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014539 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14540 msm_routing_get_port_mixer,
14541 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014542 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14543 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014544 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14545 msm_routing_get_port_mixer,
14546 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014547 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14548 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014549 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14550 msm_routing_get_port_mixer,
14551 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014552 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14553 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014554 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14555 msm_routing_get_port_mixer,
14556 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014557 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14558 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014559 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14560 msm_routing_get_port_mixer,
14561 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014562 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14563 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014564 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14565 msm_routing_get_port_mixer,
14566 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014567 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14568 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014569 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14570 msm_routing_get_port_mixer,
14571 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014572 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14573 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014574 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14575 msm_routing_get_port_mixer,
14576 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014577};
14578
14579static const struct snd_kcontrol_new tert_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014580 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14581 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014582 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14583 msm_routing_get_port_mixer,
14584 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014585 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14586 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014587 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14588 msm_routing_get_port_mixer,
14589 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014590 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14591 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014592 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14593 msm_routing_get_port_mixer,
14594 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014595 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14596 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014597 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14598 msm_routing_get_port_mixer,
14599 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014600 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14601 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014602 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14603 msm_routing_get_port_mixer,
14604 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014605 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14606 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014607 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14608 msm_routing_get_port_mixer,
14609 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014610 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14611 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014612 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14613 msm_routing_get_port_mixer,
14614 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014615 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14616 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014617 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14618 msm_routing_get_port_mixer,
14619 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014620 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14621 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014622 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
14623 msm_routing_get_port_mixer,
14624 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014625 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
14626 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014627 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
14628 msm_routing_get_port_mixer,
14629 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014630 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
14631 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014632 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
14633 msm_routing_get_port_mixer,
14634 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014635 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
14636 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014637 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
14638 msm_routing_get_port_mixer,
14639 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014640 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14641 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014642 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14643 msm_routing_get_port_mixer,
14644 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014645 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14646 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014647 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14648 msm_routing_get_port_mixer,
14649 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014650 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14651 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014652 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14653 msm_routing_get_port_mixer,
14654 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014655 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14656 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014657 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14658 msm_routing_get_port_mixer,
14659 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014660 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14661 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014662 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14663 msm_routing_get_port_mixer,
14664 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014665 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14666 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014667 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14668 msm_routing_get_port_mixer,
14669 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014670 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14671 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014672 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14673 msm_routing_get_port_mixer,
14674 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014675 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14676 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014677 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14678 msm_routing_get_port_mixer,
14679 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014680};
14681
14682static const struct snd_kcontrol_new tert_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014683 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14684 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014685 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14686 msm_routing_get_port_mixer,
14687 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014688 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14689 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014690 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14691 msm_routing_get_port_mixer,
14692 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014693 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14694 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014695 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14696 msm_routing_get_port_mixer,
14697 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014698 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14699 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014700 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14701 msm_routing_get_port_mixer,
14702 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014703 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14704 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014705 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14706 msm_routing_get_port_mixer,
14707 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014708 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14709 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014710 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14711 msm_routing_get_port_mixer,
14712 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014713 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14714 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014715 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14716 msm_routing_get_port_mixer,
14717 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014718 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14719 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014720 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14721 msm_routing_get_port_mixer,
14722 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014723 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14724 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014725 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
14726 msm_routing_get_port_mixer,
14727 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014728 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
14729 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014730 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
14731 msm_routing_get_port_mixer,
14732 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014733 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
14734 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014735 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
14736 msm_routing_get_port_mixer,
14737 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014738 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
14739 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014740 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
14741 msm_routing_get_port_mixer,
14742 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014743 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14744 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014745 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14746 msm_routing_get_port_mixer,
14747 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014748 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14749 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014750 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14751 msm_routing_get_port_mixer,
14752 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014753 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14754 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014755 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14756 msm_routing_get_port_mixer,
14757 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014758 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14759 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014760 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14761 msm_routing_get_port_mixer,
14762 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014763 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14764 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014765 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14766 msm_routing_get_port_mixer,
14767 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014768 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14769 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014770 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14771 msm_routing_get_port_mixer,
14772 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014773 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14774 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014775 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14776 msm_routing_get_port_mixer,
14777 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014778 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14779 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014780 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14781 msm_routing_get_port_mixer,
14782 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014783};
14784
14785static const struct snd_kcontrol_new tert_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014786 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14787 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014788 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14789 msm_routing_get_port_mixer,
14790 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014791 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14792 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014793 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14794 msm_routing_get_port_mixer,
14795 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014796 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14797 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014798 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14799 msm_routing_get_port_mixer,
14800 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014801 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14802 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014803 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14804 msm_routing_get_port_mixer,
14805 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014806 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14807 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014808 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14809 msm_routing_get_port_mixer,
14810 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014811 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14812 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014813 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14814 msm_routing_get_port_mixer,
14815 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014816 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14817 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014818 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14819 msm_routing_get_port_mixer,
14820 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014821 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14822 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014823 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14824 msm_routing_get_port_mixer,
14825 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014826 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14827 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014828 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
14829 msm_routing_get_port_mixer,
14830 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014831 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
14832 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014833 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
14834 msm_routing_get_port_mixer,
14835 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014836 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
14837 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014838 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
14839 msm_routing_get_port_mixer,
14840 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014841 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
14842 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014843 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
14844 msm_routing_get_port_mixer,
14845 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014846 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14847 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014848 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14849 msm_routing_get_port_mixer,
14850 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014851 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14852 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014853 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14854 msm_routing_get_port_mixer,
14855 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014856 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14857 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014858 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14859 msm_routing_get_port_mixer,
14860 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014861 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14862 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014863 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14864 msm_routing_get_port_mixer,
14865 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014866 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14867 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014868 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14869 msm_routing_get_port_mixer,
14870 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014871 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14872 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014873 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14874 msm_routing_get_port_mixer,
14875 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014876 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14877 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014878 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14879 msm_routing_get_port_mixer,
14880 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014881 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14882 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014883 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14884 msm_routing_get_port_mixer,
14885 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014886};
14887
14888static const struct snd_kcontrol_new tert_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014889 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14890 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014891 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14892 msm_routing_get_port_mixer,
14893 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014894 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14895 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014896 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14897 msm_routing_get_port_mixer,
14898 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014899 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14900 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014901 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14902 msm_routing_get_port_mixer,
14903 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014904 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14905 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014906 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14907 msm_routing_get_port_mixer,
14908 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014909 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14910 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014911 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14912 msm_routing_get_port_mixer,
14913 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014914 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14915 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014916 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14917 msm_routing_get_port_mixer,
14918 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014919 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14920 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014921 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14922 msm_routing_get_port_mixer,
14923 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014924 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14925 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014926 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14927 msm_routing_get_port_mixer,
14928 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014929 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14930 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014931 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
14932 msm_routing_get_port_mixer,
14933 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014934 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
14935 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014936 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
14937 msm_routing_get_port_mixer,
14938 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014939 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
14940 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014941 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
14942 msm_routing_get_port_mixer,
14943 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014944 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
14945 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014946 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
14947 msm_routing_get_port_mixer,
14948 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014949 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14950 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014951 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14952 msm_routing_get_port_mixer,
14953 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014954 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14955 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014956 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14957 msm_routing_get_port_mixer,
14958 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014959 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14960 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014961 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14962 msm_routing_get_port_mixer,
14963 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014964 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14965 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014966 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14967 msm_routing_get_port_mixer,
14968 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014969 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14970 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014971 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14972 msm_routing_get_port_mixer,
14973 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014974 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14975 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014976 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14977 msm_routing_get_port_mixer,
14978 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014979 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14980 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014981 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14982 msm_routing_get_port_mixer,
14983 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014984 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14985 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014986 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14987 msm_routing_get_port_mixer,
14988 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014989};
14990
14991static const struct snd_kcontrol_new quat_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014992 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14993 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014994 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14995 msm_routing_get_port_mixer,
14996 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014997 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14998 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014999 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15000 msm_routing_get_port_mixer,
15001 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015002 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15003 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015004 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15005 msm_routing_get_port_mixer,
15006 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015007 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15008 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015009 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15010 msm_routing_get_port_mixer,
15011 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015012 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15013 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015014 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15015 msm_routing_get_port_mixer,
15016 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015017 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15018 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015019 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15020 msm_routing_get_port_mixer,
15021 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015022 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15023 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015024 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15025 msm_routing_get_port_mixer,
15026 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015027 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15028 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015029 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15030 msm_routing_get_port_mixer,
15031 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015032 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15033 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015034 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15035 msm_routing_get_port_mixer,
15036 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015037 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15038 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015039 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15040 msm_routing_get_port_mixer,
15041 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015042 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15043 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015044 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15045 msm_routing_get_port_mixer,
15046 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015047 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15048 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015049 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15050 msm_routing_get_port_mixer,
15051 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015052 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15053 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015054 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15055 msm_routing_get_port_mixer,
15056 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015057 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15058 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015059 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15060 msm_routing_get_port_mixer,
15061 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015062 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15063 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015064 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15065 msm_routing_get_port_mixer,
15066 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015067 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15068 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015069 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15070 msm_routing_get_port_mixer,
15071 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015072 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15073 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015074 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15075 msm_routing_get_port_mixer,
15076 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015077 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15078 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015079 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15080 msm_routing_get_port_mixer,
15081 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015082 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15083 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015084 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15085 msm_routing_get_port_mixer,
15086 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015087 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15088 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015089 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15090 msm_routing_get_port_mixer,
15091 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015092};
15093
15094static const struct snd_kcontrol_new quat_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015095 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15096 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015097 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15098 msm_routing_get_port_mixer,
15099 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015100 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15101 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015102 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15103 msm_routing_get_port_mixer,
15104 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015105 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15106 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015107 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15108 msm_routing_get_port_mixer,
15109 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015110 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15111 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015112 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15113 msm_routing_get_port_mixer,
15114 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015115 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15116 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015117 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15118 msm_routing_get_port_mixer,
15119 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015120 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15121 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015122 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15123 msm_routing_get_port_mixer,
15124 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015125 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15126 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015127 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15128 msm_routing_get_port_mixer,
15129 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015130 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15131 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015132 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15133 msm_routing_get_port_mixer,
15134 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015135 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15136 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015137 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15138 msm_routing_get_port_mixer,
15139 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015140 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15141 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015142 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15143 msm_routing_get_port_mixer,
15144 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015145 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15146 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015147 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15148 msm_routing_get_port_mixer,
15149 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015150 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15151 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015152 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15153 msm_routing_get_port_mixer,
15154 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015155 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15156 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015157 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15158 msm_routing_get_port_mixer,
15159 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015160 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15161 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015162 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15163 msm_routing_get_port_mixer,
15164 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015165 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15166 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015167 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15168 msm_routing_get_port_mixer,
15169 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015170 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15171 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015172 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15173 msm_routing_get_port_mixer,
15174 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015175 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15176 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015177 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15178 msm_routing_get_port_mixer,
15179 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015180 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15181 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015182 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15183 msm_routing_get_port_mixer,
15184 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015185 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15186 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015187 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15188 msm_routing_get_port_mixer,
15189 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015190 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15191 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015192 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15193 msm_routing_get_port_mixer,
15194 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015195};
15196
15197static const struct snd_kcontrol_new quat_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015198 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15199 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015200 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15201 msm_routing_get_port_mixer,
15202 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015203 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15204 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015205 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15206 msm_routing_get_port_mixer,
15207 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015208 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15209 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015210 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15211 msm_routing_get_port_mixer,
15212 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015213 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15214 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015215 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15216 msm_routing_get_port_mixer,
15217 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015218 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15219 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015220 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15221 msm_routing_get_port_mixer,
15222 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015223 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15224 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015225 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15226 msm_routing_get_port_mixer,
15227 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015228 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15229 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015230 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15231 msm_routing_get_port_mixer,
15232 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015233 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15234 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015235 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15236 msm_routing_get_port_mixer,
15237 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015238 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15239 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015240 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15241 msm_routing_get_port_mixer,
15242 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015243 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15244 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015245 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15246 msm_routing_get_port_mixer,
15247 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015248 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15249 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015250 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15251 msm_routing_get_port_mixer,
15252 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015253 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15254 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015255 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15256 msm_routing_get_port_mixer,
15257 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015258 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15259 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015260 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15261 msm_routing_get_port_mixer,
15262 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015263 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15264 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015265 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15266 msm_routing_get_port_mixer,
15267 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015268 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15269 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015270 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15271 msm_routing_get_port_mixer,
15272 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015273 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15274 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015275 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15276 msm_routing_get_port_mixer,
15277 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015278 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15279 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015280 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15281 msm_routing_get_port_mixer,
15282 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015283 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15284 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015285 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15286 msm_routing_get_port_mixer,
15287 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015288 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15289 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015290 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15291 msm_routing_get_port_mixer,
15292 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015293 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15294 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015295 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15296 msm_routing_get_port_mixer,
15297 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015298};
15299
15300static const struct snd_kcontrol_new quat_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015301 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15302 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015303 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15304 msm_routing_get_port_mixer,
15305 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015306 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15307 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015308 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15309 msm_routing_get_port_mixer,
15310 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015311 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15312 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015313 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15314 msm_routing_get_port_mixer,
15315 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015316 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15317 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015318 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15319 msm_routing_get_port_mixer,
15320 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015321 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15322 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015323 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15324 msm_routing_get_port_mixer,
15325 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015326 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15327 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015328 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15329 msm_routing_get_port_mixer,
15330 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015331 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15332 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015333 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15334 msm_routing_get_port_mixer,
15335 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015336 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15337 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015338 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15339 msm_routing_get_port_mixer,
15340 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015341 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15342 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015343 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15344 msm_routing_get_port_mixer,
15345 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015346 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15347 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015348 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15349 msm_routing_get_port_mixer,
15350 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015351 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15352 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015353 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15354 msm_routing_get_port_mixer,
15355 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015356 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15357 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015358 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15359 msm_routing_get_port_mixer,
15360 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015361 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15362 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015363 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15364 msm_routing_get_port_mixer,
15365 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015366 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15367 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015368 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15369 msm_routing_get_port_mixer,
15370 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015371 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15372 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015373 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15374 msm_routing_get_port_mixer,
15375 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015376 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15377 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015378 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15379 msm_routing_get_port_mixer,
15380 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015381 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15382 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015383 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15384 msm_routing_get_port_mixer,
15385 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015386 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15387 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015388 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15389 msm_routing_get_port_mixer,
15390 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015391 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15392 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015393 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15394 msm_routing_get_port_mixer,
15395 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015396 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15397 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015398 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15399 msm_routing_get_port_mixer,
15400 msm_routing_put_port_mixer),
15401};
15402
15403static const struct snd_kcontrol_new quin_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015404 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15405 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015406 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15407 msm_routing_get_port_mixer,
15408 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015409 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15410 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015411 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15412 msm_routing_get_port_mixer,
15413 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015414 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15415 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015416 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15417 msm_routing_get_port_mixer,
15418 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015419 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15420 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015421 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15422 msm_routing_get_port_mixer,
15423 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015424 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15425 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015426 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15427 msm_routing_get_port_mixer,
15428 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015429 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15430 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015431 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15432 msm_routing_get_port_mixer,
15433 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015434 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15435 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015436 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15437 msm_routing_get_port_mixer,
15438 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015439 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15440 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015441 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15442 msm_routing_get_port_mixer,
15443 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015444 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15445 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015446 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15447 msm_routing_get_port_mixer,
15448 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015449 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15450 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015451 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15452 msm_routing_get_port_mixer,
15453 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015454 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15455 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015456 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15457 msm_routing_get_port_mixer,
15458 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015459 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15460 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015461 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15462 msm_routing_get_port_mixer,
15463 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015464 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15465 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015466 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15467 msm_routing_get_port_mixer,
15468 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015469 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15470 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015471 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15472 msm_routing_get_port_mixer,
15473 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015474 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15475 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015476 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15477 msm_routing_get_port_mixer,
15478 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015479 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15480 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015481 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15482 msm_routing_get_port_mixer,
15483 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015484 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15485 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015486 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15487 msm_routing_get_port_mixer,
15488 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015489 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15490 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015491 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15492 msm_routing_get_port_mixer,
15493 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015494 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15495 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015496 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15497 msm_routing_get_port_mixer,
15498 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015499 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15500 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015501 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15502 msm_routing_get_port_mixer,
15503 msm_routing_put_port_mixer),
15504};
15505
15506static const struct snd_kcontrol_new quin_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015507 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15508 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015509 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15510 msm_routing_get_port_mixer,
15511 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015512 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15513 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015514 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15515 msm_routing_get_port_mixer,
15516 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015517 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15518 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015519 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15520 msm_routing_get_port_mixer,
15521 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015522 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15523 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015524 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15525 msm_routing_get_port_mixer,
15526 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015527 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15528 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015529 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15530 msm_routing_get_port_mixer,
15531 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015532 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15533 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015534 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15535 msm_routing_get_port_mixer,
15536 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015537 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15538 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015539 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15540 msm_routing_get_port_mixer,
15541 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015542 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15543 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015544 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15545 msm_routing_get_port_mixer,
15546 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015547 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15548 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015549 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15550 msm_routing_get_port_mixer,
15551 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015552 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15553 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015554 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15555 msm_routing_get_port_mixer,
15556 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015557 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15558 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015559 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15560 msm_routing_get_port_mixer,
15561 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015562 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15563 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015564 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15565 msm_routing_get_port_mixer,
15566 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015567 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15568 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015569 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15570 msm_routing_get_port_mixer,
15571 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015572 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15573 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015574 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15575 msm_routing_get_port_mixer,
15576 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015577 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15578 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015579 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15580 msm_routing_get_port_mixer,
15581 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015582 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15583 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015584 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15585 msm_routing_get_port_mixer,
15586 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015587 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15588 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015589 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15590 msm_routing_get_port_mixer,
15591 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015592 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15593 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015594 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15595 msm_routing_get_port_mixer,
15596 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015597 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15598 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015599 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15600 msm_routing_get_port_mixer,
15601 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015602 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15603 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015604 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15605 msm_routing_get_port_mixer,
15606 msm_routing_put_port_mixer),
15607};
15608
15609static const struct snd_kcontrol_new quin_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015610 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15611 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015612 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15613 msm_routing_get_port_mixer,
15614 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015615 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15616 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015617 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15618 msm_routing_get_port_mixer,
15619 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015620 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15621 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015622 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15623 msm_routing_get_port_mixer,
15624 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015625 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15626 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015627 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15628 msm_routing_get_port_mixer,
15629 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015630 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15631 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015632 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15633 msm_routing_get_port_mixer,
15634 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015635 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15636 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015637 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15638 msm_routing_get_port_mixer,
15639 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015640 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15641 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015642 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15643 msm_routing_get_port_mixer,
15644 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015645 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15646 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015647 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15648 msm_routing_get_port_mixer,
15649 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015650 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15651 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015652 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15653 msm_routing_get_port_mixer,
15654 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015655 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15656 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015657 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15658 msm_routing_get_port_mixer,
15659 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015660 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15661 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015662 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15663 msm_routing_get_port_mixer,
15664 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015665 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15666 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015667 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15668 msm_routing_get_port_mixer,
15669 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015670 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15671 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015672 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15673 msm_routing_get_port_mixer,
15674 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015675 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15676 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015677 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15678 msm_routing_get_port_mixer,
15679 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015680 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15681 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015682 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15683 msm_routing_get_port_mixer,
15684 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015685 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15686 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015687 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15688 msm_routing_get_port_mixer,
15689 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015690 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15691 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015692 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15693 msm_routing_get_port_mixer,
15694 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015695 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15696 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015697 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15698 msm_routing_get_port_mixer,
15699 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015700 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15701 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015702 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15703 msm_routing_get_port_mixer,
15704 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015705 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15706 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015707 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15708 msm_routing_get_port_mixer,
15709 msm_routing_put_port_mixer),
15710};
15711
15712static const struct snd_kcontrol_new quin_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015713 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15714 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015715 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15716 msm_routing_get_port_mixer,
15717 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015718 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15719 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015720 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15721 msm_routing_get_port_mixer,
15722 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015723 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15724 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015725 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15726 msm_routing_get_port_mixer,
15727 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015728 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15729 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015730 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15731 msm_routing_get_port_mixer,
15732 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015733 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15734 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015735 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15736 msm_routing_get_port_mixer,
15737 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015738 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15739 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015740 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15741 msm_routing_get_port_mixer,
15742 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015743 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15744 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015745 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15746 msm_routing_get_port_mixer,
15747 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015748 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15749 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015750 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15751 msm_routing_get_port_mixer,
15752 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015753 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15754 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015755 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15756 msm_routing_get_port_mixer,
15757 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015758 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15759 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015760 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15761 msm_routing_get_port_mixer,
15762 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015763 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15764 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015765 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15766 msm_routing_get_port_mixer,
15767 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015768 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15769 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015770 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15771 msm_routing_get_port_mixer,
15772 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015773 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15774 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015775 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15776 msm_routing_get_port_mixer,
15777 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015778 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15779 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015780 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15781 msm_routing_get_port_mixer,
15782 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015783 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15784 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015785 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15786 msm_routing_get_port_mixer,
15787 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015788 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15789 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015790 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15791 msm_routing_get_port_mixer,
15792 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015793 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15794 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015795 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15796 msm_routing_get_port_mixer,
15797 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015798 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15799 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015800 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15801 msm_routing_get_port_mixer,
15802 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015803 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15804 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015805 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15806 msm_routing_get_port_mixer,
15807 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015808 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15809 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015810 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15811 msm_routing_get_port_mixer,
15812 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015813};
15814
15815static const struct snd_kcontrol_new tert_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015816 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15817 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015818 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15819 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015820 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15821 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015822 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15823 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015824 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
15825 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015826 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
15827 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015828 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15829 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015830 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15831 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015832 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
15833 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015834 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15835 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015836 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15837 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015838 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15839 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015840 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
15841 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015842 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
15843 msm_routing_put_port_mixer),
15844};
15845
15846static const struct snd_kcontrol_new sec_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015847 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15848 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015849 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15850 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015851 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15852 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015853 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15854 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015855 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15856 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015857 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15858 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015859 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15860 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015861 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15862 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015863 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
15864 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015865 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15866 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015867 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
15868 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015869 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
15870 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015871 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15872 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015873 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
15874 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015875 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
15876 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015877 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
15878 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015879 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15880 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080015881 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
15882 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015883};
15884
15885static const struct snd_kcontrol_new lsm1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015886 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
15887 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015888 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15889 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015890 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
15891 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015892 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15893 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015894 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
15895 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015896 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15897 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015898 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
15899 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015900 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15901 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015902 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
15903 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015904 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15905 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015906 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15907 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015908 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15909 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015910 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15911 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015912 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15913 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015914 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
15915 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015916 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15917 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053015918 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
15919 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
15920 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15921 msm_routing_put_listen_mixer),
15922 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
15923 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
15924 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15925 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015926};
15927
15928static const struct snd_kcontrol_new lsm2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015929 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
15930 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015931 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
15932 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015933 SOC_DOUBLE_EXT("SLIMBUS_1_TX",
15934 SND_SOC_NOPM,
15935 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015936 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
15937 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015938 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
15939 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015940 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
15941 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015942 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
15943 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015944 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
15945 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015946 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
15947 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015948 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
15949 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015950 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15951 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015952 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
15953 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015954 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15955 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015956 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
15957 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015958 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
15959 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015960 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
15961 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053015962 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
15963 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
15964 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
15965 msm_routing_put_listen_mixer),
15966 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
15967 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
15968 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
15969 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015970};
15971
15972static const struct snd_kcontrol_new lsm3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015973 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
15974 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015975 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
15976 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015977 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
15978 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015979 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
15980 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015981 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
15982 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015983 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
15984 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015985 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
15986 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015987 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
15988 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015989 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
15990 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015991 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
15992 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015993 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15994 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015995 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
15996 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015997 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15998 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015999 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16000 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016001 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16002 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016003 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16004 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016005 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16006 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16007 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16008 msm_routing_put_listen_mixer),
16009 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16010 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16011 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16012 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016013};
16014
16015static const struct snd_kcontrol_new lsm4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016016 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16017 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016018 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16019 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016020 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16021 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016022 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16023 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016024 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16025 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016026 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16027 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016028 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16029 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016030 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16031 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016032 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16033 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016034 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16035 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016036 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16037 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016038 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16039 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016040 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16041 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016042 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16043 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016044 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16045 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016046 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16047 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016048 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16049 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16050 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16051 msm_routing_put_listen_mixer),
16052 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16053 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16054 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16055 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016056};
16057
16058static const struct snd_kcontrol_new lsm5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016059 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16060 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016061 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16062 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016063 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16064 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016065 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16066 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016067 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16068 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016069 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16070 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016071 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16072 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016073 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16074 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016075 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16076 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016077 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16078 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016079 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16080 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016081 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16082 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016083 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16084 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016085 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16086 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016087 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16088 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016089 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16090 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016091 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16092 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16093 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16094 msm_routing_put_listen_mixer),
16095 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16096 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16097 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16098 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016099};
16100
16101static const struct snd_kcontrol_new lsm6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016102 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16103 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016104 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16105 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016106 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16107 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016108 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16109 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016110 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16111 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016112 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16113 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016114 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16115 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016116 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16117 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016118 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16119 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016120 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16121 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016122 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16123 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016124 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16125 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016126 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16127 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016128 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16129 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016130 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16131 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016132 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16133 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016134 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16135 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16136 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16137 msm_routing_put_listen_mixer),
16138 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16139 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16140 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16141 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016142};
16143
16144static const struct snd_kcontrol_new lsm7_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016145 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16146 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016147 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16148 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016149 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16150 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016151 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16152 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016153 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16154 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016155 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16156 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016157 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16158 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016159 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16160 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016161 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16162 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016163 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16164 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016165 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16166 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016167 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16168 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016169 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16170 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016171 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16172 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016173 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16174 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016175 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16176 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016177 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16178 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16179 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16180 msm_routing_put_listen_mixer),
16181 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16182 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16183 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16184 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016185};
16186
16187static const struct snd_kcontrol_new lsm8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016188 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16189 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016190 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16191 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016192 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16193 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016194 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16195 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016196 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16197 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016198 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16199 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016200 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16201 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016202 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16203 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016204 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16205 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016206 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16207 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016208 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16209 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016210 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16211 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016212 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16213 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016214 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16215 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016216 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16217 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016218 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16219 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016220 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16221 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16222 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16223 msm_routing_put_listen_mixer),
16224 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16225 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16226 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16227 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016228};
16229
16230static const struct snd_kcontrol_new slim_fm_switch_mixer_controls =
16231 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16232 0, 1, 0, msm_routing_get_switch_mixer,
16233 msm_routing_put_switch_mixer);
16234
16235static const struct snd_kcontrol_new slim1_fm_switch_mixer_controls =
16236 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16237 0, 1, 0, msm_routing_get_switch_mixer,
16238 msm_routing_put_switch_mixer);
16239
16240static const struct snd_kcontrol_new slim3_fm_switch_mixer_controls =
16241 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16242 0, 1, 0, msm_routing_get_switch_mixer,
16243 msm_routing_put_switch_mixer);
16244
16245static const struct snd_kcontrol_new slim4_fm_switch_mixer_controls =
16246 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16247 0, 1, 0, msm_routing_get_switch_mixer,
16248 msm_routing_put_switch_mixer);
16249
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053016250static const struct snd_kcontrol_new cdc_dma_fm_switch_mixer_controls =
16251 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16252 0, 1, 0, msm_routing_get_switch_mixer,
16253 msm_routing_put_switch_mixer);
16254
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016255static const struct snd_kcontrol_new slim6_fm_switch_mixer_controls =
16256 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16257 0, 1, 0, msm_routing_get_switch_mixer,
16258 msm_routing_put_switch_mixer);
16259
16260static const struct snd_kcontrol_new pcm_rx_switch_mixer_controls =
16261 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16262 0, 1, 0, msm_routing_get_fm_pcmrx_switch_mixer,
16263 msm_routing_put_fm_pcmrx_switch_mixer);
16264
16265static const struct snd_kcontrol_new int0_mi2s_rx_switch_mixer_controls =
16266 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16267 0, 1, 0, msm_routing_get_int0_mi2s_switch_mixer,
16268 msm_routing_put_int0_mi2s_switch_mixer);
16269
16270static const struct snd_kcontrol_new int4_mi2s_rx_switch_mixer_controls =
16271 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16272 0, 1, 0, msm_routing_get_int4_mi2s_switch_mixer,
16273 msm_routing_put_int4_mi2s_switch_mixer);
16274
16275static const struct snd_kcontrol_new pri_mi2s_rx_switch_mixer_controls =
16276 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16277 0, 1, 0, msm_routing_get_pri_mi2s_switch_mixer,
16278 msm_routing_put_pri_mi2s_switch_mixer);
16279
16280static const struct snd_kcontrol_new sec_mi2s_rx_switch_mixer_controls =
16281 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16282 0, 1, 0, msm_routing_get_sec_mi2s_switch_mixer,
16283 msm_routing_put_sec_mi2s_switch_mixer);
16284
16285static const struct snd_kcontrol_new tert_mi2s_rx_switch_mixer_controls =
16286 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16287 0, 1, 0, msm_routing_get_tert_mi2s_switch_mixer,
16288 msm_routing_put_tert_mi2s_switch_mixer);
16289
16290static const struct snd_kcontrol_new quat_mi2s_rx_switch_mixer_controls =
16291 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16292 0, 1, 0, msm_routing_get_quat_mi2s_switch_mixer,
16293 msm_routing_put_quat_mi2s_switch_mixer);
16294
Rohit Kumara5077932017-09-10 22:05:05 +053016295static const struct snd_kcontrol_new quin_mi2s_rx_switch_mixer_controls =
16296 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16297 0, 1, 0, msm_routing_get_quin_mi2s_switch_mixer,
16298 msm_routing_put_quin_mi2s_switch_mixer);
16299
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016300static const struct snd_kcontrol_new hfp_pri_aux_switch_mixer_controls =
16301 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16302 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16303 msm_routing_put_hfp_switch_mixer);
16304
16305static const struct snd_kcontrol_new hfp_aux_switch_mixer_controls =
16306 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16307 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16308 msm_routing_put_hfp_switch_mixer);
16309
16310static const struct snd_kcontrol_new hfp_int_switch_mixer_controls =
16311 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16312 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16313 msm_routing_put_hfp_switch_mixer);
16314
16315static const struct snd_kcontrol_new hfp_slim7_switch_mixer_controls =
16316 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16317 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16318 msm_routing_put_hfp_switch_mixer);
16319
16320static const struct snd_kcontrol_new usb_switch_mixer_controls =
16321 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16322 0, 1, 0, msm_routing_get_usb_switch_mixer,
16323 msm_routing_put_usb_switch_mixer);
16324
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080016325static const struct snd_kcontrol_new a2dp_slim7_switch_mixer_controls =
16326 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16327 0, 1, 0, msm_routing_a2dp_switch_mixer_get,
16328 msm_routing_a2dp_switch_mixer_put);
16329
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016330static const struct soc_enum lsm_port_enum =
16331 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_port_text), lsm_port_text);
16332
16333static const char * const lsm_func_text[] = {
16334 "None", "AUDIO", "BEACON", "ULTRASOUND", "SWAUDIO",
16335};
16336static const struct soc_enum lsm_func_enum =
16337 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_func_text), lsm_func_text);
16338
16339static const struct snd_kcontrol_new lsm_controls[] = {
16340 /* kcontrol of lsm_function */
16341 SOC_ENUM_EXT(SLIMBUS_0_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16342 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16343 SOC_ENUM_EXT(SLIMBUS_1_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16344 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16345 SOC_ENUM_EXT(SLIMBUS_2_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16346 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16347 SOC_ENUM_EXT(SLIMBUS_3_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16348 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16349 SOC_ENUM_EXT(SLIMBUS_4_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16350 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16351 SOC_ENUM_EXT(SLIMBUS_5_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16352 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16353 SOC_ENUM_EXT(TERT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16354 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16355 SOC_ENUM_EXT(QUAT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16356 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16357 SOC_ENUM_EXT(INT3_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16358 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16359 /* kcontrol of lsm_port */
16360 SOC_ENUM_EXT("LSM1 Port", lsm_port_enum,
16361 msm_routing_lsm_port_get,
16362 msm_routing_lsm_port_put),
16363 SOC_ENUM_EXT("LSM2 Port", lsm_port_enum,
16364 msm_routing_lsm_port_get,
16365 msm_routing_lsm_port_put),
16366 SOC_ENUM_EXT("LSM3 Port", lsm_port_enum,
16367 msm_routing_lsm_port_get,
16368 msm_routing_lsm_port_put),
16369 SOC_ENUM_EXT("LSM4 Port", lsm_port_enum,
16370 msm_routing_lsm_port_get,
16371 msm_routing_lsm_port_put),
16372 SOC_ENUM_EXT("LSM5 Port", lsm_port_enum,
16373 msm_routing_lsm_port_get,
16374 msm_routing_lsm_port_put),
16375 SOC_ENUM_EXT("LSM6 Port", lsm_port_enum,
16376 msm_routing_lsm_port_get,
16377 msm_routing_lsm_port_put),
16378 SOC_ENUM_EXT("LSM7 Port", lsm_port_enum,
16379 msm_routing_lsm_port_get,
16380 msm_routing_lsm_port_put),
16381 SOC_ENUM_EXT("LSM8 Port", lsm_port_enum,
16382 msm_routing_lsm_port_get,
16383 msm_routing_lsm_port_put),
16384};
16385
16386static const char * const aanc_slim_0_rx_text[] = {
16387 "ZERO", "SLIMBUS_0_TX", "SLIMBUS_1_TX", "SLIMBUS_2_TX", "SLIMBUS_3_TX",
16388 "SLIMBUS_4_TX", "SLIMBUS_5_TX", "SLIMBUS_6_TX"
16389};
16390
16391static const struct soc_enum aanc_slim_0_rx_enum =
16392 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(aanc_slim_0_rx_text),
16393 aanc_slim_0_rx_text);
16394
16395static const struct snd_kcontrol_new aanc_slim_0_rx_mux[] = {
16396 SOC_ENUM_EXT("AANC_SLIM_0_RX MUX", aanc_slim_0_rx_enum,
16397 msm_routing_slim_0_rx_aanc_mux_get,
16398 msm_routing_slim_0_rx_aanc_mux_put)
16399};
16400
Sudheer Papothic07b37a2018-05-04 05:56:47 +053016401static int msm_routing_aanc_noise_level_get(struct snd_kcontrol *kcontrol,
16402 struct snd_ctl_elem_value *ucontrol)
16403{
16404 ucontrol->value.integer.value[0] = aanc_level;
16405
16406 return 0;
16407}
16408
16409static int msm_routing_aanc_noise_level_put(struct snd_kcontrol *kcontrol,
16410 struct snd_ctl_elem_value *ucontrol)
16411{
16412 int ret = 0;
16413
16414 mutex_lock(&routing_lock);
16415 aanc_level = ucontrol->value.integer.value[0];
16416 pr_debug("%s: value: %ld\n",
16417 __func__, ucontrol->value.integer.value[0]);
16418 ret = afe_set_aanc_noise_level(aanc_level);
16419 mutex_unlock(&routing_lock);
16420
16421 return ret;
16422}
16423
16424static const struct snd_kcontrol_new aanc_noise_level[] = {
16425 SOC_SINGLE_EXT("AANC Noise Level", SND_SOC_NOPM, 0, 255,
16426 0, msm_routing_aanc_noise_level_get, msm_routing_aanc_noise_level_put)
16427};
16428
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016429static int msm_routing_get_stereo_to_custom_stereo_control(
16430 struct snd_kcontrol *kcontrol,
16431 struct snd_ctl_elem_value *ucontrol)
16432{
16433 ucontrol->value.integer.value[0] = is_custom_stereo_on;
16434 return 0;
16435}
16436
16437static int msm_routing_put_stereo_to_custom_stereo_control(
16438 struct snd_kcontrol *kcontrol,
16439 struct snd_ctl_elem_value *ucontrol)
16440{
16441 int flag = 0, i = 0, rc = 0, idx = 0;
16442 int be_index = 0, port_id, topo_id;
16443 unsigned int session_id = 0;
16444 uint16_t op_FL_ip_FL_weight = 0;
16445 uint16_t op_FL_ip_FR_weight = 0;
16446 uint16_t op_FR_ip_FL_weight = 0;
16447 uint16_t op_FR_ip_FR_weight = 0;
16448
16449 flag = ucontrol->value.integer.value[0];
16450 pr_debug("%s E flag %d\n", __func__, flag);
16451
16452 if ((is_custom_stereo_on && flag) || (!is_custom_stereo_on && !flag)) {
16453 pr_err("%s: is_custom_stereo_on %d, flag %d\n",
16454 __func__, is_custom_stereo_on, flag);
16455 return 0;
16456 }
16457 is_custom_stereo_on = flag ? true : false;
16458 pr_debug("%s:is_custom_stereo_on %d\n", __func__, is_custom_stereo_on);
16459 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
16460 port_id = msm_bedais[be_index].port_id;
16461 if (!msm_bedais[be_index].active)
16462 continue;
16463 if ((port_id != SLIMBUS_0_RX) &&
16464 (port_id != RT_PROXY_PORT_001_RX) &&
16465 (port_id != AFE_PORT_ID_PRIMARY_MI2S_RX) &&
16466 (port_id != AFE_PORT_ID_INT4_MI2S_RX))
16467 continue;
16468
16469 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
16470 MSM_FRONTEND_DAI_MM_SIZE) {
16471 if (fe_dai_map[i][SESSION_TYPE_RX].perf_mode !=
16472 LEGACY_PCM_MODE)
16473 goto skip_send_custom_stereo;
16474 session_id =
16475 fe_dai_map[i][SESSION_TYPE_RX].strm_id;
16476 if (is_custom_stereo_on) {
16477 op_FL_ip_FL_weight =
16478 Q14_GAIN_ZERO_POINT_FIVE;
16479 op_FL_ip_FR_weight =
16480 Q14_GAIN_ZERO_POINT_FIVE;
16481 op_FR_ip_FL_weight =
16482 Q14_GAIN_ZERO_POINT_FIVE;
16483 op_FR_ip_FR_weight =
16484 Q14_GAIN_ZERO_POINT_FIVE;
16485 } else {
16486 op_FL_ip_FL_weight = Q14_GAIN_UNITY;
16487 op_FL_ip_FR_weight = 0;
16488 op_FR_ip_FL_weight = 0;
16489 op_FR_ip_FR_weight = Q14_GAIN_UNITY;
16490 }
16491 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
16492 unsigned long copp =
16493 session_copp_map[i]
16494 [SESSION_TYPE_RX][be_index];
16495 if (!test_bit(idx, &copp))
16496 goto skip_send_custom_stereo;
16497 topo_id = adm_get_topology_for_port_copp_idx(
16498 msm_bedais[be_index].port_id, idx);
16499 if (topo_id < 0)
16500 pr_debug("%s:Err:custom stereo topo %d",
16501 __func__, topo_id);
16502 pr_debug("idx %d\n", idx);
16503 if (topo_id == DS2_ADM_COPP_TOPOLOGY_ID)
16504 rc = msm_ds2_dap_set_custom_stereo_onoff
16505 (msm_bedais[be_index].port_id,
16506 idx, is_custom_stereo_on);
16507 else if (topo_id == DOLBY_ADM_COPP_TOPOLOGY_ID)
16508 rc = dolby_dap_set_custom_stereo_onoff(
16509 msm_bedais[be_index].port_id,
16510 idx, is_custom_stereo_on);
16511 else
16512 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd
16513 (msm_bedais[be_index].port_id,
16514 idx, session_id,
16515 op_FL_ip_FL_weight,
16516 op_FL_ip_FR_weight,
16517 op_FR_ip_FL_weight,
16518 op_FR_ip_FR_weight);
16519 if (rc < 0)
16520skip_send_custom_stereo:
16521 pr_err("%s: err setting custom stereo\n",
16522 __func__);
16523 }
16524
16525 }
16526 }
16527 return 0;
16528}
16529
16530static const struct snd_kcontrol_new stereo_to_custom_stereo_controls[] = {
16531 SOC_SINGLE_EXT("Set Custom Stereo OnOff", SND_SOC_NOPM, 0,
16532 1, 0, msm_routing_get_stereo_to_custom_stereo_control,
16533 msm_routing_put_stereo_to_custom_stereo_control),
16534};
16535
16536static int msm_routing_get_app_type_cfg_control(struct snd_kcontrol *kcontrol,
16537 struct snd_ctl_elem_value *ucontrol)
16538{
16539 return 0;
16540}
16541
16542static int msm_routing_put_app_type_cfg_control(struct snd_kcontrol *kcontrol,
16543 struct snd_ctl_elem_value *ucontrol)
16544{
16545 int i = 0, j;
16546 int num_app_types = ucontrol->value.integer.value[i++];
16547
16548 pr_debug("%s\n", __func__);
16549
16550 memset(app_type_cfg, 0, MAX_APP_TYPES*
16551 sizeof(struct msm_pcm_routing_app_type_data));
16552 if (num_app_types > MAX_APP_TYPES) {
16553 pr_err("%s: number of app types exceed the max supported\n",
16554 __func__);
16555 return -EINVAL;
16556 }
16557 for (j = 0; j < num_app_types; j++) {
16558 app_type_cfg[j].app_type =
16559 ucontrol->value.integer.value[i++];
16560 app_type_cfg[j].sample_rate =
16561 ucontrol->value.integer.value[i++];
16562 app_type_cfg[j].bit_width =
16563 ucontrol->value.integer.value[i++];
16564 }
16565
16566 return 0;
16567}
16568
16569static int msm_routing_put_app_type_gain_control(struct snd_kcontrol *kcontrol,
16570 struct snd_ctl_elem_value *ucontrol)
16571{
16572 int j, fe_id, be_id, port_type;
16573 int ret = 0;
16574 unsigned long copp;
16575 struct msm_pcm_routing_bdai_data *bedai;
16576 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
16577 SESSION_TYPE_RX;
16578 int app_type = ucontrol->value.integer.value[1];
16579 int gain = (ucontrol->value.integer.value[2] +
16580 ucontrol->value.integer.value[3])/2;
16581
16582 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
16583 MSM_AFE_PORT_TYPE_TX;
16584
16585 mutex_lock(&routing_lock);
16586 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
16587 if (is_be_dai_extproc(be_id))
16588 continue;
16589
16590 bedai = &msm_bedais[be_id];
16591 if (afe_get_port_type(bedai->port_id) != port_type)
16592 continue;
16593
16594 if (!bedai->active)
16595 continue;
16596
16597 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
16598 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
16599 continue;
16600
16601 if (app_type !=
16602 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
16603 continue;
16604
16605 copp = session_copp_map[fe_id][dir][be_id];
16606 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
16607 if (!test_bit(j, &copp))
16608 continue;
16609 ret |= adm_set_volume(bedai->port_id, j, gain);
16610 }
16611 }
16612 }
16613 mutex_unlock(&routing_lock);
16614 return ret ? -EINVAL : 0;
16615}
16616
16617static const struct snd_kcontrol_new app_type_cfg_controls[] = {
16618 SOC_SINGLE_MULTI_EXT("App Type Config", SND_SOC_NOPM, 0,
16619 0xFFFFFFFF, 0, 128, msm_routing_get_app_type_cfg_control,
16620 msm_routing_put_app_type_cfg_control),
16621 SOC_SINGLE_MULTI_EXT("App Type Gain", SND_SOC_NOPM, 0,
16622 0x2000, 0, 4, NULL, msm_routing_put_app_type_gain_control)
16623};
16624
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070016625static int msm_routing_put_module_cfg_control(struct snd_kcontrol *kcontrol,
16626 struct snd_ctl_elem_value *ucontrol)
16627{
16628 int copp_idx, fe_id, be_id, port_type;
16629 int ret = 0;
16630 unsigned long copp;
16631 struct msm_pcm_routing_bdai_data *bedai;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016632 u8 *packed_params = NULL;
16633 struct param_hdr_v3 param_hdr;
16634 u32 packed_param_size = (sizeof(struct param_hdr_v3) +
16635 sizeof(uint32_t));
16636
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070016637 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
16638 SESSION_TYPE_RX;
16639 int app_type = ucontrol->value.integer.value[1];
16640 int module_id = ucontrol->value.integer.value[2];
16641 int instance_id = ucontrol->value.integer.value[3];
16642 int param_id = ucontrol->value.integer.value[4];
16643 int param_value = ucontrol->value.integer.value[5];
16644
16645 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
16646 MSM_AFE_PORT_TYPE_TX;
16647 pr_debug("%s app_type:%d mod_id:%d instance_id:%d param_id:%d value:%d\n",
16648 __func__, app_type, module_id,
16649 instance_id, param_id, param_value);
16650
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016651 packed_params = kzalloc(packed_param_size, GFP_KERNEL);
16652 if (!packed_params)
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070016653 return -ENOMEM;
16654
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016655 memset(&param_hdr, 0, sizeof(param_hdr));
16656 param_hdr.module_id = module_id;
16657 param_hdr.instance_id = instance_id;
16658 param_hdr.param_id = param_id;
16659 param_hdr.param_size = sizeof(uint32_t);
16660
16661 packed_param_size = 0;
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070016662
16663 mutex_lock(&routing_lock);
16664 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
16665 if (is_be_dai_extproc(be_id))
16666 continue;
16667
16668 bedai = &msm_bedais[be_id];
16669 if (afe_get_port_type(bedai->port_id) != port_type)
16670 continue;
16671
16672 if (!bedai->active)
16673 continue;
16674
16675 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
16676 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
16677 continue;
16678
16679 if (app_type !=
16680 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
16681 continue;
16682
16683 copp = session_copp_map[fe_id][dir][be_id];
16684 for (copp_idx = 0; copp_idx < MAX_COPPS_PER_PORT;
16685 copp_idx++) {
16686 if (!test_bit(copp_idx, &copp))
16687 continue;
16688
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016689 ret = q6common_pack_pp_params(packed_params,
16690 &param_hdr,
16691 (u8 *) &param_value,
16692 &packed_param_size);
16693 if (ret) {
16694 pr_err("%s: Failed to pack params, error %d\n",
16695 __func__, ret);
16696 goto done;
16697 }
16698
16699 ret = adm_set_pp_params(bedai->port_id,
16700 copp_idx, NULL,
16701 packed_params,
16702 packed_param_size);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070016703 if (ret) {
16704 pr_err("%s: Setting param failed with err=%d\n",
16705 __func__, ret);
16706 ret = -EINVAL;
16707 goto done;
16708 }
16709 }
16710 }
16711 }
16712done:
16713 mutex_unlock(&routing_lock);
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016714 kfree(packed_params);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070016715 return ret;
16716}
16717
16718static const struct snd_kcontrol_new module_cfg_controls[] = {
16719 SOC_SINGLE_MULTI_EXT("Audio Effect", SND_SOC_NOPM, 0,
16720 0x2000, 0, 6, NULL, msm_routing_put_module_cfg_control)
16721};
16722
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016723static int msm_routing_get_lsm_app_type_cfg_control(
16724 struct snd_kcontrol *kcontrol,
16725 struct snd_ctl_elem_value *ucontrol)
16726{
16727 return 0;
16728}
16729
16730static int msm_routing_put_lsm_app_type_cfg_control(
16731 struct snd_kcontrol *kcontrol,
16732 struct snd_ctl_elem_value *ucontrol)
16733{
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070016734 int shift = ((struct soc_multi_mixer_control *)
16735 kcontrol->private_value)->shift;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016736 int i = 0, j;
16737 int num_app_types = ucontrol->value.integer.value[i++];
16738
16739 memset(lsm_app_type_cfg, 0, MAX_APP_TYPES*
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070016740 sizeof(struct msm_pcm_routing_app_type_data));
16741
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016742 if (num_app_types > MAX_APP_TYPES) {
16743 pr_err("%s: number of app types exceed the max supported\n",
16744 __func__);
16745 return -EINVAL;
16746 }
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070016747
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016748 for (j = 0; j < num_app_types; j++) {
16749 lsm_app_type_cfg[j].app_type =
16750 ucontrol->value.integer.value[i++];
16751 lsm_app_type_cfg[j].sample_rate =
16752 ucontrol->value.integer.value[i++];
16753 lsm_app_type_cfg[j].bit_width =
16754 ucontrol->value.integer.value[i++];
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070016755 /* Shift of 1 indicates this is V2 mixer control */
16756 if (shift == 1)
16757 lsm_app_type_cfg[j].num_out_channels =
16758 ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016759 }
16760
16761 return 0;
16762}
16763
16764static const struct snd_kcontrol_new lsm_app_type_cfg_controls[] = {
16765 SOC_SINGLE_MULTI_EXT("Listen App Type Config", SND_SOC_NOPM, 0,
16766 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
16767 msm_routing_put_lsm_app_type_cfg_control),
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070016768 SOC_SINGLE_MULTI_EXT("Listen App Type Config V2", SND_SOC_NOPM, 1,
16769 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
16770 msm_routing_put_lsm_app_type_cfg_control),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016771};
16772
16773static int msm_routing_get_use_ds1_or_ds2_control(
16774 struct snd_kcontrol *kcontrol,
16775 struct snd_ctl_elem_value *ucontrol)
16776{
16777 ucontrol->value.integer.value[0] = is_ds2_on;
16778 return 0;
16779}
16780
16781static int msm_routing_put_use_ds1_or_ds2_control(
16782 struct snd_kcontrol *kcontrol,
16783 struct snd_ctl_elem_value *ucontrol)
16784{
16785 is_ds2_on = ucontrol->value.integer.value[0];
16786 return 0;
16787}
16788
16789static const struct snd_kcontrol_new use_ds1_or_ds2_controls[] = {
16790 SOC_SINGLE_EXT("DS2 OnOff", SND_SOC_NOPM, 0,
16791 1, 0, msm_routing_get_use_ds1_or_ds2_control,
16792 msm_routing_put_use_ds1_or_ds2_control),
16793};
16794
16795int msm_routing_get_rms_value_control(struct snd_kcontrol *kcontrol,
16796 struct snd_ctl_elem_value *ucontrol) {
16797 int rc = 0;
16798 int be_idx = 0;
16799 char *param_value;
16800 int *update_param_value;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016801 uint32_t param_size = (RMS_PAYLOAD_LEN + 1) * sizeof(uint32_t);
16802 struct param_hdr_v3 param_hdr;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016803
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016804 param_value = kzalloc(param_size, GFP_KERNEL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016805 if (!param_value)
16806 return -ENOMEM;
16807
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016808 memset(&param_hdr, 0, sizeof(param_hdr));
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016809 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++)
16810 if (msm_bedais[be_idx].port_id == SLIMBUS_0_TX)
16811 break;
16812 if ((be_idx < MSM_BACKEND_DAI_MAX) && msm_bedais[be_idx].active) {
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016813 param_hdr.module_id = RMS_MODULEID_APPI_PASSTHRU;
16814 param_hdr.instance_id = INSTANCE_ID_0;
16815 param_hdr.param_id = RMS_PARAM_FIRST_SAMPLE;
16816 param_hdr.param_size = param_size;
16817 rc = adm_get_pp_params(SLIMBUS_0_TX, 0, ADM_CLIENT_ID_DEFAULT,
16818 NULL, &param_hdr, (u8 *) param_value);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016819 if (rc) {
16820 pr_err("%s: get parameters failed:%d\n", __func__, rc);
16821 kfree(param_value);
16822 return -EINVAL;
16823 }
16824 update_param_value = (int *)param_value;
16825 ucontrol->value.integer.value[0] = update_param_value[0];
16826
16827 pr_debug("%s: FROM DSP value[0] 0x%x\n",
16828 __func__, update_param_value[0]);
16829 }
16830 kfree(param_value);
16831 return 0;
16832}
16833
16834static int msm_voc_session_id_put(struct snd_kcontrol *kcontrol,
16835 struct snd_ctl_elem_value *ucontrol)
16836{
16837 voc_session_id = ucontrol->value.integer.value[0];
16838
16839 pr_debug("%s: voc_session_id=%u\n", __func__, voc_session_id);
16840
16841 return 0;
16842}
16843
16844static int msm_voc_session_id_get(struct snd_kcontrol *kcontrol,
16845 struct snd_ctl_elem_value *ucontrol)
16846{
16847 ucontrol->value.integer.value[0] = voc_session_id;
16848
16849 return 0;
16850}
16851
16852static struct snd_kcontrol_new msm_voc_session_controls[] = {
16853 SOC_SINGLE_MULTI_EXT("Voc VSID", SND_SOC_NOPM, 0,
16854 0xFFFFFFFF, 0, 1, msm_voc_session_id_get,
16855 msm_voc_session_id_put),
16856};
16857
16858static int msm_sound_focus_info(struct snd_kcontrol *kcontrol,
16859 struct snd_ctl_elem_info *uinfo)
16860{
16861 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
16862 uinfo->count = sizeof(struct sound_focus_param);
16863
16864 return 0;
16865}
16866
16867static int msm_voice_sound_focus_put(struct snd_kcontrol *kcontrol,
16868 struct snd_ctl_elem_value *ucontrol)
16869{
16870 int ret = 0;
16871 struct sound_focus_param soundFocusData;
16872
16873 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
16874 sizeof(struct sound_focus_param));
16875 ret = voc_set_sound_focus(soundFocusData);
16876 if (ret) {
16877 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
16878 __func__, ret);
16879
16880 ret = -EINVAL;
16881 }
16882
16883 return ret;
16884}
16885
16886static int msm_voice_sound_focus_get(struct snd_kcontrol *kcontrol,
16887 struct snd_ctl_elem_value *ucontrol)
16888{
16889 int ret = 0;
16890 struct sound_focus_param soundFocusData;
16891
16892 memset(&soundFocusData, 0, sizeof(struct sound_focus_param));
16893
16894 ret = voc_get_sound_focus(&soundFocusData);
16895 if (ret) {
16896 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
16897 __func__, ret);
16898
16899 ret = -EINVAL;
16900 goto done;
16901 }
16902 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
16903 sizeof(struct sound_focus_param));
16904
16905done:
16906 return ret;
16907}
16908
16909static int msm_source_tracking_info(struct snd_kcontrol *kcontrol,
16910 struct snd_ctl_elem_info *uinfo)
16911{
16912 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
16913 uinfo->count = sizeof(struct source_tracking_param);
16914
16915 return 0;
16916}
16917
16918static int msm_voice_source_tracking_get(struct snd_kcontrol *kcontrol,
16919 struct snd_ctl_elem_value *ucontrol)
16920{
Meng Wang92edfde2018-04-24 12:18:37 +080016921 int ret = 0;
16922 struct source_tracking_param sourceTrackingData;
16923
16924 memset(&sourceTrackingData, 0, sizeof(struct source_tracking_param));
16925
16926 ret = voc_get_source_tracking(&sourceTrackingData);
16927 if (ret) {
16928 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
16929 __func__, ret);
16930
16931 ret = -EINVAL;
16932 goto done;
16933 }
16934 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
16935 sizeof(struct source_tracking_param));
16936
16937done:
16938 return ret;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016939}
16940
16941static int msm_audio_get_copp_idx_from_port_id(int port_id, int session_type,
16942 int *copp_idx)
16943{
16944 int i, idx, be_idx;
16945 int ret = 0;
16946 unsigned long copp;
16947
16948 pr_debug("%s: Enter, port_id=%d\n", __func__, port_id);
16949
16950 ret = q6audio_validate_port(port_id);
16951 if (ret < 0) {
16952 pr_err("%s: port validation failed id 0x%x ret %d\n",
16953 __func__, port_id, ret);
16954
16955 ret = -EINVAL;
16956 goto done;
16957 }
16958
16959 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
16960 if (msm_bedais[be_idx].port_id == port_id)
16961 break;
16962 }
16963 if (be_idx >= MSM_BACKEND_DAI_MAX) {
16964 pr_err("%s: Invalid be id %d\n", __func__, be_idx);
16965
16966 ret = -EINVAL;
16967 goto done;
16968 }
16969
16970 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
16971 MSM_FRONTEND_DAI_MM_SIZE) {
16972 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
16973 copp = session_copp_map[i]
16974 [session_type][be_idx];
16975 if (test_bit(idx, &copp))
16976 break;
16977 }
16978 if (idx >= MAX_COPPS_PER_PORT)
16979 continue;
16980 else
16981 break;
16982 }
16983 if (i >= MSM_FRONTEND_DAI_MM_SIZE) {
16984 pr_err("%s: Invalid FE, exiting\n", __func__);
16985
16986 ret = -EINVAL;
16987 goto done;
16988 }
16989 *copp_idx = idx;
16990 pr_debug("%s: copp_idx=%d\n", __func__, *copp_idx);
16991
16992done:
16993 return ret;
16994}
16995
16996static int msm_audio_sound_focus_derive_port_id(struct snd_kcontrol *kcontrol,
16997 const char *prefix, int *port_id)
16998{
16999 int ret = 0;
17000
17001 pr_debug("%s: Enter, prefix:%s\n", __func__, prefix);
17002
17003 /*
17004 * Mixer control name will be like "Sound Focus Audio Tx SLIMBUS_0"
17005 * where the prefix is "Sound Focus Audio Tx ". Skip the prefix
17006 * and compare the string with the backend name to derive the port id.
17007 */
17008 if (!strcmp(kcontrol->id.name + strlen(prefix),
17009 "SLIMBUS_0")) {
17010 *port_id = SLIMBUS_0_TX;
17011 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17012 "TERT_MI2S")) {
17013 *port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
17014 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17015 "INT3_MI2S")) {
17016 *port_id = AFE_PORT_ID_INT3_MI2S_TX;
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053017017 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17018 "VA_CDC_DMA_TX_0")) {
17019 *port_id = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053017020 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17021 "TX_CDC_DMA_TX_3")) {
17022 *port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017023 } else {
17024 pr_err("%s: mixer ctl name=%s, could not derive valid port id\n",
17025 __func__, kcontrol->id.name);
17026
17027 ret = -EINVAL;
17028 goto done;
17029 }
17030 pr_debug("%s: mixer ctl name=%s, derived port_id=%d\n",
17031 __func__, kcontrol->id.name, *port_id);
17032
17033done:
17034 return ret;
17035}
17036
17037static int msm_audio_sound_focus_put(struct snd_kcontrol *kcontrol,
17038 struct snd_ctl_elem_value *ucontrol)
17039{
17040 int ret = 0;
17041 struct sound_focus_param soundFocusData;
17042 int port_id, copp_idx;
17043
17044 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17045 "Sound Focus Audio Tx ", &port_id);
17046 if (ret != 0) {
17047 pr_err("%s: Error in deriving port id, err=%d\n",
17048 __func__, ret);
17049
17050 ret = -EINVAL;
17051 goto done;
17052 }
17053
17054 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17055 &copp_idx);
17056 if (ret) {
17057 pr_err("%s: Could not get copp idx for port_id=%d\n",
17058 __func__, port_id);
17059
17060 ret = -EINVAL;
17061 goto done;
17062 }
17063
17064 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
17065 sizeof(struct sound_focus_param));
17066
17067 ret = adm_set_sound_focus(port_id, copp_idx, soundFocusData);
17068 if (ret) {
17069 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
17070 __func__, ret);
17071
17072 ret = -EINVAL;
17073 goto done;
17074 }
17075
17076done:
17077 return ret;
17078}
17079
17080static int msm_audio_sound_focus_get(struct snd_kcontrol *kcontrol,
17081 struct snd_ctl_elem_value *ucontrol)
17082{
17083 int ret = 0;
17084 struct sound_focus_param soundFocusData;
17085 int port_id, copp_idx;
17086
17087 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17088 "Sound Focus Audio Tx ", &port_id);
17089 if (ret) {
17090 pr_err("%s: Error in deriving port id, err=%d\n",
17091 __func__, ret);
17092
17093 ret = -EINVAL;
17094 goto done;
17095 }
17096
17097 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17098 &copp_idx);
17099 if (ret) {
17100 pr_err("%s: Could not get copp idx for port_id=%d\n",
17101 __func__, port_id);
17102
17103 ret = -EINVAL;
17104 goto done;
17105 }
17106
17107 ret = adm_get_sound_focus(port_id, copp_idx, &soundFocusData);
17108 if (ret) {
17109 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
17110 __func__, ret);
17111
17112 ret = -EINVAL;
17113 goto done;
17114 }
17115
17116 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
17117 sizeof(struct sound_focus_param));
17118
17119done:
17120 return ret;
17121}
17122
17123static int msm_audio_source_tracking_get(struct snd_kcontrol *kcontrol,
17124 struct snd_ctl_elem_value *ucontrol)
17125{
17126 int ret = 0;
17127 struct source_tracking_param sourceTrackingData;
17128 int port_id, copp_idx;
17129
17130 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17131 "Source Tracking Audio Tx ", &port_id);
17132 if (ret) {
17133 pr_err("%s: Error in deriving port id, err=%d\n",
17134 __func__, ret);
17135
17136 ret = -EINVAL;
17137 goto done;
17138 }
17139
17140 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17141 &copp_idx);
17142 if (ret) {
17143 pr_err("%s: Could not get copp idx for port_id=%d\n",
17144 __func__, port_id);
17145
17146 ret = -EINVAL;
17147 goto done;
17148 }
17149
17150 ret = adm_get_source_tracking(port_id, copp_idx, &sourceTrackingData);
17151 if (ret) {
17152 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
17153 __func__, ret);
17154
17155 ret = -EINVAL;
17156 goto done;
17157 }
17158
17159 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
17160 sizeof(struct source_tracking_param));
17161
17162done:
17163 return ret;
17164}
17165
17166static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
17167 {
17168 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17169 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17170 .name = "Sound Focus Voice Tx SLIMBUS_0",
17171 .info = msm_sound_focus_info,
17172 .get = msm_voice_sound_focus_get,
17173 .put = msm_voice_sound_focus_put,
17174 },
17175 {
17176 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17177 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17178 .name = "Source Tracking Voice Tx SLIMBUS_0",
17179 .info = msm_source_tracking_info,
17180 .get = msm_voice_source_tracking_get,
17181 },
17182 {
17183 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17184 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17185 .name = "Sound Focus Audio Tx SLIMBUS_0",
17186 .info = msm_sound_focus_info,
17187 .get = msm_audio_sound_focus_get,
17188 .put = msm_audio_sound_focus_put,
17189 },
17190 {
17191 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17192 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17193 .name = "Source Tracking Audio Tx SLIMBUS_0",
17194 .info = msm_source_tracking_info,
17195 .get = msm_audio_source_tracking_get,
17196 },
17197 {
17198 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17199 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17200 .name = "Sound Focus Voice Tx TERT_MI2S",
17201 .info = msm_sound_focus_info,
17202 .get = msm_voice_sound_focus_get,
17203 .put = msm_voice_sound_focus_put,
17204 },
17205 {
17206 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17207 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17208 .name = "Source Tracking Voice Tx TERT_MI2S",
17209 .info = msm_source_tracking_info,
17210 .get = msm_voice_source_tracking_get,
17211 },
17212 {
17213 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17214 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17215 .name = "Sound Focus Audio Tx TERT_MI2S",
17216 .info = msm_sound_focus_info,
17217 .get = msm_audio_sound_focus_get,
17218 .put = msm_audio_sound_focus_put,
17219 },
17220 {
17221 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17222 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17223 .name = "Source Tracking Audio Tx TERT_MI2S",
17224 .info = msm_source_tracking_info,
17225 .get = msm_audio_source_tracking_get,
17226 },
17227 {
17228 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17229 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17230 .name = "Sound Focus Voice Tx INT3_MI2S",
17231 .info = msm_sound_focus_info,
17232 .get = msm_voice_sound_focus_get,
17233 .put = msm_voice_sound_focus_put,
17234 },
17235 {
17236 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17237 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17238 .name = "Source Tracking Voice Tx INT3_MI2S",
17239 .info = msm_source_tracking_info,
17240 .get = msm_voice_source_tracking_get,
17241 },
17242 {
17243 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17244 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17245 .name = "Sound Focus Audio Tx INT3_MI2S",
17246 .info = msm_sound_focus_info,
17247 .get = msm_audio_sound_focus_get,
17248 .put = msm_audio_sound_focus_put,
17249 },
17250 {
17251 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17252 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17253 .name = "Source Tracking Audio Tx INT3_MI2S",
17254 .info = msm_source_tracking_info,
17255 .get = msm_audio_source_tracking_get,
17256 },
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053017257 {
17258 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17259 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17260 .name = "Sound Focus Voice Tx VA_CDC_DMA_TX_0",
17261 .info = msm_sound_focus_info,
17262 .get = msm_voice_sound_focus_get,
17263 .put = msm_voice_sound_focus_put,
17264 },
17265 {
17266 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17267 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17268 .name = "Source Tracking Voice Tx VA_CDC_DMA_TX_0",
17269 .info = msm_source_tracking_info,
17270 .get = msm_voice_source_tracking_get,
17271 },
17272 {
17273 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17274 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17275 .name = "Sound Focus Audio Tx VA_CDC_DMA_TX_0",
17276 .info = msm_sound_focus_info,
17277 .get = msm_audio_sound_focus_get,
17278 .put = msm_audio_sound_focus_put,
17279 },
17280 {
17281 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17282 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17283 .name = "Source Tracking Audio Tx VA_CDC_DMA_TX_0",
17284 .info = msm_source_tracking_info,
17285 .get = msm_audio_source_tracking_get,
17286 },
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053017287 {
17288 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17289 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17290 .name = "Sound Focus Voice Tx TX_CDC_DMA_TX_3",
17291 .info = msm_sound_focus_info,
17292 .get = msm_voice_sound_focus_get,
17293 .put = msm_voice_sound_focus_put,
17294 },
17295 {
17296 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17297 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17298 .name = "Source Tracking Voice Tx TX_CDC_DMA_TX_3",
17299 .info = msm_source_tracking_info,
17300 .get = msm_voice_source_tracking_get,
17301 },
17302 {
17303 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17304 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17305 .name = "Sound Focus Audio Tx TX_CDC_DMA_TX_3",
17306 .info = msm_sound_focus_info,
17307 .get = msm_audio_sound_focus_get,
17308 .put = msm_audio_sound_focus_put,
17309 },
17310 {
17311 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17312 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17313 .name = "Source Tracking Audio Tx TX_CDC_DMA_TX_3",
17314 .info = msm_source_tracking_info,
17315 .get = msm_audio_source_tracking_get,
17316 },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017317};
17318
17319static int spkr_prot_put_vi_lch_port(struct snd_kcontrol *kcontrol,
17320 struct snd_ctl_elem_value *ucontrol)
17321{
17322 int ret = 0;
17323 int item;
17324 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
17325
17326 pr_debug("%s item is %d\n", __func__,
17327 ucontrol->value.enumerated.item[0]);
17328 mutex_lock(&routing_lock);
17329 item = ucontrol->value.enumerated.item[0];
17330 if (item < e->items) {
17331 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
17332 __func__, e->shift_l, e->values[item]);
17333 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
17334 e->values[item] < MSM_BACKEND_DAI_MAX)
17335 /* Enable feedback TX path */
17336 ret = afe_spk_prot_feed_back_cfg(
17337 msm_bedais[e->values[item]].port_id,
17338 msm_bedais[e->shift_l].port_id, 1, 0, 1);
17339 else {
17340 pr_debug("%s values are out of range item %d\n",
17341 __func__, e->values[item]);
17342 /* Disable feedback TX path */
17343 if (e->values[item] == MSM_BACKEND_DAI_MAX)
17344 ret = afe_spk_prot_feed_back_cfg(0, 0, 0, 0, 0);
17345 else
17346 ret = -EINVAL;
17347 }
17348 } else {
17349 pr_err("%s item value is out of range item\n", __func__);
17350 ret = -EINVAL;
17351 }
17352 mutex_unlock(&routing_lock);
17353 return ret;
17354}
17355
17356static int spkr_prot_put_vi_rch_port(struct snd_kcontrol *kcontrol,
17357 struct snd_ctl_elem_value *ucontrol)
17358{
17359 int ret = 0;
17360 int item;
17361 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
17362
17363 pr_debug("%s item is %d\n", __func__,
17364 ucontrol->value.enumerated.item[0]);
17365 mutex_lock(&routing_lock);
17366 item = ucontrol->value.enumerated.item[0];
17367 if (item < e->items) {
17368 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
17369 __func__, e->shift_l, e->values[item]);
17370 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
17371 e->values[item] < MSM_BACKEND_DAI_MAX)
17372 /* Enable feedback TX path */
17373 ret = afe_spk_prot_feed_back_cfg(
17374 msm_bedais[e->values[item]].port_id,
17375 msm_bedais[e->shift_l].port_id,
17376 1, 1, 1);
17377 else {
17378 pr_debug("%s values are out of range item %d\n",
17379 __func__, e->values[item]);
17380 /* Disable feedback TX path */
17381 if (e->values[item] == MSM_BACKEND_DAI_MAX)
17382 ret = afe_spk_prot_feed_back_cfg(0,
17383 0, 0, 0, 0);
17384 else
17385 ret = -EINVAL;
17386 }
17387 } else {
17388 pr_err("%s item value is out of range item\n", __func__);
17389 ret = -EINVAL;
17390 }
17391 mutex_unlock(&routing_lock);
17392 return ret;
17393}
17394
17395static int spkr_prot_get_vi_lch_port(struct snd_kcontrol *kcontrol,
17396 struct snd_ctl_elem_value *ucontrol)
17397{
17398 pr_debug("%s\n", __func__);
17399 return 0;
17400}
17401
17402static int spkr_prot_get_vi_rch_port(struct snd_kcontrol *kcontrol,
17403 struct snd_ctl_elem_value *ucontrol)
17404{
17405 pr_debug("%s\n", __func__);
17406 ucontrol->value.enumerated.item[0] = 0;
17407 return 0;
17408}
17409
17410static const char * const slim0_rx_vi_fb_tx_lch_mux_text[] = {
17411 "ZERO", "SLIM4_TX"
17412};
17413
17414static const char * const slim0_rx_vi_fb_tx_rch_mux_text[] = {
17415 "ZERO", "SLIM4_TX"
17416};
17417
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017418static const char * const wsa_rx_0_vi_fb_tx_lch_mux_text[] = {
17419 "ZERO", "WSA_CDC_DMA_TX_0"
17420};
17421
17422static const char * const wsa_rx_0_vi_fb_tx_rch_mux_text[] = {
17423 "ZERO", "WSA_CDC_DMA_TX_0"
17424};
17425
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017426static const char * const mi2s_rx_vi_fb_tx_mux_text[] = {
17427 "ZERO", "SENARY_TX"
17428};
17429
17430static const char * const int4_mi2s_rx_vi_fb_tx_mono_mux_text[] = {
17431 "ZERO", "INT5_MI2S_TX"
17432};
17433
17434static const char * const int4_mi2s_rx_vi_fb_tx_stereo_mux_text[] = {
17435 "ZERO", "INT5_MI2S_TX"
17436};
17437
17438static const int const slim0_rx_vi_fb_tx_lch_value[] = {
17439 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
17440};
17441
17442static const int const slim0_rx_vi_fb_tx_rch_value[] = {
17443 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
17444};
17445
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017446static const int const wsa_rx_0_vi_fb_tx_lch_value[] = {
17447 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
17448};
17449
17450static const int const wsa_rx_0_vi_fb_tx_rch_value[] = {
17451 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
17452};
17453
17454
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017455static const int const mi2s_rx_vi_fb_tx_value[] = {
17456 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SENARY_MI2S_TX
17457};
17458
17459static const int const int4_mi2s_rx_vi_fb_tx_mono_ch_value[] = {
17460 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
17461};
17462
17463static const int const int4_mi2s_rx_vi_fb_tx_stereo_ch_value[] = {
17464 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
17465};
17466
17467static const struct soc_enum slim0_rx_vi_fb_lch_mux_enum =
17468 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
17469 ARRAY_SIZE(slim0_rx_vi_fb_tx_lch_mux_text),
17470 slim0_rx_vi_fb_tx_lch_mux_text, slim0_rx_vi_fb_tx_lch_value);
17471
17472static const struct soc_enum slim0_rx_vi_fb_rch_mux_enum =
17473 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
17474 ARRAY_SIZE(slim0_rx_vi_fb_tx_rch_mux_text),
17475 slim0_rx_vi_fb_tx_rch_mux_text, slim0_rx_vi_fb_tx_rch_value);
17476
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017477static const struct soc_enum wsa_rx_0_vi_fb_lch_mux_enum =
17478 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
17479 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_lch_mux_text),
17480 wsa_rx_0_vi_fb_tx_lch_mux_text, wsa_rx_0_vi_fb_tx_lch_value);
17481
17482static const struct soc_enum wsa_rx_0_vi_fb_rch_mux_enum =
17483 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
17484 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_rch_mux_text),
17485 wsa_rx_0_vi_fb_tx_rch_mux_text, wsa_rx_0_vi_fb_tx_rch_value);
17486
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017487static const struct soc_enum mi2s_rx_vi_fb_mux_enum =
17488 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_PRI_MI2S_RX, 0, 0,
17489 ARRAY_SIZE(mi2s_rx_vi_fb_tx_mux_text),
17490 mi2s_rx_vi_fb_tx_mux_text, mi2s_rx_vi_fb_tx_value);
17491
17492static const struct soc_enum int4_mi2s_rx_vi_fb_mono_ch_mux_enum =
17493 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
17494 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_mono_mux_text),
17495 int4_mi2s_rx_vi_fb_tx_mono_mux_text,
17496 int4_mi2s_rx_vi_fb_tx_mono_ch_value);
17497
17498static const struct soc_enum int4_mi2s_rx_vi_fb_stereo_ch_mux_enum =
17499 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
17500 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_stereo_mux_text),
17501 int4_mi2s_rx_vi_fb_tx_stereo_mux_text,
17502 int4_mi2s_rx_vi_fb_tx_stereo_ch_value);
17503
17504static const struct snd_kcontrol_new slim0_rx_vi_fb_lch_mux =
17505 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_LCH_MUX",
17506 slim0_rx_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
17507 spkr_prot_put_vi_lch_port);
17508
17509static const struct snd_kcontrol_new slim0_rx_vi_fb_rch_mux =
17510 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_RCH_MUX",
17511 slim0_rx_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
17512 spkr_prot_put_vi_rch_port);
17513
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017514static const struct snd_kcontrol_new wsa_rx_0_vi_fb_lch_mux =
17515 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_LCH_MUX",
17516 wsa_rx_0_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
17517 spkr_prot_put_vi_lch_port);
17518
17519static const struct snd_kcontrol_new wsa_rx_0_vi_fb_rch_mux =
17520 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_RCH_MUX",
17521 wsa_rx_0_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
17522 spkr_prot_put_vi_rch_port);
17523
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017524static const struct snd_kcontrol_new mi2s_rx_vi_fb_mux =
17525 SOC_DAPM_ENUM_EXT("PRI_MI2S_RX_VI_FB_MUX",
17526 mi2s_rx_vi_fb_mux_enum, spkr_prot_get_vi_lch_port,
17527 spkr_prot_put_vi_lch_port);
17528
17529static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_mono_ch_mux =
17530 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_MONO_CH_MUX",
17531 int4_mi2s_rx_vi_fb_mono_ch_mux_enum, spkr_prot_get_vi_lch_port,
17532 spkr_prot_put_vi_lch_port);
17533
17534static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_stereo_ch_mux =
17535 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX",
17536 int4_mi2s_rx_vi_fb_stereo_ch_mux_enum, spkr_prot_get_vi_rch_port,
17537 spkr_prot_put_vi_rch_port);
17538
17539static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
17540 /* Frontend AIF */
17541 /* Widget name equals to Front-End DAI name<Need confirmation>,
17542 * Stream name must contains substring of front-end dai name
17543 */
17544 SND_SOC_DAPM_AIF_IN("MM_DL1", "MultiMedia1 Playback", 0, 0, 0, 0),
17545 SND_SOC_DAPM_AIF_IN("MM_DL2", "MultiMedia2 Playback", 0, 0, 0, 0),
17546 SND_SOC_DAPM_AIF_IN("MM_DL3", "MultiMedia3 Playback", 0, 0, 0, 0),
17547 SND_SOC_DAPM_AIF_IN("MM_DL4", "MultiMedia4 Playback", 0, 0, 0, 0),
17548 SND_SOC_DAPM_AIF_IN("MM_DL5", "MultiMedia5 Playback", 0, 0, 0, 0),
17549 SND_SOC_DAPM_AIF_IN("MM_DL6", "MultiMedia6 Playback", 0, 0, 0, 0),
17550 SND_SOC_DAPM_AIF_IN("MM_DL7", "MultiMedia7 Playback", 0, 0, 0, 0),
17551 SND_SOC_DAPM_AIF_IN("MM_DL8", "MultiMedia8 Playback", 0, 0, 0, 0),
17552 SND_SOC_DAPM_AIF_IN("MM_DL9", "MultiMedia9 Playback", 0, 0, 0, 0),
17553 SND_SOC_DAPM_AIF_IN("MM_DL10", "MultiMedia10 Playback", 0, 0, 0, 0),
17554 SND_SOC_DAPM_AIF_IN("MM_DL11", "MultiMedia11 Playback", 0, 0, 0, 0),
17555 SND_SOC_DAPM_AIF_IN("MM_DL12", "MultiMedia12 Playback", 0, 0, 0, 0),
17556 SND_SOC_DAPM_AIF_IN("MM_DL13", "MultiMedia13 Playback", 0, 0, 0, 0),
17557 SND_SOC_DAPM_AIF_IN("MM_DL14", "MultiMedia14 Playback", 0, 0, 0, 0),
17558 SND_SOC_DAPM_AIF_IN("MM_DL15", "MultiMedia15 Playback", 0, 0, 0, 0),
17559 SND_SOC_DAPM_AIF_IN("MM_DL16", "MultiMedia16 Playback", 0, 0, 0, 0),
17560 SND_SOC_DAPM_AIF_IN("MM_DL20", "MultiMedia20 Playback", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070017561 SND_SOC_DAPM_AIF_IN("MM_DL21", "MultiMedia21 Playback", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017562 SND_SOC_DAPM_AIF_IN("VOIP_DL", "VoIP Playback", 0, 0, 0, 0),
17563 SND_SOC_DAPM_AIF_OUT("MM_UL1", "MultiMedia1 Capture", 0, 0, 0, 0),
17564 SND_SOC_DAPM_AIF_OUT("MM_UL2", "MultiMedia2 Capture", 0, 0, 0, 0),
17565 SND_SOC_DAPM_AIF_OUT("MM_UL3", "MultiMedia3 Capture", 0, 0, 0, 0),
17566 SND_SOC_DAPM_AIF_OUT("MM_UL4", "MultiMedia4 Capture", 0, 0, 0, 0),
17567 SND_SOC_DAPM_AIF_OUT("MM_UL5", "MultiMedia5 Capture", 0, 0, 0, 0),
17568 SND_SOC_DAPM_AIF_OUT("MM_UL6", "MultiMedia6 Capture", 0, 0, 0, 0),
17569 SND_SOC_DAPM_AIF_OUT("MM_UL8", "MultiMedia8 Capture", 0, 0, 0, 0),
17570 SND_SOC_DAPM_AIF_OUT("MM_UL9", "MultiMedia9 Capture", 0, 0, 0, 0),
Laxminath Kasam38070be2017-08-17 18:21:59 +053017571 SND_SOC_DAPM_AIF_OUT("MM_UL10", "MultiMedia10 Capture", 0, 0, 0, 0),
Asish Bhattacharya34504582017-08-08 12:55:01 +053017572 SND_SOC_DAPM_AIF_OUT("MM_UL16", "MultiMedia16 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017573 SND_SOC_DAPM_AIF_OUT("MM_UL17", "MultiMedia17 Capture", 0, 0, 0, 0),
17574 SND_SOC_DAPM_AIF_OUT("MM_UL18", "MultiMedia18 Capture", 0, 0, 0, 0),
17575 SND_SOC_DAPM_AIF_OUT("MM_UL19", "MultiMedia19 Capture", 0, 0, 0, 0),
17576 SND_SOC_DAPM_AIF_OUT("MM_UL20", "MultiMedia20 Capture", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070017577 SND_SOC_DAPM_AIF_OUT("MM_UL21", "MultiMedia21 Capture", 0, 0, 0, 0),
Meng Wang5c4bab72018-04-25 10:40:01 +080017578 SND_SOC_DAPM_AIF_OUT("MM_UL28", "MultiMedia28 Capture", 0, 0, 0, 0),
17579 SND_SOC_DAPM_AIF_OUT("MM_UL29", "MultiMedia29 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017580 SND_SOC_DAPM_AIF_OUT("VOIP_UL", "VoIP Capture", 0, 0, 0, 0),
17581 SND_SOC_DAPM_AIF_IN("VOICEMMODE1_DL",
17582 "VoiceMMode1 Playback", 0, 0, 0, 0),
17583 SND_SOC_DAPM_AIF_OUT("VOICEMMODE1_UL",
17584 "VoiceMMode1 Capture", 0, 0, 0, 0),
17585 SND_SOC_DAPM_AIF_IN("VOICEMMODE2_DL",
17586 "VoiceMMode2 Playback", 0, 0, 0, 0),
17587 SND_SOC_DAPM_AIF_OUT("VOICEMMODE2_UL",
17588 "VoiceMMode2 Capture", 0, 0, 0, 0),
17589 SND_SOC_DAPM_AIF_IN("SLIM0_DL_HL", "SLIMBUS0_HOSTLESS Playback",
17590 0, 0, 0, 0),
17591 SND_SOC_DAPM_AIF_OUT("SLIM0_UL_HL", "SLIMBUS0_HOSTLESS Capture",
17592 0, 0, 0, 0),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053017593 SND_SOC_DAPM_AIF_IN("CDC_DMA_DL_HL", "CDC_DMA_HOSTLESS Playback",
17594 0, 0, 0, 0),
17595 SND_SOC_DAPM_AIF_OUT("CDC_DMA_UL_HL", "CDC_DMA_HOSTLESS Capture",
17596 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017597 SND_SOC_DAPM_AIF_OUT("CPE_LSM_UL_HL", "CPE LSM capture",
17598 0, 0, 0, 0),
17599 SND_SOC_DAPM_AIF_IN("SLIM1_DL_HL", "SLIMBUS1_HOSTLESS Playback",
17600 0, 0, 0, 0),
17601 SND_SOC_DAPM_AIF_OUT("SLIM1_UL_HL", "SLIMBUS1_HOSTLESS Capture",
17602 0, 0, 0, 0),
17603 SND_SOC_DAPM_AIF_IN("SLIM3_DL_HL", "SLIMBUS3_HOSTLESS Playback",
17604 0, 0, 0, 0),
17605 SND_SOC_DAPM_AIF_OUT("SLIM3_UL_HL", "SLIMBUS3_HOSTLESS Capture",
17606 0, 0, 0, 0),
17607 SND_SOC_DAPM_AIF_IN("SLIM4_DL_HL", "SLIMBUS4_HOSTLESS Playback",
17608 0, 0, 0, 0),
17609 SND_SOC_DAPM_AIF_OUT("SLIM4_UL_HL", "SLIMBUS4_HOSTLESS Capture",
17610 0, 0, 0, 0),
17611 SND_SOC_DAPM_AIF_IN("SLIM6_DL_HL", "SLIMBUS6_HOSTLESS Playback",
17612 0, 0, 0, 0),
17613 SND_SOC_DAPM_AIF_OUT("SLIM6_UL_HL", "SLIMBUS6_HOSTLESS Capture",
17614 0, 0, 0, 0),
17615 SND_SOC_DAPM_AIF_IN("SLIM7_DL_HL", "SLIMBUS7_HOSTLESS Playback",
17616 0, 0, 0, 0),
17617 SND_SOC_DAPM_AIF_OUT("SLIM7_UL_HL", "SLIMBUS7_HOSTLESS Capture",
17618 0, 0, 0, 0),
17619 SND_SOC_DAPM_AIF_IN("SLIM8_DL_HL", "SLIMBUS8_HOSTLESS Playback",
17620 0, 0, 0, 0),
17621 SND_SOC_DAPM_AIF_OUT("SLIM8_UL_HL", "SLIMBUS8_HOSTLESS Capture",
17622 0, 0, 0, 0),
17623 SND_SOC_DAPM_AIF_IN("INTFM_DL_HL", "INT_FM_HOSTLESS Playback",
17624 0, 0, 0, 0),
17625 SND_SOC_DAPM_AIF_OUT("INTFM_UL_HL", "INT_FM_HOSTLESS Capture",
17626 0, 0, 0, 0),
17627 SND_SOC_DAPM_AIF_IN("INTHFP_DL_HL", "INT_HFP_BT_HOSTLESS Playback",
17628 0, 0, 0, 0),
17629 SND_SOC_DAPM_AIF_OUT("INTHFP_UL_HL", "INT_HFP_BT_HOSTLESS Capture",
17630 0, 0, 0, 0),
17631 SND_SOC_DAPM_AIF_IN("USBAUDIO_DL_HL", "USBAUDIO_HOSTLESS Playback",
17632 0, 0, 0, 0),
17633 SND_SOC_DAPM_AIF_OUT("USBAUDIO_UL_HL", "USBAUDIO_HOSTLESS Capture",
17634 0, 0, 0, 0),
17635 SND_SOC_DAPM_AIF_IN("HDMI_DL_HL", "HDMI_HOSTLESS Playback", 0, 0, 0, 0),
17636 SND_SOC_DAPM_AIF_IN("SEC_I2S_DL_HL", "SEC_I2S_RX_HOSTLESS Playback",
17637 0, 0, 0, 0),
17638 SND_SOC_DAPM_AIF_IN("INT0_MI2S_DL_HL",
17639 "INT0 MI2S_RX Hostless Playback",
17640 0, 0, 0, 0),
17641 SND_SOC_DAPM_AIF_IN("INT4_MI2S_DL_HL",
17642 "INT4 MI2S_RX Hostless Playback",
17643 0, 0, 0, 0),
17644 SND_SOC_DAPM_AIF_IN("PRI_MI2S_DL_HL",
17645 "Primary MI2S_RX Hostless Playback",
17646 0, 0, 0, 0),
17647 SND_SOC_DAPM_AIF_IN("SEC_MI2S_DL_HL",
17648 "Secondary MI2S_RX Hostless Playback",
17649 0, 0, 0, 0),
17650 SND_SOC_DAPM_AIF_IN("TERT_MI2S_DL_HL",
17651 "Tertiary MI2S_RX Hostless Playback",
17652 0, 0, 0, 0),
17653 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_DL_HL",
17654 "Quaternary MI2S_RX Hostless Playback",
17655 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053017656 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_DL_HL",
17657 "Quinary MI2S_RX Hostless Playback",
17658 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017659
17660 SND_SOC_DAPM_AIF_IN("AUXPCM_DL_HL", "AUXPCM_HOSTLESS Playback",
17661 0, 0, 0, 0),
17662 SND_SOC_DAPM_AIF_OUT("AUXPCM_UL_HL", "AUXPCM_HOSTLESS Capture",
17663 0, 0, 0, 0),
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080017664 SND_SOC_DAPM_AIF_IN("SEC_AUXPCM_DL_HL", "SEC_AUXPCM_HOSTLESS Playback",
17665 0, 0, 0, 0),
17666 SND_SOC_DAPM_AIF_OUT("SEC_AUXPCM_UL_HL", "SEC_AUXPCM_HOSTLESS Capture",
17667 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017668 SND_SOC_DAPM_AIF_OUT("MI2S_UL_HL", "MI2S_TX_HOSTLESS Capture",
17669 0, 0, 0, 0),
17670 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_UL_HL",
17671 "INT3 MI2S_TX Hostless Capture",
17672 0, 0, 0, 0),
17673 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_UL_HL",
17674 "Tertiary MI2S_TX Hostless Capture",
17675 0, 0, 0, 0),
17676 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_UL_HL",
17677 "Secondary MI2S_TX Hostless Capture",
17678 0, 0, 0, 0),
17679 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_UL_HL",
17680 "Primary MI2S_TX Hostless Capture",
17681 0, 0, 0, 0),
17682 SND_SOC_DAPM_AIF_OUT("MI2S_DL_HL", "MI2S_RX_HOSTLESS Playback",
17683 0, 0, 0, 0),
17684 SND_SOC_DAPM_AIF_IN("DTMF_DL_HL", "DTMF_RX_HOSTLESS Playback",
17685 0, 0, 0, 0),
17686 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_UL_HL",
17687 "Quaternary MI2S_TX Hostless Capture",
17688 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053017689 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_UL_HL",
17690 "Quinary MI2S_TX Hostless Capture",
17691 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017692
17693 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_0_DL_HL",
17694 "Primary TDM0 Hostless Playback",
17695 0, 0, 0, 0),
17696 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_0_UL_HL",
17697 "Primary TDM0 Hostless Capture",
17698 0, 0, 0, 0),
17699 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_1_DL_HL",
17700 "Primary TDM1 Hostless Playback",
17701 0, 0, 0, 0),
17702 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_1_UL_HL",
17703 "Primary TDM1 Hostless Capture",
17704 0, 0, 0, 0),
17705 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_2_DL_HL",
17706 "Primary TDM2 Hostless Playback",
17707 0, 0, 0, 0),
17708 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_2_UL_HL",
17709 "Primary TDM2 Hostless Capture",
17710 0, 0, 0, 0),
17711 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_3_DL_HL",
17712 "Primary TDM3 Hostless Playback",
17713 0, 0, 0, 0),
17714 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_3_UL_HL",
17715 "Primary TDM3 Hostless Capture",
17716 0, 0, 0, 0),
17717 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_4_DL_HL",
17718 "Primary TDM4 Hostless Playback",
17719 0, 0, 0, 0),
17720 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_4_UL_HL",
17721 "Primary TDM4 Hostless Capture",
17722 0, 0, 0, 0),
17723 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_5_DL_HL",
17724 "Primary TDM5 Hostless Playback",
17725 0, 0, 0, 0),
17726 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_5_UL_HL",
17727 "Primary TDM5 Hostless Capture",
17728 0, 0, 0, 0),
17729 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_6_DL_HL",
17730 "Primary TDM6 Hostless Playback",
17731 0, 0, 0, 0),
17732 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_6_UL_HL",
17733 "Primary TDM6 Hostless Capture",
17734 0, 0, 0, 0),
17735 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_7_DL_HL",
17736 "Primary TDM7 Hostless Playback",
17737 0, 0, 0, 0),
17738 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_7_UL_HL",
17739 "Primary TDM7 Hostless Capture",
17740 0, 0, 0, 0),
17741 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_0_DL_HL",
17742 "Secondary TDM0 Hostless Playback",
17743 0, 0, 0, 0),
17744 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_0_UL_HL",
17745 "Secondary TDM0 Hostless Capture",
17746 0, 0, 0, 0),
17747 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_1_DL_HL",
17748 "Secondary TDM1 Hostless Playback",
17749 0, 0, 0, 0),
17750 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_1_UL_HL",
17751 "Secondary TDM1 Hostless Capture",
17752 0, 0, 0, 0),
17753 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_2_DL_HL",
17754 "Secondary TDM2 Hostless Playback",
17755 0, 0, 0, 0),
17756 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_2_UL_HL",
17757 "Secondary TDM2 Hostless Capture",
17758 0, 0, 0, 0),
17759 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_3_DL_HL",
17760 "Secondary TDM3 Hostless Playback",
17761 0, 0, 0, 0),
17762 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_3_UL_HL",
17763 "Secondary TDM3 Hostless Capture",
17764 0, 0, 0, 0),
17765 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_4_DL_HL",
17766 "Secondary TDM4 Hostless Playback",
17767 0, 0, 0, 0),
17768 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_4_UL_HL",
17769 "Secondary TDM4 Hostless Capture",
17770 0, 0, 0, 0),
17771 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_5_DL_HL",
17772 "Secondary TDM5 Hostless Playback",
17773 0, 0, 0, 0),
17774 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_5_UL_HL",
17775 "Secondary TDM5 Hostless Capture",
17776 0, 0, 0, 0),
17777 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_6_DL_HL",
17778 "Secondary TDM6 Hostless Playback",
17779 0, 0, 0, 0),
17780 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_6_UL_HL",
17781 "Secondary TDM6 Hostless Capture",
17782 0, 0, 0, 0),
17783 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_7_DL_HL",
17784 "Secondary TDM7 Hostless Playback",
17785 0, 0, 0, 0),
17786 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_7_UL_HL",
17787 "Secondary TDM7 Hostless Capture",
17788 0, 0, 0, 0),
17789 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_0_DL_HL",
17790 "Tertiary TDM0 Hostless Playback",
17791 0, 0, 0, 0),
17792 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_0_UL_HL",
17793 "Tertiary TDM0 Hostless Capture",
17794 0, 0, 0, 0),
17795 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_1_DL_HL",
17796 "Tertiary TDM1 Hostless Playback",
17797 0, 0, 0, 0),
17798 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_1_UL_HL",
17799 "Tertiary TDM1 Hostless Capture",
17800 0, 0, 0, 0),
17801 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_2_DL_HL",
17802 "Tertiary TDM2 Hostless Playback",
17803 0, 0, 0, 0),
17804 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_2_UL_HL",
17805 "Tertiary TDM2 Hostless Capture",
17806 0, 0, 0, 0),
17807 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_3_DL_HL",
17808 "Tertiary TDM3 Hostless Playback",
17809 0, 0, 0, 0),
17810 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_3_UL_HL",
17811 "Tertiary TDM3 Hostless Capture",
17812 0, 0, 0, 0),
17813 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_4_DL_HL",
17814 "Tertiary TDM4 Hostless Playback",
17815 0, 0, 0, 0),
17816 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_4_UL_HL",
17817 "Tertiary TDM4 Hostless Capture",
17818 0, 0, 0, 0),
17819 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_5_DL_HL",
17820 "Tertiary TDM5 Hostless Playback",
17821 0, 0, 0, 0),
17822 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_5_UL_HL",
17823 "Tertiary TDM5 Hostless Capture",
17824 0, 0, 0, 0),
17825 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_6_DL_HL",
17826 "Tertiary TDM6 Hostless Playback",
17827 0, 0, 0, 0),
17828 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_6_UL_HL",
17829 "Tertiary TDM6 Hostless Capture",
17830 0, 0, 0, 0),
17831 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_7_DL_HL",
17832 "Tertiary TDM7 Hostless Playback",
17833 0, 0, 0, 0),
17834 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_7_UL_HL",
17835 "Tertiary TDM7 Hostless Capture",
17836 0, 0, 0, 0),
17837 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_0_DL_HL",
17838 "Quaternary TDM0 Hostless Playback",
17839 0, 0, 0, 0),
17840 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_0_UL_HL",
17841 "Quaternary TDM0 Hostless Capture",
17842 0, 0, 0, 0),
17843 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_1_DL_HL",
17844 "Quaternary TDM1 Hostless Playback",
17845 0, 0, 0, 0),
17846 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_1_UL_HL",
17847 "Quaternary TDM1 Hostless Capture",
17848 0, 0, 0, 0),
17849 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_2_DL_HL",
17850 "Quaternary TDM2 Hostless Playback",
17851 0, 0, 0, 0),
17852 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_2_UL_HL",
17853 "Quaternary TDM2 Hostless Capture",
17854 0, 0, 0, 0),
17855 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_3_DL_HL",
17856 "Quaternary TDM3 Hostless Playback",
17857 0, 0, 0, 0),
17858 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_3_UL_HL",
17859 "Quaternary TDM3 Hostless Capture",
17860 0, 0, 0, 0),
17861 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_4_DL_HL",
17862 "Quaternary TDM4 Hostless Playback",
17863 0, 0, 0, 0),
17864 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_4_UL_HL",
17865 "Quaternary TDM4 Hostless Capture",
17866 0, 0, 0, 0),
17867 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_5_DL_HL",
17868 "Quaternary TDM5 Hostless Playback",
17869 0, 0, 0, 0),
17870 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_5_UL_HL",
17871 "Quaternary TDM5 Hostless Capture",
17872 0, 0, 0, 0),
17873 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_6_DL_HL",
17874 "Quaternary TDM6 Hostless Playback",
17875 0, 0, 0, 0),
17876 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_6_UL_HL",
17877 "Quaternary TDM6 Hostless Capture",
17878 0, 0, 0, 0),
17879 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_7_DL_HL",
17880 "Quaternary TDM7 Hostless Playback",
17881 0, 0, 0, 0),
17882 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_7_UL_HL",
17883 "Quaternary TDM7 Hostless Capture",
17884 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053017885 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_0_DL_HL",
17886 "Quinary TDM0 Hostless Playback",
17887 0, 0, 0, 0),
17888 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_0_UL_HL",
17889 "Quinary TDM0 Hostless Capture",
17890 0, 0, 0, 0),
17891 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_1_DL_HL",
17892 "Quinary TDM1 Hostless Playback",
17893 0, 0, 0, 0),
17894 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_1_UL_HL",
17895 "Quinary TDM1 Hostless Capture",
17896 0, 0, 0, 0),
17897 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_2_DL_HL",
17898 "Quinary TDM2 Hostless Playback",
17899 0, 0, 0, 0),
17900 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_2_UL_HL",
17901 "Quinary TDM2 Hostless Capture",
17902 0, 0, 0, 0),
17903 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_3_DL_HL",
17904 "Quinary TDM3 Hostless Playback",
17905 0, 0, 0, 0),
17906 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_3_UL_HL",
17907 "Quinary TDM3 Hostless Capture",
17908 0, 0, 0, 0),
17909 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_4_DL_HL",
17910 "Quinary TDM4 Hostless Playback",
17911 0, 0, 0, 0),
17912 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_4_UL_HL",
17913 "Quinary TDM4 Hostless Capture",
17914 0, 0, 0, 0),
17915 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_5_DL_HL",
17916 "Quinary TDM5 Hostless Playback",
17917 0, 0, 0, 0),
17918 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_5_UL_HL",
17919 "Quinary TDM5 Hostless Capture",
17920 0, 0, 0, 0),
17921 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_6_DL_HL",
17922 "Quinary TDM6 Hostless Playback",
17923 0, 0, 0, 0),
17924 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_6_UL_HL",
17925 "Quinary TDM6 Hostless Capture",
17926 0, 0, 0, 0),
17927 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_7_DL_HL",
17928 "Quinary TDM7 Hostless Playback",
17929 0, 0, 0, 0),
17930 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_7_UL_HL",
17931 "Quinary TDM7 Hostless Capture",
17932 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017933
17934 /* LSM */
17935 SND_SOC_DAPM_AIF_OUT("LSM1_UL_HL", "Listen 1 Audio Service Capture",
17936 0, 0, 0, 0),
17937 SND_SOC_DAPM_AIF_OUT("LSM2_UL_HL", "Listen 2 Audio Service Capture",
17938 0, 0, 0, 0),
17939 SND_SOC_DAPM_AIF_OUT("LSM3_UL_HL", "Listen 3 Audio Service Capture",
17940 0, 0, 0, 0),
17941 SND_SOC_DAPM_AIF_OUT("LSM4_UL_HL", "Listen 4 Audio Service Capture",
17942 0, 0, 0, 0),
17943 SND_SOC_DAPM_AIF_OUT("LSM5_UL_HL", "Listen 5 Audio Service Capture",
17944 0, 0, 0, 0),
17945 SND_SOC_DAPM_AIF_OUT("LSM6_UL_HL", "Listen 6 Audio Service Capture",
17946 0, 0, 0, 0),
17947 SND_SOC_DAPM_AIF_OUT("LSM7_UL_HL", "Listen 7 Audio Service Capture",
17948 0, 0, 0, 0),
17949 SND_SOC_DAPM_AIF_OUT("LSM8_UL_HL", "Listen 8 Audio Service Capture",
17950 0, 0, 0, 0),
17951 SND_SOC_DAPM_AIF_IN("QCHAT_DL", "QCHAT Playback", 0, 0, 0, 0),
17952 SND_SOC_DAPM_AIF_OUT("QCHAT_UL", "QCHAT Capture", 0, 0, 0, 0),
17953 /* Backend AIF */
17954 /* Stream name equals to backend dai link stream name */
17955 SND_SOC_DAPM_AIF_OUT("PRI_I2S_RX", "Primary I2S Playback", 0, 0, 0, 0),
17956 SND_SOC_DAPM_AIF_OUT("SEC_I2S_RX", "Secondary I2S Playback",
17957 0, 0, 0, 0),
Ralf Herzc8701f72018-06-20 11:37:35 +020017958 SND_SOC_DAPM_AIF_OUT("PRI_SPDIF_RX", "Primary SPDIF Playback",
17959 0, 0, 0, 0),
17960 SND_SOC_DAPM_AIF_IN("PRI_SPDIF_TX", "Primary SPDIF Capture",
17961 0, 0, 0, 0),
17962 SND_SOC_DAPM_AIF_OUT("SEC_SPDIF_RX", "Secondary SPDIF Playback",
17963 0, 0, 0, 0),
17964 SND_SOC_DAPM_AIF_IN("SEC_SPDIF_TX", "Secondary SPDIF Capture",
17965 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017966 SND_SOC_DAPM_AIF_OUT("SLIMBUS_0_RX", "Slimbus Playback", 0, 0, 0, 0),
17967 SND_SOC_DAPM_AIF_OUT("SLIMBUS_2_RX", "Slimbus2 Playback", 0, 0, 0, 0),
17968 SND_SOC_DAPM_AIF_OUT("SLIMBUS_5_RX", "Slimbus5 Playback", 0, 0, 0, 0),
17969 SND_SOC_DAPM_AIF_OUT("HDMI", "HDMI Playback", 0, 0, 0, 0),
17970 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT", "Display Port Playback",
17971 0, 0, 0, 0),
Karthikeyan Mani57550082018-05-03 18:43:58 -070017972 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT1", "Display Port1 Playback",
17973 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017974 SND_SOC_DAPM_AIF_OUT("MI2S_RX", "MI2S Playback", 0, 0, 0, 0),
17975 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_RX", "Quaternary MI2S Playback",
17976 0, 0, 0, 0),
17977 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_RX", "Tertiary MI2S Playback",
17978 0, 0, 0, 0),
17979 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX", "Secondary MI2S Playback",
17980 0, 0, 0, 0),
17981 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX_SD1",
17982 "Secondary MI2S Playback SD1",
17983 0, 0, 0, 0),
17984 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_RX", "Primary MI2S Playback",
17985 0, 0, 0, 0),
17986 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_RX", "INT0 MI2S Playback",
17987 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053017988 SND_SOC_DAPM_AIF_OUT("INT2_MI2S_RX", "INT2 MI2S Playback",
17989 0, 0, 0, 0),
17990 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_RX", "INT3 MI2S Playback",
17991 0, 0, 0, 0),
17992 SND_SOC_DAPM_AIF_OUT("INT5_MI2S_RX", "INT5 MI2S Playback",
17993 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017994 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_RX", "INT4 MI2S Playback",
17995 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053017996 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_TX", "INT4 MI2S Capture",
17997 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017998 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_RX", "Quinary MI2S Playback",
17999 0, 0, 0, 0),
18000 SND_SOC_DAPM_AIF_IN("PRI_I2S_TX", "Primary I2S Capture", 0, 0, 0, 0),
18001 SND_SOC_DAPM_AIF_IN("MI2S_TX", "MI2S Capture", 0, 0, 0, 0),
18002 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_TX", "Quaternary MI2S Capture",
18003 0, 0, 0, 0),
18004 SND_SOC_DAPM_AIF_IN("PRI_MI2S_TX", "Primary MI2S Capture",
18005 0, 0, 0, 0),
18006 SND_SOC_DAPM_AIF_IN("TERT_MI2S_TX", "Tertiary MI2S Capture",
18007 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053018008 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_TX", "INT0 MI2S Capture",
18009 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018010 SND_SOC_DAPM_AIF_IN("INT2_MI2S_TX", "INT2 MI2S Capture",
18011 0, 0, 0, 0),
18012 SND_SOC_DAPM_AIF_IN("INT3_MI2S_TX", "INT3 MI2S Capture",
18013 0, 0, 0, 0),
18014 SND_SOC_DAPM_AIF_IN("SEC_MI2S_TX", "Secondary MI2S Capture",
18015 0, 0, 0, 0),
18016 SND_SOC_DAPM_AIF_IN("SLIMBUS_0_TX", "Slimbus Capture", 0, 0, 0, 0),
18017 SND_SOC_DAPM_AIF_IN("SLIMBUS_2_TX", "Slimbus2 Capture", 0, 0, 0, 0),
18018 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_TX", "Quinary MI2S Capture",
18019 0, 0, 0, 0),
18020 SND_SOC_DAPM_AIF_IN("SENARY_MI2S_TX", "Senary MI2S Capture",
18021 0, 0, 0, 0),
18022 SND_SOC_DAPM_AIF_OUT("INT_BT_SCO_RX", "Internal BT-SCO Playback",
18023 0, 0, 0, 0),
18024 SND_SOC_DAPM_AIF_IN("INT_BT_SCO_TX", "Internal BT-SCO Capture",
18025 0, 0, 0, 0),
18026 SND_SOC_DAPM_AIF_OUT("INT_BT_A2DP_RX", "Internal BT-A2DP Playback",
18027 0, 0, 0, 0),
18028 SND_SOC_DAPM_AIF_OUT("INT_FM_RX", "Internal FM Playback",
18029 0, 0, 0, 0),
18030 SND_SOC_DAPM_AIF_IN("INT_FM_TX", "Internal FM Capture",
18031 0, 0, 0, 0),
18032 SND_SOC_DAPM_AIF_OUT("PCM_RX", "AFE Playback",
18033 0, 0, 0, 0),
18034 SND_SOC_DAPM_AIF_IN("PCM_TX", "AFE Capture",
18035 0, 0, 0, 0),
18036 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_0", "Primary TDM0 Playback",
18037 0, 0, 0, 0),
18038 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_0", "Primary TDM0 Capture",
18039 0, 0, 0, 0),
18040 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_1", "Primary TDM1 Playback",
18041 0, 0, 0, 0),
18042 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_1", "Primary TDM1 Capture",
18043 0, 0, 0, 0),
18044 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_2", "Primary TDM2 Playback",
18045 0, 0, 0, 0),
18046 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_2", "Primary TDM2 Capture",
18047 0, 0, 0, 0),
18048 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_3", "Primary TDM3 Playback",
18049 0, 0, 0, 0),
18050 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_3", "Primary TDM3 Capture",
18051 0, 0, 0, 0),
18052 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_4", "Primary TDM4 Playback",
18053 0, 0, 0, 0),
18054 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_4", "Primary TDM4 Capture",
18055 0, 0, 0, 0),
18056 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_5", "Primary TDM5 Playback",
18057 0, 0, 0, 0),
18058 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_5", "Primary TDM5 Capture",
18059 0, 0, 0, 0),
18060 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_6", "Primary TDM6 Playback",
18061 0, 0, 0, 0),
18062 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_6", "Primary TDM6 Capture",
18063 0, 0, 0, 0),
18064 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_7", "Primary TDM7 Playback",
18065 0, 0, 0, 0),
18066 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_7", "Primary TDM7 Capture",
18067 0, 0, 0, 0),
18068 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_0", "Secondary TDM0 Playback",
18069 0, 0, 0, 0),
18070 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_0", "Secondary TDM0 Capture",
18071 0, 0, 0, 0),
18072 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_1", "Secondary TDM1 Playback",
18073 0, 0, 0, 0),
18074 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_1", "Secondary TDM1 Capture",
18075 0, 0, 0, 0),
18076 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_2", "Secondary TDM2 Playback",
18077 0, 0, 0, 0),
18078 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_2", "Secondary TDM2 Capture",
18079 0, 0, 0, 0),
18080 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_3", "Secondary TDM3 Playback",
18081 0, 0, 0, 0),
18082 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_3", "Secondary TDM3 Capture",
18083 0, 0, 0, 0),
18084 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_4", "Secondary TDM4 Playback",
18085 0, 0, 0, 0),
18086 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_4", "Secondary TDM4 Capture",
18087 0, 0, 0, 0),
18088 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_5", "Secondary TDM5 Playback",
18089 0, 0, 0, 0),
18090 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_5", "Secondary TDM5 Capture",
18091 0, 0, 0, 0),
18092 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_6", "Secondary TDM6 Playback",
18093 0, 0, 0, 0),
18094 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_6", "Secondary TDM6 Capture",
18095 0, 0, 0, 0),
18096 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_7", "Secondary TDM7 Playback",
18097 0, 0, 0, 0),
18098 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_7", "Secondary TDM7 Capture",
18099 0, 0, 0, 0),
18100 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_0", "Tertiary TDM0 Playback",
18101 0, 0, 0, 0),
18102 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_0", "Tertiary TDM0 Capture",
18103 0, 0, 0, 0),
18104 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_1", "Tertiary TDM1 Playback",
18105 0, 0, 0, 0),
18106 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_1", "Tertiary TDM1 Capture",
18107 0, 0, 0, 0),
18108 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_2", "Tertiary TDM2 Playback",
18109 0, 0, 0, 0),
18110 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_2", "Tertiary TDM2 Capture",
18111 0, 0, 0, 0),
18112 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_3", "Tertiary TDM3 Playback",
18113 0, 0, 0, 0),
18114 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_3", "Tertiary TDM3 Capture",
18115 0, 0, 0, 0),
18116 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_4", "Tertiary TDM4 Playback",
18117 0, 0, 0, 0),
18118 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_4", "Tertiary TDM4 Capture",
18119 0, 0, 0, 0),
18120 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_5", "Tertiary TDM5 Playback",
18121 0, 0, 0, 0),
18122 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_5", "Tertiary TDM5 Capture",
18123 0, 0, 0, 0),
18124 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_6", "Tertiary TDM6 Playback",
18125 0, 0, 0, 0),
18126 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_6", "Tertiary TDM6 Capture",
18127 0, 0, 0, 0),
18128 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_7", "Tertiary TDM7 Playback",
18129 0, 0, 0, 0),
18130 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_7", "Tertiary TDM7 Capture",
18131 0, 0, 0, 0),
18132 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_0", "Quaternary TDM0 Playback",
18133 0, 0, 0, 0),
18134 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_0", "Quaternary TDM0 Capture",
18135 0, 0, 0, 0),
18136 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_1", "Quaternary TDM1 Playback",
18137 0, 0, 0, 0),
18138 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_1", "Quaternary TDM1 Capture",
18139 0, 0, 0, 0),
18140 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_2", "Quaternary TDM2 Playback",
18141 0, 0, 0, 0),
18142 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_2", "Quaternary TDM2 Capture",
18143 0, 0, 0, 0),
18144 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_3", "Quaternary TDM3 Playback",
18145 0, 0, 0, 0),
18146 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_3", "Quaternary TDM3 Capture",
18147 0, 0, 0, 0),
18148 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_4", "Quaternary TDM4 Playback",
18149 0, 0, 0, 0),
18150 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_4", "Quaternary TDM4 Capture",
18151 0, 0, 0, 0),
18152 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_5", "Quaternary TDM5 Playback",
18153 0, 0, 0, 0),
18154 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_5", "Quaternary TDM5 Capture",
18155 0, 0, 0, 0),
18156 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_6", "Quaternary TDM6 Playback",
18157 0, 0, 0, 0),
18158 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_6", "Quaternary TDM6 Capture",
18159 0, 0, 0, 0),
18160 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_7", "Quaternary TDM7 Playback",
18161 0, 0, 0, 0),
18162 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_7", "Quaternary TDM7 Capture",
18163 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018164 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_0", "Quinary TDM0 Playback",
18165 0, 0, 0, 0),
18166 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_0", "Quinary TDM0 Capture",
18167 0, 0, 0, 0),
18168 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_1", "Quinary TDM1 Playback",
18169 0, 0, 0, 0),
18170 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_1", "Quinary TDM1 Capture",
18171 0, 0, 0, 0),
18172 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_2", "Quinary TDM2 Playback",
18173 0, 0, 0, 0),
18174 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_2", "Quinary TDM2 Capture",
18175 0, 0, 0, 0),
18176 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_3", "Quinary TDM3 Playback",
18177 0, 0, 0, 0),
18178 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_3", "Quinary TDM3 Capture",
18179 0, 0, 0, 0),
18180 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_4", "Quinary TDM4 Playback",
18181 0, 0, 0, 0),
18182 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_4", "Quinary TDM4 Capture",
18183 0, 0, 0, 0),
18184 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_5", "Quinary TDM5 Playback",
18185 0, 0, 0, 0),
18186 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_5", "Quinary TDM5 Capture",
18187 0, 0, 0, 0),
18188 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_6", "Quinary TDM6 Playback",
18189 0, 0, 0, 0),
18190 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_6", "Quinary TDM6 Capture",
18191 0, 0, 0, 0),
18192 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_7", "Quinary TDM7 Playback",
18193 0, 0, 0, 0),
18194 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_7", "Quinary TDM7 Capture",
18195 0, 0, 0, 0),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018196 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_0", "WSA CDC DMA0 Playback",
18197 0, 0, 0, 0),
18198 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_0", "WSA CDC DMA0 Capture",
18199 0, 0, 0, 0),
18200 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_1", "WSA CDC DMA1 Playback",
18201 0, 0, 0, 0),
18202 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_1", "WSA CDC DMA1 Capture",
18203 0, 0, 0, 0),
18204 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_2", "WSA CDC DMA2 Capture",
18205 0, 0, 0, 0),
18206 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_0", "VA CDC DMA0 Capture",
18207 0, 0, 0, 0),
18208 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_1", "VA CDC DMA1 Capture",
18209 0, 0, 0, 0),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053018210 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_0", "RX CDC DMA0 Playback",
18211 0, 0, 0, 0),
18212 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_0", "TX CDC DMA0 Capture",
18213 0, 0, 0, 0),
18214 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_1", "RX CDC DMA1 Playback",
18215 0, 0, 0, 0),
18216 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_1", "TX CDC DMA1 Capture",
18217 0, 0, 0, 0),
18218 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_2", "RX CDC DMA2 Playback",
18219 0, 0, 0, 0),
18220 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_2", "TX CDC DMA2 Capture",
18221 0, 0, 0, 0),
18222 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_3", "RX CDC DMA3 Playback",
18223 0, 0, 0, 0),
18224 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_3", "TX CDC DMA3 Capture",
18225 0, 0, 0, 0),
18226 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_4", "RX CDC DMA4 Playback",
18227 0, 0, 0, 0),
18228 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_4", "TX CDC DMA4 Capture",
18229 0, 0, 0, 0),
18230 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_5", "RX CDC DMA5 Playback",
18231 0, 0, 0, 0),
18232 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_5", "TX CDC DMA5 Capture",
18233 0, 0, 0, 0),
18234 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_6", "RX CDC DMA6 Playback",
18235 0, 0, 0, 0),
18236 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_7", "RX CDC DMA7 Playback",
18237 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018238 /* incall */
18239 SND_SOC_DAPM_AIF_OUT("VOICE_PLAYBACK_TX", "Voice Farend Playback",
18240 0, 0, 0, 0),
18241 SND_SOC_DAPM_AIF_OUT("VOICE2_PLAYBACK_TX", "Voice2 Farend Playback",
18242 0, 0, 0, 0),
18243 SND_SOC_DAPM_AIF_OUT("SLIMBUS_4_RX", "Slimbus4 Playback",
18244 0, 0, 0, 0),
18245 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_TX", "Voice Uplink Capture",
18246 0, 0, 0, 0),
18247 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_RX", "Voice Downlink Capture",
18248 0, 0, 0, 0),
18249 SND_SOC_DAPM_AIF_IN("SLIMBUS_4_TX", "Slimbus4 Capture",
18250 0, 0, 0, 0),
18251 SND_SOC_DAPM_AIF_IN("SENARY_TX", "Senary_mi2s Capture",
18252 0, 0, 0, 0),
18253 SND_SOC_DAPM_AIF_IN("INT5_MI2S_TX", "INT5 MI2S Capture",
18254 0, 0, 0, 0),
18255 SND_SOC_DAPM_AIF_IN("SLIMBUS_5_TX", "Slimbus5 Capture", 0, 0, 0, 0),
18256
18257 SND_SOC_DAPM_AIF_OUT("AUX_PCM_RX", "AUX PCM Playback", 0, 0, 0, 0),
18258 SND_SOC_DAPM_AIF_IN("AUX_PCM_TX", "AUX PCM Capture", 0, 0, 0, 0),
18259 SND_SOC_DAPM_AIF_OUT("SEC_AUX_PCM_RX", "Sec AUX PCM Playback",
18260 0, 0, 0, 0),
18261 SND_SOC_DAPM_AIF_IN("SEC_AUX_PCM_TX", "Sec AUX PCM Capture",
18262 0, 0, 0, 0),
18263 SND_SOC_DAPM_AIF_OUT("TERT_AUX_PCM_RX", "Tert AUX PCM Playback",
18264 0, 0, 0, 0),
18265 SND_SOC_DAPM_AIF_IN("TERT_AUX_PCM_TX", "Tert AUX PCM Capture",
18266 0, 0, 0, 0),
18267 SND_SOC_DAPM_AIF_OUT("QUAT_AUX_PCM_RX", "Quat AUX PCM Playback",
18268 0, 0, 0, 0),
18269 SND_SOC_DAPM_AIF_IN("QUAT_AUX_PCM_TX", "Quat AUX PCM Capture",
18270 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018271 SND_SOC_DAPM_AIF_OUT("QUIN_AUX_PCM_RX", "Quin AUX PCM Playback",
18272 0, 0, 0, 0),
18273 SND_SOC_DAPM_AIF_IN("QUIN_AUX_PCM_TX", "Quin AUX PCM Capture",
18274 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018275 SND_SOC_DAPM_AIF_IN("VOICE_STUB_DL", "VOICE_STUB Playback", 0, 0, 0, 0),
18276 SND_SOC_DAPM_AIF_OUT("VOICE_STUB_UL", "VOICE_STUB Capture", 0, 0, 0, 0),
18277 SND_SOC_DAPM_AIF_IN("VOICE2_STUB_DL", "VOICE2_STUB Playback",
18278 0, 0, 0, 0),
18279 SND_SOC_DAPM_AIF_OUT("VOICE2_STUB_UL", "VOICE2_STUB Capture",
18280 0, 0, 0, 0),
18281 SND_SOC_DAPM_AIF_IN("VOLTE_STUB_DL", "VOLTE_STUB Playback", 0, 0, 0, 0),
18282 SND_SOC_DAPM_AIF_OUT("VOLTE_STUB_UL", "VOLTE_STUB Capture", 0, 0, 0, 0),
18283 SND_SOC_DAPM_AIF_OUT("STUB_RX", "Stub Playback", 0, 0, 0, 0),
18284 SND_SOC_DAPM_AIF_IN("STUB_TX", "Stub Capture", 0, 0, 0, 0),
18285 SND_SOC_DAPM_AIF_OUT("SLIMBUS_1_RX", "Slimbus1 Playback", 0, 0, 0, 0),
18286 SND_SOC_DAPM_AIF_IN("SLIMBUS_1_TX", "Slimbus1 Capture", 0, 0, 0, 0),
18287 SND_SOC_DAPM_AIF_IN("STUB_1_TX", "Stub1 Capture", 0, 0, 0, 0),
18288 SND_SOC_DAPM_AIF_OUT("SLIMBUS_3_RX", "Slimbus3 Playback", 0, 0, 0, 0),
18289 SND_SOC_DAPM_AIF_IN("SLIMBUS_3_TX", "Slimbus3 Capture", 0, 0, 0, 0),
18290 /* In- call recording */
18291 SND_SOC_DAPM_AIF_OUT("SLIMBUS_6_RX", "Slimbus6 Playback", 0, 0, 0, 0),
18292 SND_SOC_DAPM_AIF_IN("SLIMBUS_6_TX", "Slimbus6 Capture", 0, 0, 0, 0),
18293
18294 SND_SOC_DAPM_AIF_OUT("SLIMBUS_7_RX", "Slimbus7 Playback", 0, 0, 0, 0),
18295 SND_SOC_DAPM_AIF_IN("SLIMBUS_7_TX", "Slimbus7 Capture", 0, 0, 0, 0),
18296
18297 SND_SOC_DAPM_AIF_OUT("SLIMBUS_8_RX", "Slimbus8 Playback", 0, 0, 0, 0),
18298 SND_SOC_DAPM_AIF_IN("SLIMBUS_8_TX", "Slimbus8 Capture", 0, 0, 0, 0),
18299 SND_SOC_DAPM_AIF_OUT("USB_AUDIO_RX", "USB Audio Playback", 0, 0, 0, 0),
18300 SND_SOC_DAPM_AIF_IN("USB_AUDIO_TX", "USB Audio Capture", 0, 0, 0, 0),
18301
18302 /* Switch Definitions */
18303 SND_SOC_DAPM_SWITCH("SLIMBUS_DL_HL", SND_SOC_NOPM, 0, 0,
18304 &slim_fm_switch_mixer_controls),
18305 SND_SOC_DAPM_SWITCH("SLIMBUS1_DL_HL", SND_SOC_NOPM, 0, 0,
18306 &slim1_fm_switch_mixer_controls),
18307 SND_SOC_DAPM_SWITCH("SLIMBUS3_DL_HL", SND_SOC_NOPM, 0, 0,
18308 &slim3_fm_switch_mixer_controls),
18309 SND_SOC_DAPM_SWITCH("SLIMBUS4_DL_HL", SND_SOC_NOPM, 0, 0,
18310 &slim4_fm_switch_mixer_controls),
18311 SND_SOC_DAPM_SWITCH("SLIMBUS6_DL_HL", SND_SOC_NOPM, 0, 0,
18312 &slim6_fm_switch_mixer_controls),
18313 SND_SOC_DAPM_SWITCH("PCM_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18314 &pcm_rx_switch_mixer_controls),
18315 SND_SOC_DAPM_SWITCH("INT0_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18316 &int0_mi2s_rx_switch_mixer_controls),
18317 SND_SOC_DAPM_SWITCH("INT4_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18318 &int4_mi2s_rx_switch_mixer_controls),
18319 SND_SOC_DAPM_SWITCH("PRI_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18320 &pri_mi2s_rx_switch_mixer_controls),
18321 SND_SOC_DAPM_SWITCH("SEC_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18322 &sec_mi2s_rx_switch_mixer_controls),
18323 SND_SOC_DAPM_SWITCH("TERT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18324 &tert_mi2s_rx_switch_mixer_controls),
18325 SND_SOC_DAPM_SWITCH("QUAT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18326 &quat_mi2s_rx_switch_mixer_controls),
Rohit Kumara5077932017-09-10 22:05:05 +053018327 SND_SOC_DAPM_SWITCH("QUIN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18328 &quin_mi2s_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018329 SND_SOC_DAPM_SWITCH("HFP_PRI_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
18330 &hfp_pri_aux_switch_mixer_controls),
18331 SND_SOC_DAPM_SWITCH("HFP_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
18332 &hfp_aux_switch_mixer_controls),
18333 SND_SOC_DAPM_SWITCH("HFP_INT_UL_HL", SND_SOC_NOPM, 0, 0,
18334 &hfp_int_switch_mixer_controls),
18335 SND_SOC_DAPM_SWITCH("HFP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
18336 &hfp_slim7_switch_mixer_controls),
18337 SND_SOC_DAPM_SWITCH("USB_DL_HL", SND_SOC_NOPM, 0, 0,
18338 &usb_switch_mixer_controls),
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080018339 SND_SOC_DAPM_SWITCH("A2DP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
18340 &a2dp_slim7_switch_mixer_controls),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053018341 SND_SOC_DAPM_SWITCH("WSA_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
18342 &cdc_dma_fm_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018343
18344 /* Mixer definitions */
18345 SND_SOC_DAPM_MIXER("PRI_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18346 pri_i2s_rx_mixer_controls, ARRAY_SIZE(pri_i2s_rx_mixer_controls)),
18347 SND_SOC_DAPM_MIXER("SEC_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18348 sec_i2s_rx_mixer_controls, ARRAY_SIZE(sec_i2s_rx_mixer_controls)),
18349 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18350 slimbus_rx_mixer_controls, ARRAY_SIZE(slimbus_rx_mixer_controls)),
18351 SND_SOC_DAPM_MIXER("SLIMBUS_2_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18352 slimbus_2_rx_mixer_controls, ARRAY_SIZE(slimbus_2_rx_mixer_controls)),
18353 SND_SOC_DAPM_MIXER("SLIMBUS_5_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18354 slimbus_5_rx_mixer_controls, ARRAY_SIZE(slimbus_5_rx_mixer_controls)),
18355 SND_SOC_DAPM_MIXER("SLIMBUS_7_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18356 slimbus_7_rx_mixer_controls, ARRAY_SIZE(slimbus_7_rx_mixer_controls)),
18357 SND_SOC_DAPM_MIXER("HDMI Mixer", SND_SOC_NOPM, 0, 0,
18358 hdmi_mixer_controls, ARRAY_SIZE(hdmi_mixer_controls)),
18359 SND_SOC_DAPM_MIXER("DISPLAY_PORT Mixer", SND_SOC_NOPM, 0, 0,
18360 display_port_mixer_controls, ARRAY_SIZE(display_port_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070018361 SND_SOC_DAPM_MIXER("DISPLAY_PORT1 Mixer", SND_SOC_NOPM, 0, 0,
18362 display_port1_mixer_controls, ARRAY_SIZE(display_port1_mixer_controls)),
Ralf Herzc8701f72018-06-20 11:37:35 +020018363 SND_SOC_DAPM_MIXER("PRI_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18364 pri_spdif_rx_mixer_controls, ARRAY_SIZE(pri_spdif_rx_mixer_controls)),
18365 SND_SOC_DAPM_MIXER("SEC_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18366 sec_spdif_rx_mixer_controls, ARRAY_SIZE(sec_spdif_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018367 SND_SOC_DAPM_MIXER("MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18368 mi2s_rx_mixer_controls, ARRAY_SIZE(mi2s_rx_mixer_controls)),
18369 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18370 quaternary_mi2s_rx_mixer_controls,
18371 ARRAY_SIZE(quaternary_mi2s_rx_mixer_controls)),
18372 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18373 tertiary_mi2s_rx_mixer_controls,
18374 ARRAY_SIZE(tertiary_mi2s_rx_mixer_controls)),
18375 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18376 secondary_mi2s_rx_mixer_controls,
18377 ARRAY_SIZE(secondary_mi2s_rx_mixer_controls)),
18378 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_SD1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18379 secondary_mi2s_rx2_mixer_controls,
18380 ARRAY_SIZE(secondary_mi2s_rx2_mixer_controls)),
18381 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18382 primary_mi2s_rx_mixer_controls,
18383 ARRAY_SIZE(primary_mi2s_rx_mixer_controls)),
18384 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18385 int0_mi2s_rx_mixer_controls,
18386 ARRAY_SIZE(int0_mi2s_rx_mixer_controls)),
18387 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18388 int4_mi2s_rx_mixer_controls,
18389 ARRAY_SIZE(int4_mi2s_rx_mixer_controls)),
18390 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18391 quinary_mi2s_rx_mixer_controls,
18392 ARRAY_SIZE(quinary_mi2s_rx_mixer_controls)),
18393 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18394 pri_tdm_rx_0_mixer_controls,
18395 ARRAY_SIZE(pri_tdm_rx_0_mixer_controls)),
18396 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18397 pri_tdm_rx_1_mixer_controls,
18398 ARRAY_SIZE(pri_tdm_rx_1_mixer_controls)),
18399 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18400 pri_tdm_rx_2_mixer_controls,
18401 ARRAY_SIZE(pri_tdm_rx_2_mixer_controls)),
18402 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18403 pri_tdm_rx_3_mixer_controls,
18404 ARRAY_SIZE(pri_tdm_rx_3_mixer_controls)),
18405 SND_SOC_DAPM_MIXER("PRI_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18406 pri_tdm_tx_0_mixer_controls,
18407 ARRAY_SIZE(pri_tdm_tx_0_mixer_controls)),
18408 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18409 sec_tdm_rx_0_mixer_controls,
18410 ARRAY_SIZE(sec_tdm_rx_0_mixer_controls)),
18411 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18412 sec_tdm_rx_1_mixer_controls,
18413 ARRAY_SIZE(sec_tdm_rx_1_mixer_controls)),
18414 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18415 sec_tdm_rx_2_mixer_controls,
18416 ARRAY_SIZE(sec_tdm_rx_2_mixer_controls)),
18417 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18418 sec_tdm_rx_3_mixer_controls,
18419 ARRAY_SIZE(sec_tdm_rx_3_mixer_controls)),
18420 SND_SOC_DAPM_MIXER("SEC_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18421 sec_tdm_tx_0_mixer_controls,
18422 ARRAY_SIZE(sec_tdm_tx_0_mixer_controls)),
18423 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18424 tert_tdm_rx_0_mixer_controls,
18425 ARRAY_SIZE(tert_tdm_rx_0_mixer_controls)),
18426 SND_SOC_DAPM_MIXER("TERT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18427 tert_tdm_tx_0_mixer_controls,
18428 ARRAY_SIZE(tert_tdm_tx_0_mixer_controls)),
18429 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18430 tert_tdm_rx_1_mixer_controls,
18431 ARRAY_SIZE(tert_tdm_rx_1_mixer_controls)),
18432 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18433 tert_tdm_rx_2_mixer_controls,
18434 ARRAY_SIZE(tert_tdm_rx_2_mixer_controls)),
18435 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18436 tert_tdm_rx_3_mixer_controls,
18437 ARRAY_SIZE(tert_tdm_rx_3_mixer_controls)),
18438 SND_SOC_DAPM_MIXER("TERT_TDM_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
18439 tert_tdm_rx_4_mixer_controls,
18440 ARRAY_SIZE(tert_tdm_rx_4_mixer_controls)),
18441 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18442 quat_tdm_rx_0_mixer_controls,
18443 ARRAY_SIZE(quat_tdm_rx_0_mixer_controls)),
18444 SND_SOC_DAPM_MIXER("QUAT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18445 quat_tdm_tx_0_mixer_controls,
18446 ARRAY_SIZE(quat_tdm_tx_0_mixer_controls)),
18447 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18448 quat_tdm_rx_1_mixer_controls,
18449 ARRAY_SIZE(quat_tdm_rx_1_mixer_controls)),
18450 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18451 quat_tdm_rx_2_mixer_controls,
18452 ARRAY_SIZE(quat_tdm_rx_2_mixer_controls)),
18453 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18454 quat_tdm_rx_3_mixer_controls,
18455 ARRAY_SIZE(quat_tdm_rx_3_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053018456 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18457 quin_tdm_rx_0_mixer_controls,
18458 ARRAY_SIZE(quin_tdm_rx_0_mixer_controls)),
18459 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18460 quin_tdm_tx_0_mixer_controls,
18461 ARRAY_SIZE(quin_tdm_tx_0_mixer_controls)),
18462 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18463 quin_tdm_rx_1_mixer_controls,
18464 ARRAY_SIZE(quin_tdm_rx_1_mixer_controls)),
18465 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18466 quin_tdm_rx_2_mixer_controls,
18467 ARRAY_SIZE(quin_tdm_rx_2_mixer_controls)),
18468 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18469 quin_tdm_rx_3_mixer_controls,
18470 ARRAY_SIZE(quin_tdm_rx_3_mixer_controls)),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018471 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18472 wsa_cdc_dma_rx_0_mixer_controls,
18473 ARRAY_SIZE(wsa_cdc_dma_rx_0_mixer_controls)),
18474 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18475 wsa_cdc_dma_rx_1_mixer_controls,
18476 ARRAY_SIZE(wsa_cdc_dma_rx_1_mixer_controls)),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053018477 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18478 rx_cdc_dma_rx_0_mixer_controls,
18479 ARRAY_SIZE(rx_cdc_dma_rx_0_mixer_controls)),
18480 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18481 rx_cdc_dma_rx_1_mixer_controls,
18482 ARRAY_SIZE(rx_cdc_dma_rx_1_mixer_controls)),
18483 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18484 rx_cdc_dma_rx_2_mixer_controls,
18485 ARRAY_SIZE(rx_cdc_dma_rx_2_mixer_controls)),
18486 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18487 rx_cdc_dma_rx_3_mixer_controls,
18488 ARRAY_SIZE(rx_cdc_dma_rx_3_mixer_controls)),
18489 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
18490 rx_cdc_dma_rx_4_mixer_controls,
18491 ARRAY_SIZE(rx_cdc_dma_rx_4_mixer_controls)),
18492 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_5 Audio Mixer", SND_SOC_NOPM, 0, 0,
18493 rx_cdc_dma_rx_5_mixer_controls,
18494 ARRAY_SIZE(rx_cdc_dma_rx_5_mixer_controls)),
18495 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_6 Audio Mixer", SND_SOC_NOPM, 0, 0,
18496 rx_cdc_dma_rx_6_mixer_controls,
18497 ARRAY_SIZE(rx_cdc_dma_rx_6_mixer_controls)),
18498 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_7 Audio Mixer", SND_SOC_NOPM, 0, 0,
18499 rx_cdc_dma_rx_7_mixer_controls,
18500 ARRAY_SIZE(rx_cdc_dma_rx_7_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018501 SND_SOC_DAPM_MIXER("MultiMedia1 Mixer", SND_SOC_NOPM, 0, 0,
18502 mmul1_mixer_controls, ARRAY_SIZE(mmul1_mixer_controls)),
18503 SND_SOC_DAPM_MIXER("MultiMedia2 Mixer", SND_SOC_NOPM, 0, 0,
18504 mmul2_mixer_controls, ARRAY_SIZE(mmul2_mixer_controls)),
18505 SND_SOC_DAPM_MIXER("MultiMedia3 Mixer", SND_SOC_NOPM, 0, 0,
18506 mmul3_mixer_controls, ARRAY_SIZE(mmul3_mixer_controls)),
18507 SND_SOC_DAPM_MIXER("MultiMedia4 Mixer", SND_SOC_NOPM, 0, 0,
18508 mmul4_mixer_controls, ARRAY_SIZE(mmul4_mixer_controls)),
18509 SND_SOC_DAPM_MIXER("MultiMedia5 Mixer", SND_SOC_NOPM, 0, 0,
18510 mmul5_mixer_controls, ARRAY_SIZE(mmul5_mixer_controls)),
18511 SND_SOC_DAPM_MIXER("MultiMedia6 Mixer", SND_SOC_NOPM, 0, 0,
18512 mmul6_mixer_controls, ARRAY_SIZE(mmul6_mixer_controls)),
18513 SND_SOC_DAPM_MIXER("MultiMedia8 Mixer", SND_SOC_NOPM, 0, 0,
18514 mmul8_mixer_controls, ARRAY_SIZE(mmul8_mixer_controls)),
18515 SND_SOC_DAPM_MIXER("MultiMedia9 Mixer", SND_SOC_NOPM, 0, 0,
18516 mmul9_mixer_controls, ARRAY_SIZE(mmul9_mixer_controls)),
Laxminath Kasam38070be2017-08-17 18:21:59 +053018517 SND_SOC_DAPM_MIXER("MultiMedia10 Mixer", SND_SOC_NOPM, 0, 0,
18518 mmul10_mixer_controls, ARRAY_SIZE(mmul10_mixer_controls)),
Asish Bhattacharya34504582017-08-08 12:55:01 +053018519 SND_SOC_DAPM_MIXER("MultiMedia16 Mixer", SND_SOC_NOPM, 0, 0,
18520 mmul16_mixer_controls, ARRAY_SIZE(mmul16_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018521 SND_SOC_DAPM_MIXER("MultiMedia17 Mixer", SND_SOC_NOPM, 0, 0,
18522 mmul17_mixer_controls, ARRAY_SIZE(mmul17_mixer_controls)),
18523 SND_SOC_DAPM_MIXER("MultiMedia18 Mixer", SND_SOC_NOPM, 0, 0,
18524 mmul18_mixer_controls, ARRAY_SIZE(mmul18_mixer_controls)),
18525 SND_SOC_DAPM_MIXER("MultiMedia19 Mixer", SND_SOC_NOPM, 0, 0,
18526 mmul19_mixer_controls, ARRAY_SIZE(mmul19_mixer_controls)),
18527 SND_SOC_DAPM_MIXER("MultiMedia20 Mixer", SND_SOC_NOPM, 0, 0,
18528 mmul20_mixer_controls, ARRAY_SIZE(mmul20_mixer_controls)),
Derek Chen07c6d1c2018-07-05 10:39:25 -070018529 SND_SOC_DAPM_MIXER("MultiMedia21 Mixer", SND_SOC_NOPM, 0, 0,
18530 mmul21_mixer_controls, ARRAY_SIZE(mmul21_mixer_controls)),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053018531 SND_SOC_DAPM_MIXER("MultiMedia28 Mixer", SND_SOC_NOPM, 0, 0,
18532 mmul28_mixer_controls, ARRAY_SIZE(mmul28_mixer_controls)),
18533 SND_SOC_DAPM_MIXER("MultiMedia29 Mixer", SND_SOC_NOPM, 0, 0,
18534 mmul29_mixer_controls, ARRAY_SIZE(mmul29_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018535 SND_SOC_DAPM_MIXER("AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18536 auxpcm_rx_mixer_controls, ARRAY_SIZE(auxpcm_rx_mixer_controls)),
18537 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18538 sec_auxpcm_rx_mixer_controls, ARRAY_SIZE(sec_auxpcm_rx_mixer_controls)),
18539 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18540 tert_auxpcm_rx_mixer_controls,
18541 ARRAY_SIZE(tert_auxpcm_rx_mixer_controls)),
18542 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18543 quat_auxpcm_rx_mixer_controls,
18544 ARRAY_SIZE(quat_auxpcm_rx_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053018545 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18546 quin_auxpcm_rx_mixer_controls,
18547 ARRAY_SIZE(quin_auxpcm_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018548 /* incall */
18549 SND_SOC_DAPM_MIXER("Incall_Music Audio Mixer", SND_SOC_NOPM, 0, 0,
18550 incall_music_delivery_mixer_controls,
18551 ARRAY_SIZE(incall_music_delivery_mixer_controls)),
18552 SND_SOC_DAPM_MIXER("Incall_Music_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18553 incall_music2_delivery_mixer_controls,
18554 ARRAY_SIZE(incall_music2_delivery_mixer_controls)),
18555 SND_SOC_DAPM_MIXER("SLIMBUS_4_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18556 slimbus_4_rx_mixer_controls,
18557 ARRAY_SIZE(slimbus_4_rx_mixer_controls)),
18558 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18559 slimbus_6_rx_mixer_controls,
18560 ARRAY_SIZE(slimbus_6_rx_mixer_controls)),
18561 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18562 usb_audio_rx_mixer_controls,
18563 ARRAY_SIZE(usb_audio_rx_mixer_controls)),
18564 /* Voice Mixer */
18565 SND_SOC_DAPM_MIXER("PRI_RX_Voice Mixer",
18566 SND_SOC_NOPM, 0, 0, pri_rx_voice_mixer_controls,
18567 ARRAY_SIZE(pri_rx_voice_mixer_controls)),
18568 SND_SOC_DAPM_MIXER("SEC_RX_Voice Mixer",
18569 SND_SOC_NOPM, 0, 0,
18570 sec_i2s_rx_voice_mixer_controls,
18571 ARRAY_SIZE(sec_i2s_rx_voice_mixer_controls)),
18572 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_Voice Mixer",
18573 SND_SOC_NOPM, 0, 0,
18574 sec_mi2s_rx_voice_mixer_controls,
18575 ARRAY_SIZE(sec_mi2s_rx_voice_mixer_controls)),
18576 SND_SOC_DAPM_MIXER("SLIM_0_RX_Voice Mixer",
18577 SND_SOC_NOPM, 0, 0,
18578 slimbus_rx_voice_mixer_controls,
18579 ARRAY_SIZE(slimbus_rx_voice_mixer_controls)),
18580 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX_Voice Mixer",
18581 SND_SOC_NOPM, 0, 0,
18582 bt_sco_rx_voice_mixer_controls,
18583 ARRAY_SIZE(bt_sco_rx_voice_mixer_controls)),
18584 SND_SOC_DAPM_MIXER("AFE_PCM_RX_Voice Mixer",
18585 SND_SOC_NOPM, 0, 0,
18586 afe_pcm_rx_voice_mixer_controls,
18587 ARRAY_SIZE(afe_pcm_rx_voice_mixer_controls)),
18588 SND_SOC_DAPM_MIXER("AUX_PCM_RX_Voice Mixer",
18589 SND_SOC_NOPM, 0, 0,
18590 aux_pcm_rx_voice_mixer_controls,
18591 ARRAY_SIZE(aux_pcm_rx_voice_mixer_controls)),
18592 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX_Voice Mixer",
18593 SND_SOC_NOPM, 0, 0,
18594 sec_aux_pcm_rx_voice_mixer_controls,
18595 ARRAY_SIZE(sec_aux_pcm_rx_voice_mixer_controls)),
18596 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX_Voice Mixer",
18597 SND_SOC_NOPM, 0, 0,
18598 tert_aux_pcm_rx_voice_mixer_controls,
18599 ARRAY_SIZE(tert_aux_pcm_rx_voice_mixer_controls)),
18600 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX_Voice Mixer",
18601 SND_SOC_NOPM, 0, 0,
18602 quat_aux_pcm_rx_voice_mixer_controls,
18603 ARRAY_SIZE(quat_aux_pcm_rx_voice_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053018604 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX_Voice Mixer",
18605 SND_SOC_NOPM, 0, 0,
18606 quin_aux_pcm_rx_voice_mixer_controls,
18607 ARRAY_SIZE(quin_aux_pcm_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018608 SND_SOC_DAPM_MIXER("HDMI_RX_Voice Mixer",
18609 SND_SOC_NOPM, 0, 0,
18610 hdmi_rx_voice_mixer_controls,
18611 ARRAY_SIZE(hdmi_rx_voice_mixer_controls)),
18612 SND_SOC_DAPM_MIXER("MI2S_RX_Voice Mixer",
18613 SND_SOC_NOPM, 0, 0,
18614 mi2s_rx_voice_mixer_controls,
18615 ARRAY_SIZE(mi2s_rx_voice_mixer_controls)),
18616 SND_SOC_DAPM_MIXER("PRI_MI2S_RX_Voice Mixer",
18617 SND_SOC_NOPM, 0, 0,
18618 pri_mi2s_rx_voice_mixer_controls,
18619 ARRAY_SIZE(pri_mi2s_rx_voice_mixer_controls)),
18620 SND_SOC_DAPM_MIXER("INT0_MI2S_RX_Voice Mixer",
18621 SND_SOC_NOPM, 0, 0,
18622 int0_mi2s_rx_voice_mixer_controls,
18623 ARRAY_SIZE(int0_mi2s_rx_voice_mixer_controls)),
18624 SND_SOC_DAPM_MIXER("INT4_MI2S_RX_Voice Mixer",
18625 SND_SOC_NOPM, 0, 0,
18626 int4_mi2s_rx_voice_mixer_controls,
18627 ARRAY_SIZE(int4_mi2s_rx_voice_mixer_controls)),
18628 SND_SOC_DAPM_MIXER("TERT_MI2S_RX_Voice Mixer",
18629 SND_SOC_NOPM, 0, 0,
18630 tert_mi2s_rx_voice_mixer_controls,
18631 ARRAY_SIZE(tert_mi2s_rx_voice_mixer_controls)),
18632 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX_Voice Mixer",
18633 SND_SOC_NOPM, 0, 0,
18634 quat_mi2s_rx_voice_mixer_controls,
18635 ARRAY_SIZE(quat_mi2s_rx_voice_mixer_controls)),
18636 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX_Voice Mixer",
18637 SND_SOC_NOPM, 0, 0,
18638 quin_mi2s_rx_voice_mixer_controls,
18639 ARRAY_SIZE(quin_mi2s_rx_voice_mixer_controls)),
18640 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2_Voice Mixer",
18641 SND_SOC_NOPM, 0, 0,
18642 quat_tdm_rx_2_voice_mixer_controls,
18643 ARRAY_SIZE(quat_tdm_rx_2_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018644 SND_SOC_DAPM_MIXER("Voip_Tx Mixer",
18645 SND_SOC_NOPM, 0, 0, tx_voip_mixer_controls,
18646 ARRAY_SIZE(tx_voip_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018647 SND_SOC_DAPM_MIXER("VoiceMMode1_Tx Mixer",
18648 SND_SOC_NOPM, 0, 0, tx_voicemmode1_mixer_controls,
18649 ARRAY_SIZE(tx_voicemmode1_mixer_controls)),
18650 SND_SOC_DAPM_MIXER("VoiceMMode2_Tx Mixer",
18651 SND_SOC_NOPM, 0, 0, tx_voicemmode2_mixer_controls,
18652 ARRAY_SIZE(tx_voicemmode2_mixer_controls)),
18653 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18654 int_bt_sco_rx_mixer_controls, ARRAY_SIZE(int_bt_sco_rx_mixer_controls)),
18655 SND_SOC_DAPM_MIXER("INTERNAL_A2DP_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18656 int_bt_a2dp_rx_mixer_controls,
18657 ARRAY_SIZE(int_bt_a2dp_rx_mixer_controls)),
18658 SND_SOC_DAPM_MIXER("INTERNAL_FM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18659 int_fm_rx_mixer_controls, ARRAY_SIZE(int_fm_rx_mixer_controls)),
18660 SND_SOC_DAPM_MIXER("AFE_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18661 afe_pcm_rx_mixer_controls, ARRAY_SIZE(afe_pcm_rx_mixer_controls)),
18662 SND_SOC_DAPM_MIXER("Voice Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
18663 tx_voice_stub_mixer_controls, ARRAY_SIZE(tx_voice_stub_mixer_controls)),
18664 SND_SOC_DAPM_MIXER("Voice2 Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
18665 tx_voice2_stub_mixer_controls,
18666 ARRAY_SIZE(tx_voice2_stub_mixer_controls)),
18667 SND_SOC_DAPM_MIXER("VoLTE Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
18668 tx_volte_stub_mixer_controls, ARRAY_SIZE(tx_volte_stub_mixer_controls)),
18669 SND_SOC_DAPM_MIXER("STUB_RX Mixer", SND_SOC_NOPM, 0, 0,
18670 stub_rx_mixer_controls, ARRAY_SIZE(stub_rx_mixer_controls)),
18671 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Mixer", SND_SOC_NOPM, 0, 0,
18672 slimbus_1_rx_mixer_controls, ARRAY_SIZE(slimbus_1_rx_mixer_controls)),
18673 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
18674 slimbus_3_rx_mixer_controls, ARRAY_SIZE(slimbus_3_rx_mixer_controls)),
18675 SND_SOC_DAPM_MIXER("SLIM_6_RX_Voice Mixer",
18676 SND_SOC_NOPM, 0, 0,
18677 slimbus_6_rx_voice_mixer_controls,
18678 ARRAY_SIZE(slimbus_6_rx_voice_mixer_controls)),
18679 SND_SOC_DAPM_MIXER("SLIM_7_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
18680 slimbus_7_rx_voice_mixer_controls,
18681 ARRAY_SIZE(slimbus_7_rx_voice_mixer_controls)),
18682 SND_SOC_DAPM_MIXER("SLIM_8_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
18683 slimbus_8_rx_voice_mixer_controls,
18684 ARRAY_SIZE(slimbus_8_rx_voice_mixer_controls)),
18685 /* port mixer */
18686 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Port Mixer",
18687 SND_SOC_NOPM, 0, 0, sbus_0_rx_port_mixer_controls,
18688 ARRAY_SIZE(sbus_0_rx_port_mixer_controls)),
18689 SND_SOC_DAPM_MIXER("AUX_PCM_RX Port Mixer",
18690 SND_SOC_NOPM, 0, 0, aux_pcm_rx_port_mixer_controls,
18691 ARRAY_SIZE(aux_pcm_rx_port_mixer_controls)),
18692 SND_SOC_DAPM_MIXER("SEC_AUXPCM_RX Port Mixer",
18693 SND_SOC_NOPM, 0, 0, sec_auxpcm_rx_port_mixer_controls,
18694 ARRAY_SIZE(sec_auxpcm_rx_port_mixer_controls)),
18695 SND_SOC_DAPM_MIXER("TERT_AUXPCM_RX Port Mixer",
18696 SND_SOC_NOPM, 0, 0, tert_auxpcm_rx_port_mixer_controls,
18697 ARRAY_SIZE(tert_auxpcm_rx_port_mixer_controls)),
18698 SND_SOC_DAPM_MIXER("QUAT_AUXPCM_RX Port Mixer",
18699 SND_SOC_NOPM, 0, 0, quat_auxpcm_rx_port_mixer_controls,
18700 ARRAY_SIZE(quat_auxpcm_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053018701 SND_SOC_DAPM_MIXER("QUIN_AUXPCM_RX Port Mixer",
18702 SND_SOC_NOPM, 0, 0, quin_auxpcm_rx_port_mixer_controls,
18703 ARRAY_SIZE(quin_auxpcm_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018704 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18705 sbus_1_rx_port_mixer_controls,
18706 ARRAY_SIZE(sbus_1_rx_port_mixer_controls)),
18707 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18708 bt_sco_rx_port_mixer_controls,
18709 ARRAY_SIZE(bt_sco_rx_port_mixer_controls)),
18710 SND_SOC_DAPM_MIXER("AFE_PCM_RX Port Mixer",
18711 SND_SOC_NOPM, 0, 0, afe_pcm_rx_port_mixer_controls,
18712 ARRAY_SIZE(afe_pcm_rx_port_mixer_controls)),
18713 SND_SOC_DAPM_MIXER("HDMI_RX Port Mixer",
18714 SND_SOC_NOPM, 0, 0, hdmi_rx_port_mixer_controls,
18715 ARRAY_SIZE(hdmi_rx_port_mixer_controls)),
18716 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX Port Mixer",
18717 SND_SOC_NOPM, 0, 0, display_port_rx_port_mixer_controls,
18718 ARRAY_SIZE(display_port_rx_port_mixer_controls)),
Karthikeyan Manifbea92f2018-06-14 16:38:15 -070018719 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1 Port Mixer",
Karthikeyan Mani57550082018-05-03 18:43:58 -070018720 SND_SOC_NOPM, 0, 0, display_port_rx1_port_mixer_controls,
18721 ARRAY_SIZE(display_port_rx1_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018722 SND_SOC_DAPM_MIXER("SEC_I2S_RX Port Mixer",
18723 SND_SOC_NOPM, 0, 0, sec_i2s_rx_port_mixer_controls,
18724 ARRAY_SIZE(sec_i2s_rx_port_mixer_controls)),
18725 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX Port Mixer",
18726 SND_SOC_NOPM, 0, 0, sbus_3_rx_port_mixer_controls,
18727 ARRAY_SIZE(sbus_3_rx_port_mixer_controls)),
18728 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Port Mixer",
18729 SND_SOC_NOPM, 0, 0, sbus_6_rx_port_mixer_controls,
18730 ARRAY_SIZE(sbus_6_rx_port_mixer_controls)),
18731 SND_SOC_DAPM_MIXER("MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18732 mi2s_rx_port_mixer_controls, ARRAY_SIZE(mi2s_rx_port_mixer_controls)),
18733 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18734 primary_mi2s_rx_port_mixer_controls,
18735 ARRAY_SIZE(primary_mi2s_rx_port_mixer_controls)),
18736 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18737 sec_mi2s_rx_port_mixer_controls,
18738 ARRAY_SIZE(sec_mi2s_rx_port_mixer_controls)),
18739 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18740 tert_mi2s_rx_port_mixer_controls,
18741 ARRAY_SIZE(tert_mi2s_rx_port_mixer_controls)),
18742 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18743 quat_mi2s_rx_port_mixer_controls,
18744 ARRAY_SIZE(quat_mi2s_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053018745 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18746 quin_mi2s_rx_port_mixer_controls,
18747 ARRAY_SIZE(quin_mi2s_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018748 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
18749 pri_tdm_rx_0_port_mixer_controls,
18750 ARRAY_SIZE(pri_tdm_rx_0_port_mixer_controls)),
18751 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
18752 pri_tdm_rx_1_port_mixer_controls,
18753 ARRAY_SIZE(pri_tdm_rx_1_port_mixer_controls)),
18754 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
18755 pri_tdm_rx_2_port_mixer_controls,
18756 ARRAY_SIZE(pri_tdm_rx_2_port_mixer_controls)),
18757 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
18758 pri_tdm_rx_3_port_mixer_controls,
18759 ARRAY_SIZE(pri_tdm_rx_3_port_mixer_controls)),
18760 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
18761 sec_tdm_rx_0_port_mixer_controls,
18762 ARRAY_SIZE(sec_tdm_rx_0_port_mixer_controls)),
18763 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
18764 sec_tdm_rx_1_port_mixer_controls,
18765 ARRAY_SIZE(sec_tdm_rx_1_port_mixer_controls)),
18766 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
18767 sec_tdm_rx_2_port_mixer_controls,
18768 ARRAY_SIZE(sec_tdm_rx_2_port_mixer_controls)),
18769 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
18770 sec_tdm_rx_3_port_mixer_controls,
18771 ARRAY_SIZE(sec_tdm_rx_3_port_mixer_controls)),
18772 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
18773 tert_tdm_rx_0_port_mixer_controls,
18774 ARRAY_SIZE(tert_tdm_rx_0_port_mixer_controls)),
18775 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
18776 tert_tdm_rx_1_port_mixer_controls,
18777 ARRAY_SIZE(tert_tdm_rx_1_port_mixer_controls)),
18778 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
18779 tert_tdm_rx_2_port_mixer_controls,
18780 ARRAY_SIZE(tert_tdm_rx_2_port_mixer_controls)),
18781 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
18782 tert_tdm_rx_3_port_mixer_controls,
18783 ARRAY_SIZE(tert_tdm_rx_3_port_mixer_controls)),
18784 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
18785 quat_tdm_rx_0_port_mixer_controls,
18786 ARRAY_SIZE(quat_tdm_rx_0_port_mixer_controls)),
18787 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
18788 quat_tdm_rx_1_port_mixer_controls,
18789 ARRAY_SIZE(quat_tdm_rx_1_port_mixer_controls)),
18790 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
18791 quat_tdm_rx_2_port_mixer_controls,
18792 ARRAY_SIZE(quat_tdm_rx_2_port_mixer_controls)),
18793 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
18794 quat_tdm_rx_3_port_mixer_controls,
18795 ARRAY_SIZE(quat_tdm_rx_3_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053018796 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
18797 quin_tdm_rx_0_port_mixer_controls,
18798 ARRAY_SIZE(quin_tdm_rx_0_port_mixer_controls)),
18799 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
18800 quin_tdm_rx_1_port_mixer_controls,
18801 ARRAY_SIZE(quin_tdm_rx_1_port_mixer_controls)),
18802 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
18803 quin_tdm_rx_2_port_mixer_controls,
18804 ARRAY_SIZE(quin_tdm_rx_2_port_mixer_controls)),
18805 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
18806 quin_tdm_rx_3_port_mixer_controls,
18807 ARRAY_SIZE(quin_tdm_rx_3_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018808 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18809 int0_mi2s_rx_port_mixer_controls,
18810 ARRAY_SIZE(int0_mi2s_rx_port_mixer_controls)),
18811 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18812 int4_mi2s_rx_port_mixer_controls,
18813 ARRAY_SIZE(int4_mi2s_rx_port_mixer_controls)),
18814 SND_SOC_DAPM_MIXER("QCHAT_Tx Mixer",
18815 SND_SOC_NOPM, 0, 0, tx_qchat_mixer_controls,
18816 ARRAY_SIZE(tx_qchat_mixer_controls)),
18817 SND_SOC_DAPM_MIXER("USB_AUDIO_RX_Voice Mixer",
18818 SND_SOC_NOPM, 0, 0, usb_audio_rx_voice_mixer_controls,
18819 ARRAY_SIZE(usb_audio_rx_voice_mixer_controls)),
18820 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Port Mixer",
18821 SND_SOC_NOPM, 0, 0, usb_rx_port_mixer_controls,
18822 ARRAY_SIZE(usb_rx_port_mixer_controls)),
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080018823 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX_Voice Mixer",
18824 SND_SOC_NOPM, 0, 0, display_port_rx_voice_mixer_controls,
18825 ARRAY_SIZE(display_port_rx_voice_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070018826 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1_Voice Mixer",
18827 SND_SOC_NOPM, 0, 0, display_port_rx1_voice_mixer_controls,
18828 ARRAY_SIZE(display_port_rx1_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018829 /* lsm mixer definitions */
18830 SND_SOC_DAPM_MIXER("LSM1 Mixer", SND_SOC_NOPM, 0, 0,
18831 lsm1_mixer_controls, ARRAY_SIZE(lsm1_mixer_controls)),
18832 SND_SOC_DAPM_MIXER("LSM2 Mixer", SND_SOC_NOPM, 0, 0,
18833 lsm2_mixer_controls, ARRAY_SIZE(lsm2_mixer_controls)),
18834 SND_SOC_DAPM_MIXER("LSM3 Mixer", SND_SOC_NOPM, 0, 0,
18835 lsm3_mixer_controls, ARRAY_SIZE(lsm3_mixer_controls)),
18836 SND_SOC_DAPM_MIXER("LSM4 Mixer", SND_SOC_NOPM, 0, 0,
18837 lsm4_mixer_controls, ARRAY_SIZE(lsm4_mixer_controls)),
18838 SND_SOC_DAPM_MIXER("LSM5 Mixer", SND_SOC_NOPM, 0, 0,
18839 lsm5_mixer_controls, ARRAY_SIZE(lsm5_mixer_controls)),
18840 SND_SOC_DAPM_MIXER("LSM6 Mixer", SND_SOC_NOPM, 0, 0,
18841 lsm6_mixer_controls, ARRAY_SIZE(lsm6_mixer_controls)),
18842 SND_SOC_DAPM_MIXER("LSM7 Mixer", SND_SOC_NOPM, 0, 0,
18843 lsm7_mixer_controls, ARRAY_SIZE(lsm7_mixer_controls)),
18844 SND_SOC_DAPM_MIXER("LSM8 Mixer", SND_SOC_NOPM, 0, 0,
18845 lsm8_mixer_controls, ARRAY_SIZE(lsm8_mixer_controls)),
18846 /* Virtual Pins to force backends ON atm */
18847 SND_SOC_DAPM_OUTPUT("BE_OUT"),
18848 SND_SOC_DAPM_INPUT("BE_IN"),
18849
18850 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
18851 &slim0_rx_vi_fb_lch_mux),
18852 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
18853 &slim0_rx_vi_fb_rch_mux),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018854 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
18855 &wsa_rx_0_vi_fb_lch_mux),
18856 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
18857 &wsa_rx_0_vi_fb_rch_mux),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018858 SND_SOC_DAPM_MUX("PRI_MI2S_RX_VI_FB_MUX", SND_SOC_NOPM, 0, 0,
18859 &mi2s_rx_vi_fb_mux),
18860 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_MONO_CH_MUX", SND_SOC_NOPM, 0, 0,
18861 &int4_mi2s_rx_vi_fb_mono_ch_mux),
18862 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", SND_SOC_NOPM, 0, 0,
18863 &int4_mi2s_rx_vi_fb_stereo_ch_mux),
18864
18865 SND_SOC_DAPM_MUX("VOC_EXT_EC MUX", SND_SOC_NOPM, 0, 0,
18866 &voc_ext_ec_mux),
18867 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL1 MUX", SND_SOC_NOPM, 0, 0,
18868 &ext_ec_ref_mux_ul1),
18869 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL2 MUX", SND_SOC_NOPM, 0, 0,
18870 &ext_ec_ref_mux_ul2),
18871 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL3 MUX", SND_SOC_NOPM, 0, 0,
18872 &ext_ec_ref_mux_ul3),
18873 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL4 MUX", SND_SOC_NOPM, 0, 0,
18874 &ext_ec_ref_mux_ul4),
18875 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL5 MUX", SND_SOC_NOPM, 0, 0,
18876 &ext_ec_ref_mux_ul5),
18877 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL6 MUX", SND_SOC_NOPM, 0, 0,
18878 &ext_ec_ref_mux_ul6),
18879 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL8 MUX", SND_SOC_NOPM, 0, 0,
18880 &ext_ec_ref_mux_ul8),
18881 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL9 MUX", SND_SOC_NOPM, 0, 0,
18882 &ext_ec_ref_mux_ul9),
Laxminath Kasam38070be2017-08-17 18:21:59 +053018883 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL10 MUX", SND_SOC_NOPM, 0, 0,
18884 &ext_ec_ref_mux_ul10),
Asish Bhattacharya34504582017-08-08 12:55:01 +053018885 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL16 MUX", SND_SOC_NOPM, 0, 0,
18886 &ext_ec_ref_mux_ul16),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018887 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL17 MUX", SND_SOC_NOPM, 0, 0,
18888 &ext_ec_ref_mux_ul17),
18889 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL18 MUX", SND_SOC_NOPM, 0, 0,
18890 &ext_ec_ref_mux_ul18),
18891 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL19 MUX", SND_SOC_NOPM, 0, 0,
18892 &ext_ec_ref_mux_ul19),
Meng Wang5c4bab72018-04-25 10:40:01 +080018893 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL28 MUX", SND_SOC_NOPM, 0, 0,
18894 &ext_ec_ref_mux_ul28),
18895 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL29 MUX", SND_SOC_NOPM, 0, 0,
18896 &ext_ec_ref_mux_ul29),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018897};
18898
18899static const struct snd_soc_dapm_route intercon[] = {
18900 {"PRI_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
18901 {"PRI_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
18902 {"PRI_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
18903 {"PRI_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
18904 {"PRI_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
18905 {"PRI_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
18906 {"PRI_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
18907 {"PRI_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
18908 {"PRI_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
18909 {"PRI_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
18910 {"PRI_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
18911 {"PRI_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
18912 {"PRI_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
18913 {"PRI_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
18914 {"PRI_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
18915 {"PRI_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
18916 {"PRI_I2S_RX", NULL, "PRI_RX Audio Mixer"},
18917
18918 {"SEC_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
18919 {"SEC_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
18920 {"SEC_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
18921 {"SEC_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
18922 {"SEC_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
18923 {"SEC_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
18924 {"SEC_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
18925 {"SEC_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
18926 {"SEC_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
18927 {"SEC_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
18928 {"SEC_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
18929 {"SEC_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
18930 {"SEC_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
18931 {"SEC_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
18932 {"SEC_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
18933 {"SEC_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
18934 {"SEC_I2S_RX", NULL, "SEC_RX Audio Mixer"},
18935
18936 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
18937 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
18938 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
18939 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
18940 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
18941 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
18942 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
18943 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
18944 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
18945 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
18946 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
18947 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
18948 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
18949 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
18950 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
18951 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
18952 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Audio Mixer"},
18953
18954 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
18955 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
18956 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
18957 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
18958 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
18959 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
18960 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
18961 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
18962 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
18963 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
18964 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
18965 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
18966 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
18967 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
18968 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
18969 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
18970 {"SLIMBUS_2_RX", NULL, "SLIMBUS_2_RX Audio Mixer"},
18971
18972 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
18973 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
18974 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
18975 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
18976 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
18977 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
18978 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
18979 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
18980 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
18981 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
18982 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
18983 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
18984 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
18985 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
18986 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
18987 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
18988 {"SLIMBUS_5_RX", NULL, "SLIMBUS_5_RX Audio Mixer"},
18989
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018990 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
18991 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
18992 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
18993 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
18994 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
18995 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
18996 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
18997 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
18998 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
18999 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19000 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19001 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19002 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19003 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19004 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19005 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
19006 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Audio Mixer"},
19007
19008 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19009 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19010 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19011 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19012 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19013 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19014 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19015 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19016 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19017 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19018 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19019 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19020 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19021 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19022 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19023 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
19024 {"WSA_CDC_DMA_RX_1", NULL, "WSA_CDC_DMA_RX_1 Audio Mixer"},
19025
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019026 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19027 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19028 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19029 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19030 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19031 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19032 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19033 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19034 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19035 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19036 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19037 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19038 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19039 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19040 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19041 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
19042 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Audio Mixer"},
19043
19044 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19045 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19046 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19047 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19048 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19049 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19050 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19051 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19052 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19053 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19054 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19055 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19056 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19057 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19058 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19059 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
19060 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_1 Audio Mixer"},
19061
19062 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19063 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19064 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
19065 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
19066 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19067 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
19068 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
19069 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
19070 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19071 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
19072 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
19073 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
19074 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
19075 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
19076 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
19077 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
19078 {"RX_CDC_DMA_RX_2", NULL, "RX_CDC_DMA_RX_2 Audio Mixer"},
19079
19080 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
19081 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
19082 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
19083 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
19084 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
19085 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
19086 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
19087 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
19088 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
19089 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
19090 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
19091 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
19092 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
19093 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
19094 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
19095 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
19096 {"RX_CDC_DMA_RX_3", NULL, "RX_CDC_DMA_RX_3 Audio Mixer"},
19097
19098 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
19099 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
19100 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
19101 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
19102 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
19103 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
19104 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
19105 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
19106 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
19107 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
19108 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
19109 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
19110 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
19111 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
19112 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
19113 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
19114 {"RX_CDC_DMA_RX_4", NULL, "RX_CDC_DMA_RX_4 Audio Mixer"},
19115
19116 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia1", "MM_DL1"},
19117 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia2", "MM_DL2"},
19118 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia3", "MM_DL3"},
19119 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia4", "MM_DL4"},
19120 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia5", "MM_DL5"},
19121 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia6", "MM_DL6"},
19122 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia7", "MM_DL7"},
19123 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia8", "MM_DL8"},
19124 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia9", "MM_DL9"},
19125 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia10", "MM_DL10"},
19126 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia11", "MM_DL11"},
19127 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia12", "MM_DL12"},
19128 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia13", "MM_DL13"},
19129 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia14", "MM_DL14"},
19130 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia15", "MM_DL15"},
19131 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia16", "MM_DL16"},
19132 {"RX_CDC_DMA_RX_5", NULL, "RX_CDC_DMA_RX_5 Audio Mixer"},
19133
19134 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia1", "MM_DL1"},
19135 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia2", "MM_DL2"},
19136 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia3", "MM_DL3"},
19137 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia4", "MM_DL4"},
19138 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia5", "MM_DL5"},
19139 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia6", "MM_DL6"},
19140 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia7", "MM_DL7"},
19141 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia8", "MM_DL8"},
19142 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia9", "MM_DL9"},
19143 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia10", "MM_DL10"},
19144 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia11", "MM_DL11"},
19145 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia12", "MM_DL12"},
19146 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia13", "MM_DL13"},
19147 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia14", "MM_DL14"},
19148 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia15", "MM_DL15"},
19149 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia16", "MM_DL16"},
19150 {"RX_CDC_DMA_RX_6", NULL, "RX_CDC_DMA_RX_6 Audio Mixer"},
19151
19152 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia1", "MM_DL1"},
19153 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia2", "MM_DL2"},
19154 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia3", "MM_DL3"},
19155 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia4", "MM_DL4"},
19156 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia5", "MM_DL5"},
19157 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia6", "MM_DL6"},
19158 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia7", "MM_DL7"},
19159 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia8", "MM_DL8"},
19160 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia9", "MM_DL9"},
19161 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia10", "MM_DL10"},
19162 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia11", "MM_DL11"},
19163 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia12", "MM_DL12"},
19164 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia13", "MM_DL13"},
19165 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia14", "MM_DL14"},
19166 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia15", "MM_DL15"},
19167 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia16", "MM_DL16"},
19168 {"RX_CDC_DMA_RX_7", NULL, "RX_CDC_DMA_RX_7 Audio Mixer"},
19169
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019170 {"HDMI Mixer", "MultiMedia1", "MM_DL1"},
19171 {"HDMI Mixer", "MultiMedia2", "MM_DL2"},
19172 {"HDMI Mixer", "MultiMedia3", "MM_DL3"},
19173 {"HDMI Mixer", "MultiMedia4", "MM_DL4"},
19174 {"HDMI Mixer", "MultiMedia5", "MM_DL5"},
19175 {"HDMI Mixer", "MultiMedia6", "MM_DL6"},
19176 {"HDMI Mixer", "MultiMedia7", "MM_DL7"},
19177 {"HDMI Mixer", "MultiMedia8", "MM_DL8"},
19178 {"HDMI Mixer", "MultiMedia9", "MM_DL9"},
19179 {"HDMI Mixer", "MultiMedia10", "MM_DL10"},
19180 {"HDMI Mixer", "MultiMedia11", "MM_DL11"},
19181 {"HDMI Mixer", "MultiMedia12", "MM_DL12"},
19182 {"HDMI Mixer", "MultiMedia13", "MM_DL13"},
19183 {"HDMI Mixer", "MultiMedia14", "MM_DL14"},
19184 {"HDMI Mixer", "MultiMedia15", "MM_DL15"},
19185 {"HDMI Mixer", "MultiMedia16", "MM_DL16"},
19186 {"HDMI", NULL, "HDMI Mixer"},
19187
19188 {"DISPLAY_PORT Mixer", "MultiMedia1", "MM_DL1"},
19189 {"DISPLAY_PORT Mixer", "MultiMedia2", "MM_DL2"},
19190 {"DISPLAY_PORT Mixer", "MultiMedia3", "MM_DL3"},
19191 {"DISPLAY_PORT Mixer", "MultiMedia4", "MM_DL4"},
19192 {"DISPLAY_PORT Mixer", "MultiMedia5", "MM_DL5"},
19193 {"DISPLAY_PORT Mixer", "MultiMedia6", "MM_DL6"},
19194 {"DISPLAY_PORT Mixer", "MultiMedia7", "MM_DL7"},
19195 {"DISPLAY_PORT Mixer", "MultiMedia8", "MM_DL8"},
19196 {"DISPLAY_PORT Mixer", "MultiMedia9", "MM_DL9"},
19197 {"DISPLAY_PORT Mixer", "MultiMedia10", "MM_DL10"},
19198 {"DISPLAY_PORT Mixer", "MultiMedia11", "MM_DL11"},
19199 {"DISPLAY_PORT Mixer", "MultiMedia12", "MM_DL12"},
19200 {"DISPLAY_PORT Mixer", "MultiMedia13", "MM_DL13"},
19201 {"DISPLAY_PORT Mixer", "MultiMedia14", "MM_DL14"},
19202 {"DISPLAY_PORT Mixer", "MultiMedia15", "MM_DL15"},
19203 {"DISPLAY_PORT Mixer", "MultiMedia16", "MM_DL16"},
19204 {"DISPLAY_PORT", NULL, "DISPLAY_PORT Mixer"},
19205
Karthikeyan Mani57550082018-05-03 18:43:58 -070019206 {"DISPLAY_PORT1 Mixer", "MultiMedia1", "MM_DL1"},
19207 {"DISPLAY_PORT1 Mixer", "MultiMedia2", "MM_DL2"},
19208 {"DISPLAY_PORT1 Mixer", "MultiMedia3", "MM_DL3"},
19209 {"DISPLAY_PORT1 Mixer", "MultiMedia4", "MM_DL4"},
19210 {"DISPLAY_PORT1 Mixer", "MultiMedia5", "MM_DL5"},
19211 {"DISPLAY_PORT1 Mixer", "MultiMedia6", "MM_DL6"},
19212 {"DISPLAY_PORT1 Mixer", "MultiMedia7", "MM_DL7"},
19213 {"DISPLAY_PORT1 Mixer", "MultiMedia8", "MM_DL8"},
19214 {"DISPLAY_PORT1 Mixer", "MultiMedia9", "MM_DL9"},
19215 {"DISPLAY_PORT1 Mixer", "MultiMedia10", "MM_DL10"},
19216 {"DISPLAY_PORT1 Mixer", "MultiMedia11", "MM_DL11"},
19217 {"DISPLAY_PORT1 Mixer", "MultiMedia12", "MM_DL12"},
19218 {"DISPLAY_PORT1 Mixer", "MultiMedia13", "MM_DL13"},
19219 {"DISPLAY_PORT1 Mixer", "MultiMedia14", "MM_DL14"},
19220 {"DISPLAY_PORT1 Mixer", "MultiMedia15", "MM_DL15"},
19221 {"DISPLAY_PORT1 Mixer", "MultiMedia16", "MM_DL16"},
19222 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT1 Mixer"},
19223
Ralf Herzc8701f72018-06-20 11:37:35 +020019224 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19225 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19226 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19227 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19228 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19229 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19230 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19231 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19232 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19233 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19234 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19235 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19236 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19237 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19238 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19239 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19240 {"PRI_SPDIF_RX", NULL, "PRI_SPDIF_RX Audio Mixer"},
19241
19242 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19243 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19244 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19245 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19246 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19247 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19248 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19249 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19250 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19251 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19252 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19253 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19254 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19255 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19256 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19257 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19258 {"SEC_SPDIF_RX", NULL, "SEC_SPDIF_RX Audio Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019259
19260 /* incall */
19261 {"Incall_Music Audio Mixer", "MultiMedia1", "MM_DL1"},
19262 {"Incall_Music Audio Mixer", "MultiMedia2", "MM_DL2"},
19263 {"Incall_Music Audio Mixer", "MultiMedia5", "MM_DL5"},
19264 {"Incall_Music Audio Mixer", "MultiMedia9", "MM_DL9"},
19265 {"VOICE_PLAYBACK_TX", NULL, "Incall_Music Audio Mixer"},
19266 {"Incall_Music_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19267 {"Incall_Music_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19268 {"Incall_Music_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19269 {"Incall_Music_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19270 {"VOICE2_PLAYBACK_TX", NULL, "Incall_Music_2 Audio Mixer"},
19271 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19272 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19273 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19274 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19275 {"SLIMBUS_4_RX", NULL, "SLIMBUS_4_RX Audio Mixer"},
19276
19277 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19278 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19279 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19280 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19281 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19282 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19283 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19284 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19285 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19286 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19287 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19288 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19289 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19290 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19291 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19292 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19293 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Audio Mixer"},
19294
19295 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19296 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19297 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19298 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19299 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19300 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19301 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19302 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19303 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19304 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19305 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19306 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19307 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19308 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19309 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19310 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19311 {"SLIMBUS_7_RX", NULL, "SLIMBUS_7_RX Audio Mixer"},
19312
19313 {"USB_AUDIO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19314 {"USB_AUDIO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19315 {"USB_AUDIO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19316 {"USB_AUDIO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19317 {"USB_AUDIO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19318 {"USB_AUDIO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19319 {"USB_AUDIO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19320 {"USB_AUDIO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19321 {"USB_AUDIO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19322 {"USB_AUDIO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19323 {"USB_AUDIO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19324 {"USB_AUDIO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19325 {"USB_AUDIO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19326 {"USB_AUDIO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19327 {"USB_AUDIO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19328 {"USB_AUDIO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19329 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Audio Mixer"},
19330
19331 {"MultiMedia1 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
19332 {"MultiMedia4 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
19333 {"MultiMedia8 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
19334 {"MultiMedia1 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
19335 {"MultiMedia4 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
19336 {"MultiMedia8 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
19337 {"MultiMedia1 Mixer", "SLIM_4_TX", "SLIMBUS_4_TX"},
19338 {"MultiMedia1 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
19339 {"MultiMedia1 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
19340 {"MultiMedia1 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
19341 {"MultiMedia8 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
19342 {"MultiMedia8 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
19343 {"MultiMedia4 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19344 {"MultiMedia17 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19345 {"MultiMedia18 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19346 {"MultiMedia19 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019347 {"MultiMedia28 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19348 {"MultiMedia29 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019349 {"MultiMedia8 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19350 {"MultiMedia2 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19351 {"MultiMedia4 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19352 {"MultiMedia17 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19353 {"MultiMedia18 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19354 {"MultiMedia19 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019355 {"MultiMedia28 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19356 {"MultiMedia29 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019357 {"MultiMedia8 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020019358 {"MultiMedia18 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019359 {"MultiMedia17 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19360 {"MultiMedia18 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19361 {"MultiMedia19 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19362 {"MultiMedia28 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19363 {"MultiMedia29 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19364 {"MultiMedia17 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019365 {"MultiMedia18 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019366 {"MultiMedia19 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
19367 {"MultiMedia28 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
19368 {"MultiMedia29 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019369 {"MultiMedia8 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
19370 {"MultiMedia3 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19371 {"MultiMedia5 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053019372 {"MultiMedia10 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053019373 {"MultiMedia16 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019374 {"MultiMedia5 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
19375 {"MultiMedia5 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053019376 {"MultiMedia10 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020019377 {"MultiMedia18 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
19378 {"MultiMedia18 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
19379
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019380 {"MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19381 {"MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19382 {"MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19383 {"MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19384 {"MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19385 {"MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19386 {"MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19387 {"MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19388 {"MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19389 {"MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19390 {"MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19391 {"MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19392 {"MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19393 {"MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19394 {"MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19395 {"MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19396 {"MI2S_RX", NULL, "MI2S_RX Audio Mixer"},
19397
19398 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19399 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19400 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19401 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19402 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19403 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19404 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19405 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19406 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19407 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19408 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19409 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19410 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19411 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19412 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19413 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Audio Mixer"},
19414
19415 {"TERT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19416 {"TERT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19417 {"TERT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19418 {"TERT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19419 {"TERT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19420 {"TERT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19421 {"TERT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19422 {"TERT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19423 {"TERT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19424 {"TERT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19425 {"TERT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19426 {"TERT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19427 {"TERT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19428 {"TERT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19429 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Audio Mixer"},
19430
19431 {"SEC_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19432 {"SEC_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19433 {"SEC_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19434 {"SEC_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19435 {"SEC_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19436 {"SEC_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19437 {"SEC_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19438 {"SEC_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19439 {"SEC_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19440 {"SEC_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19441 {"SEC_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19442 {"SEC_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19443 {"SEC_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19444 {"SEC_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19445 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Audio Mixer"},
19446
19447 {"SEC_MI2S_RX_SD1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19448 {"SEC_MI2S_RX_SD1", NULL, "SEC_MI2S_RX_SD1 Audio Mixer"},
19449
19450 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19451 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
19452
19453 {"PRI_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19454 {"PRI_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19455 {"PRI_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19456 {"PRI_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19457 {"PRI_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19458 {"PRI_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19459 {"PRI_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19460 {"PRI_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19461 {"PRI_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19462 {"PRI_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19463 {"PRI_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19464 {"PRI_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19465 {"PRI_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19466 {"PRI_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19467 {"PRI_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19468 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Audio Mixer"},
19469
19470 {"INT0_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19471 {"INT0_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19472 {"INT0_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19473 {"INT0_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19474 {"INT0_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19475 {"INT0_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19476 {"INT0_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19477 {"INT0_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19478 {"INT0_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19479 {"INT0_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19480 {"INT0_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19481 {"INT0_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19482 {"INT0_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19483 {"INT0_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19484 {"INT0_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19485 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Audio Mixer"},
19486
19487 {"INT4_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19488 {"INT4_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19489 {"INT4_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19490 {"INT4_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19491 {"INT4_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19492 {"INT4_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19493 {"INT4_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19494 {"INT4_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19495 {"INT4_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19496 {"INT4_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19497 {"INT4_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19498 {"INT4_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19499 {"INT4_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19500 {"INT4_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19501 {"INT4_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19502 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Audio Mixer"},
19503
19504 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19505 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19506 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19507 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19508 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19509 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19510 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19511 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19512 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19513 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19514 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19515 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19516 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19517 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19518 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19519 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19520 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19521 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Audio Mixer"},
19522
19523 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19524 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19525 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19526 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19527 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19528 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19529 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19530 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19531 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19532 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19533 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19534 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19535 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19536 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19537 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19538 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019539 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019540 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Audio Mixer"},
19541
19542 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19543 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19544 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19545 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19546 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19547 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19548 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19549 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19550 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19551 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19552 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19553 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19554 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19555 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19556 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19557 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019558 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019559 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Audio Mixer"},
19560
19561 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19562 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19563 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
19564 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
19565 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19566 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
19567 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
19568 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
19569 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19570 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
19571 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
19572 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
19573 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
19574 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
19575 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
19576 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019577 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019578 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Audio Mixer"},
19579
19580 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
19581 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
19582 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
19583 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
19584 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
19585 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
19586 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
19587 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
19588 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
19589 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
19590 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
19591 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
19592 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
19593 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
19594 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
19595 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019596 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019597 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Audio Mixer"},
19598
19599 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19600 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19601 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19602 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19603 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19604 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19605 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19606 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19607 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19608 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19609 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19610 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19611 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19612 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19613 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19614 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
19615 {"PRI_TDM_TX_0", NULL, "PRI_TDM_TX_0 Audio Mixer"},
19616
19617 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19618 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19619 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19620 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19621 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19622 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19623 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19624 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19625 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19626 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19627 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19628 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19629 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19630 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19631 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19632 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019633 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019634 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Audio Mixer"},
19635
19636 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19637 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19638 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19639 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19640 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19641 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19642 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19643 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19644 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19645 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19646 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19647 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19648 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19649 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19650 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19651 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019652 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019653 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Audio Mixer"},
19654
19655 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19656 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19657 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
19658 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
19659 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19660 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
19661 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
19662 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
19663 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19664 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
19665 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
19666 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
19667 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
19668 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
19669 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
19670 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019671 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019672 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Audio Mixer"},
19673
19674 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
19675 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
19676 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
19677 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
19678 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
19679 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
19680 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
19681 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
19682 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
19683 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
19684 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
19685 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
19686 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
19687 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
19688 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
19689 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019690 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019691 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Audio Mixer"},
19692
19693 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19694 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19695 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19696 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19697 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19698 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19699 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19700 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19701 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19702 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19703 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19704 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19705 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19706 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19707 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19708 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
19709 {"SEC_TDM_TX_0", NULL, "SEC_TDM_TX_0 Audio Mixer"},
19710
19711 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19712 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19713 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19714 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19715 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19716 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19717 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19718 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19719 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19720 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19721 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19722 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19723 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19724 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19725 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19726 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019727 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019728 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Audio Mixer"},
19729
19730 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19731 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19732 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19733 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19734 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19735 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19736 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19737 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19738 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19739 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19740 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19741 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19742 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19743 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19744 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19745 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
19746 {"TERT_TDM_TX_0", NULL, "TERT_TDM_TX_0 Audio Mixer"},
19747
19748 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19749 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19750 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19751 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19752 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19753 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19754 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19755 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19756 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19757 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19758 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19759 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19760 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19761 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19762 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19763 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019764 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019765 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Audio Mixer"},
19766
19767 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19768 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19769 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
19770 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
19771 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19772 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
19773 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
19774 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
19775 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19776 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
19777 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
19778 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
19779 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
19780 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
19781 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
19782 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019783 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019784 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Audio Mixer"},
19785
19786 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
19787 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
19788 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
19789 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
19790 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
19791 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
19792 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
19793 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
19794 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
19795 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
19796 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
19797 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
19798 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
19799 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
19800 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
19801 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019802 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019803 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Audio Mixer"},
19804
19805 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
19806 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
19807 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
19808 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
19809 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
19810 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
19811 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
19812 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
19813 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
19814 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
19815 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
19816 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
19817 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
19818 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
19819 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
19820 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019821 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019822 {"TERT_TDM_RX_4", NULL, "TERT_TDM_RX_4 Audio Mixer"},
19823
19824 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19825 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19826 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19827 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19828 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19829 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19830 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19831 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19832 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19833 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19834 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19835 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19836 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19837 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19838 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19839 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
19840 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019841 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019842 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Audio Mixer"},
19843
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019844 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19845 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19846 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19847 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19848 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19849 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19850 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19851 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19852 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19853 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19854 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19855 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19856 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19857 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19858 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19859 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
19860 {"QUAT_TDM_TX_0", NULL, "QUAT_TDM_TX_0 Audio Mixer"},
19861
19862 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19863 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19864 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19865 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19866 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19867 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19868 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19869 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19870 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19871 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19872 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19873 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19874 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19875 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19876 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19877 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
19878 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019879 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019880 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Audio Mixer"},
19881
19882 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19883 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19884 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
19885 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
19886 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19887 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
19888 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
19889 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
19890 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19891 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
19892 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
19893 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
19894 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
19895 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
19896 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
19897 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
19898 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019899 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019900 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Audio Mixer"},
19901
19902 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
19903 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
19904 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
19905 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
19906 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
19907 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
19908 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
19909 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
19910 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
19911 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
19912 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
19913 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
19914 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
19915 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
19916 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
19917 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
19918 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019919 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019920 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Audio Mixer"},
19921
Rohit Kumara5077932017-09-10 22:05:05 +053019922 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19923 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19924 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19925 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19926 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19927 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19928 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19929 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19930 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19931 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19932 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19933 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19934 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19935 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19936 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19937 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
19938 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019939 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053019940 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Audio Mixer"},
19941
19942 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19943 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19944 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19945 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19946 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19947 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19948 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19949 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19950 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19951 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19952 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19953 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19954 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19955 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19956 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19957 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
19958 {"QUIN_TDM_TX_0", NULL, "QUIN_TDM_TX_0 Audio Mixer"},
19959
19960 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19961 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19962 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19963 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19964 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19965 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19966 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19967 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19968 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19969 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19970 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19971 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19972 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19973 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19974 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19975 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
19976 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019977 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053019978 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Audio Mixer"},
19979
19980 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19981 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19982 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
19983 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
19984 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19985 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
19986 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
19987 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
19988 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19989 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
19990 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
19991 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
19992 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
19993 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
19994 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
19995 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
19996 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019997 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053019998 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Audio Mixer"},
19999
20000 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20001 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20002 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20003 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20004 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20005 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20006 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20007 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20008 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20009 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20010 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20011 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20012 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20013 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20014 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20015 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
20016 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020017 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053020018 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Audio Mixer"},
20019
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020020 {"MultiMedia1 Mixer", "PRI_TX", "PRI_I2S_TX"},
20021 {"MultiMedia1 Mixer", "MI2S_TX", "MI2S_TX"},
20022 {"MultiMedia2 Mixer", "MI2S_TX", "MI2S_TX"},
20023 {"MultiMedia3 Mixer", "MI2S_TX", "MI2S_TX"},
20024 {"MultiMedia5 Mixer", "MI2S_TX", "MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020025 {"MultiMedia10 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020026 {"MultiMedia16 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020027 {"MultiMedia1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20028 {"MultiMedia2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20029 {"MultiMedia6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20030 {"MultiMedia1 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
20031 {"MultiMedia2 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
20032 {"MultiMedia1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20033 {"MultiMedia2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20034 {"MultiMedia1 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20035 {"MultiMedia2 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20036 {"MultiMedia1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20037 {"MultiMedia2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20038 {"MultiMedia1 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20039 {"MultiMedia1 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
20040 {"MultiMedia3 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
20041 {"MultiMedia5 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020042 {"MultiMedia10 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020043 {"MultiMedia1 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
20044 {"MultiMedia3 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
20045 {"MultiMedia5 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020046 {"MultiMedia10 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020047 {"MultiMedia16 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
20048 {"MultiMedia16 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020049 {"MultiMedia1 Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
20050 {"MultiMedia3 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
20051 {"MultiMedia5 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020052 {"MultiMedia10 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020053 {"MultiMedia1 Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
20054 {"MultiMedia3 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
20055 {"MultiMedia5 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020056 {"MultiMedia10 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020057 {"MultiMedia16 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020058 {"MultiMedia1 Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
20059 {"MultiMedia3 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
20060 {"MultiMedia5 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020061 {"MultiMedia2 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20062 {"MultiMedia2 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
20063 {"MultiMedia2 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
20064 {"MultiMedia2 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
20065 {"MultiMedia1 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20066 {"MultiMedia1 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20067 {"MultiMedia2 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20068 {"MultiMedia6 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20069 {"MultiMedia6 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20070 {"MultiMedia3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20071 {"MultiMedia5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020072 {"MultiMedia10 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020073 {"MultiMedia6 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20074 {"MultiMedia3 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20075 {"MultiMedia5 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020076 {"MultiMedia10 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020077 {"MultiMedia16 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020078 {"MultiMedia6 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20079 {"MultiMedia3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20080 {"MultiMedia5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020081 {"MultiMedia10 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020082 {"MultiMedia16 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020083 {"MultiMedia17 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20084 {"MultiMedia18 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20085 {"MultiMedia19 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20086 {"MultiMedia28 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20087 {"MultiMedia29 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020088 {"MultiMedia6 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20089 {"MultiMedia6 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
20090 {"MultiMedia6 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
20091 {"MultiMedia6 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020092 {"MultiMedia6 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020093
20094 {"MultiMedia1 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20095 {"MultiMedia1 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20096 {"MultiMedia1 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20097 {"MultiMedia1 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20098 {"MultiMedia1 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20099 {"MultiMedia1 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20100 {"MultiMedia1 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20101 {"MultiMedia1 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20102 {"MultiMedia1 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20103 {"MultiMedia1 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20104 {"MultiMedia1 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20105 {"MultiMedia1 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20106 {"MultiMedia1 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20107 {"MultiMedia1 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20108 {"MultiMedia1 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20109 {"MultiMedia1 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020110 {"MultiMedia1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20111 {"MultiMedia1 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20112 {"MultiMedia1 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20113 {"MultiMedia1 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020114 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20115 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20116 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20117 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20118 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020119 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20120 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20121 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20122 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20123 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20124 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020125 {"MultiMedia1 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20126 {"MultiMedia1 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020127
20128 {"MultiMedia2 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20129 {"MultiMedia2 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20130 {"MultiMedia2 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20131 {"MultiMedia2 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20132 {"MultiMedia2 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20133 {"MultiMedia2 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20134 {"MultiMedia2 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20135 {"MultiMedia2 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20136 {"MultiMedia2 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20137 {"MultiMedia2 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20138 {"MultiMedia2 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20139 {"MultiMedia2 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20140 {"MultiMedia2 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20141 {"MultiMedia2 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20142 {"MultiMedia2 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20143 {"MultiMedia2 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020144 {"MultiMedia2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20145 {"MultiMedia2 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20146 {"MultiMedia2 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20147 {"MultiMedia2 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020148 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20149 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20150 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20151 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20152 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020153 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20154 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20155 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20156 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20157 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20158 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020159 {"MultiMedia2 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20160 {"MultiMedia2 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020161
20162 {"MultiMedia3 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20163 {"MultiMedia3 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20164 {"MultiMedia3 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20165 {"MultiMedia3 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20166 {"MultiMedia3 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20167 {"MultiMedia3 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20168 {"MultiMedia3 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20169 {"MultiMedia3 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20170 {"MultiMedia3 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20171 {"MultiMedia3 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20172 {"MultiMedia3 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20173 {"MultiMedia3 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20174 {"MultiMedia3 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20175 {"MultiMedia3 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20176 {"MultiMedia3 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20177 {"MultiMedia3 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020178 {"MultiMedia3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20179 {"MultiMedia3 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20180 {"MultiMedia3 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20181 {"MultiMedia3 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020182 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20183 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20184 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20185 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20186 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020187 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20188 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20189 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20190 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20191 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20192 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020193 {"MultiMedia3 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20194 {"MultiMedia3 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020195
20196 {"MultiMedia4 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20197 {"MultiMedia4 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20198 {"MultiMedia4 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20199 {"MultiMedia4 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20200 {"MultiMedia4 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20201 {"MultiMedia4 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20202 {"MultiMedia4 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20203 {"MultiMedia4 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20204 {"MultiMedia4 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20205 {"MultiMedia4 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20206 {"MultiMedia4 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20207 {"MultiMedia4 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20208 {"MultiMedia4 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20209 {"MultiMedia4 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20210 {"MultiMedia4 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20211 {"MultiMedia4 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020212 {"MultiMedia4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20213 {"MultiMedia4 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20214 {"MultiMedia4 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20215 {"MultiMedia4 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020216 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20217 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20218 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20219 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20220 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020221 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20222 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20223 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20224 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20225 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20226 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020227 {"MultiMedia4 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20228 {"MultiMedia4 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020229
20230 {"MultiMedia5 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20231 {"MultiMedia5 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20232 {"MultiMedia5 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20233 {"MultiMedia5 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20234 {"MultiMedia5 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20235 {"MultiMedia5 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20236 {"MultiMedia5 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20237 {"MultiMedia5 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20238 {"MultiMedia5 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20239 {"MultiMedia5 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20240 {"MultiMedia5 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20241 {"MultiMedia5 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20242 {"MultiMedia5 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20243 {"MultiMedia5 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20244 {"MultiMedia5 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20245 {"MultiMedia5 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020246 {"MultiMedia5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20247 {"MultiMedia5 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20248 {"MultiMedia5 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20249 {"MultiMedia5 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020250 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20251 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20252 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20253 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20254 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020255 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20256 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20257 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20258 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20259 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20260 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020261 {"MultiMedia5 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20262 {"MultiMedia5 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020263
20264 {"MultiMedia6 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20265 {"MultiMedia6 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20266 {"MultiMedia6 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20267 {"MultiMedia6 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20268 {"MultiMedia6 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20269 {"MultiMedia6 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20270 {"MultiMedia6 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20271 {"MultiMedia6 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20272 {"MultiMedia6 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20273 {"MultiMedia6 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20274 {"MultiMedia6 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20275 {"MultiMedia6 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20276 {"MultiMedia6 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20277 {"MultiMedia6 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20278 {"MultiMedia6 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20279 {"MultiMedia6 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020280 {"MultiMedia6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20281 {"MultiMedia6 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20282 {"MultiMedia6 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20283 {"MultiMedia6 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020284 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20285 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20286 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20287 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20288 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020289 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20290 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20291 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20292 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20293 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20294 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020295 {"MultiMedia6 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20296 {"MultiMedia6 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020297
20298 {"MultiMedia8 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20299 {"MultiMedia8 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20300 {"MultiMedia8 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20301 {"MultiMedia8 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20302 {"MultiMedia8 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20303 {"MultiMedia8 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20304 {"MultiMedia8 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20305 {"MultiMedia8 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20306 {"MultiMedia8 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20307 {"MultiMedia8 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20308 {"MultiMedia8 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20309 {"MultiMedia8 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20310 {"MultiMedia8 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20311 {"MultiMedia8 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20312 {"MultiMedia8 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20313 {"MultiMedia8 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020314 {"MultiMedia8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20315 {"MultiMedia8 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20316 {"MultiMedia8 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20317 {"MultiMedia8 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020318 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20319 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20320 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20321 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20322 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
20323 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020324 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20325 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20326 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20327 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20328 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20329 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020330 {"MultiMedia8 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20331 {"MultiMedia8 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020332
20333 {"MultiMedia9 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20334 {"MultiMedia9 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20335 {"MultiMedia9 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20336 {"MultiMedia9 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20337 {"MultiMedia9 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20338 {"MultiMedia9 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20339 {"MultiMedia9 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20340 {"MultiMedia9 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020341 {"MultiMedia9 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20342 {"MultiMedia9 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20343 {"MultiMedia9 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20344 {"MultiMedia9 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020345 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20346 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20347 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20348 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20349 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
20350 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020351 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20352 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20353 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20354 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20355 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20356 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020357 {"MultiMedia9 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20358 {"MultiMedia9 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020359
Laxminath Kasam38070be2017-08-17 18:21:59 +053020360 {"MultiMedia10 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20361 {"MultiMedia10 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20362 {"MultiMedia10 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20363 {"MultiMedia10 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20364 {"MultiMedia10 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20365 {"MultiMedia10 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20366 {"MultiMedia10 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20367 {"MultiMedia10 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020368 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20369 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20370 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20371 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20372 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20373 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
20374
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020375 {"MultiMedia20 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20376 {"MultiMedia20 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20377 {"MultiMedia20 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20378 {"MultiMedia20 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020379 {"MultiMedia20 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020380 {"MultiMedia20 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20381 {"MultiMedia20 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20382 {"MultiMedia20 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20383 {"MultiMedia20 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20384 {"MultiMedia20 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20385 {"MultiMedia20 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20386 {"MultiMedia20 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20387 {"MultiMedia20 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20388 {"MultiMedia20 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20389 {"MultiMedia20 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20390 {"MultiMedia20 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20391 {"MultiMedia20 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20392 {"MultiMedia20 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20393 {"MultiMedia20 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20394 {"MultiMedia20 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20395 {"MultiMedia20 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020396 {"MultiMedia20 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20397 {"MultiMedia20 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20398 {"MultiMedia20 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20399 {"MultiMedia20 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020400 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20401 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20402 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20403 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20404 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
20405 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020406 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20407 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20408 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20409 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20410 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20411 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020412 {"MultiMedia20 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20413 {"MultiMedia20 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020414
Derek Chen07c6d1c2018-07-05 10:39:25 -070020415 {"MultiMedia21 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
20416 {"MultiMedia21 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
20417 {"MultiMedia21 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20418 {"MultiMedia21 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20419 {"MultiMedia21 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20420 {"MultiMedia21 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20421 {"MultiMedia21 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20422 {"MultiMedia21 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20423 {"MultiMedia21 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20424 {"MultiMedia21 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20425 {"MultiMedia21 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20426 {"MultiMedia21 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20427 {"MultiMedia21 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20428 {"MultiMedia21 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20429 {"MultiMedia21 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20430 {"MultiMedia21 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20431 {"MultiMedia21 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20432 {"MultiMedia21 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
20433 {"MultiMedia21 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20434 {"MultiMedia21 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20435 {"MultiMedia21 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20436 {"MultiMedia21 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
20437
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020438 {"MultiMedia1 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
20439 {"MultiMedia2 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
20440 {"MultiMedia4 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
20441 {"MultiMedia5 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
20442 {"MultiMedia6 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
20443 {"MultiMedia8 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020444 {"MultiMedia10 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020445
Asish Bhattacharya34504582017-08-08 12:55:01 +053020446 {"MultiMedia16 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20447 {"MultiMedia16 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20448 {"MultiMedia16 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20449 {"MultiMedia16 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20450 {"MultiMedia16 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20451 {"MultiMedia16 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20452 {"MultiMedia16 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20453 {"MultiMedia16 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20454 {"MultiMedia16 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20455 {"MultiMedia16 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20456 {"MultiMedia16 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20457 {"MultiMedia16 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20458 {"MultiMedia16 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20459 {"MultiMedia16 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20460 {"MultiMedia16 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20461 {"MultiMedia16 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
20462 {"MultiMedia16 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020463 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20464 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20465 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20466 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20467 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
20468 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020469 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20470 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20471 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20472 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20473 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20474 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020475 {"MultiMedia16 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20476 {"MultiMedia16 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020477
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020478 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20479 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20480 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20481 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20482 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20483 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
20484
20485 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20486 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20487 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20488 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20489 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20490 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
20491
20492 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20493 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20494 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20495 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20496 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20497 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
20498
20499 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20500 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20501 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20502 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20503 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20504 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
20505
20506 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20507 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20508 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20509 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20510 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20511 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
20512
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020513 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20514 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20515 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20516 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20517 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20518 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20519 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20520 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20521 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20522 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20523 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20524 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20525 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20526 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20527 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20528 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20529 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
20530 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Audio Mixer"},
20531
20532 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20533 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20534 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20535 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20536 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20537 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20538 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20539 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20540 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20541 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20542 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20543 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20544 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20545 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20546 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20547 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20548 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
20549 {"INT_BT_A2DP_RX", NULL, "INTERNAL_A2DP_RX Audio Mixer"},
20550
20551 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20552 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20553 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20554 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20555 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20556 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20557 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20558 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20559 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20560 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20561 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20562 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20563 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20564 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20565 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20566 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20567 {"INT_FM_RX", NULL, "INTERNAL_FM_RX Audio Mixer"},
20568
20569 {"AFE_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20570 {"AFE_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20571 {"AFE_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20572 {"AFE_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20573 {"AFE_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20574 {"AFE_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20575 {"AFE_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20576 {"AFE_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20577 {"AFE_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20578 {"AFE_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20579 {"AFE_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20580 {"AFE_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20581 {"AFE_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20582 {"AFE_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20583 {"AFE_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20584 {"AFE_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20585 {"PCM_RX", NULL, "AFE_PCM_RX Audio Mixer"},
20586
20587 {"MultiMedia1 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
20588 {"MultiMedia3 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
20589 {"MultiMedia4 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020590 {"MultiMedia10 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020591 {"MultiMedia17 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
20592 {"MultiMedia18 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
20593 {"MultiMedia19 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020594 {"MultiMedia28 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
20595 {"MultiMedia29 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020596 {"MultiMedia5 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
20597 {"MultiMedia8 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020598 {"MultiMedia16 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020599 {"MultiMedia1 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20600 {"MultiMedia4 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020601 {"MultiMedia16 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020602 {"MultiMedia17 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20603 {"MultiMedia18 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20604 {"MultiMedia19 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020605 {"MultiMedia28 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20606 {"MultiMedia29 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020607 {"MultiMedia5 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20608 {"MultiMedia6 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20609 {"MultiMedia8 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20610
20611 {"MultiMedia1 Mixer", "AFE_PCM_TX", "PCM_TX"},
20612 {"MultiMedia3 Mixer", "AFE_PCM_TX", "PCM_TX"},
20613 {"MultiMedia4 Mixer", "AFE_PCM_TX", "PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020614 {"MultiMedia10 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020615 {"MultiMedia17 Mixer", "AFE_PCM_TX", "PCM_TX"},
20616 {"MultiMedia18 Mixer", "AFE_PCM_TX", "PCM_TX"},
20617 {"MultiMedia19 Mixer", "AFE_PCM_TX", "PCM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020618 {"MultiMedia28 Mixer", "AFE_PCM_TX", "PCM_TX"},
20619 {"MultiMedia29 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020620 {"MultiMedia5 Mixer", "AFE_PCM_TX", "PCM_TX"},
20621 {"MultiMedia8 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020622 {"MultiMedia16 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020623 {"MM_UL1", NULL, "MultiMedia1 Mixer"},
20624 {"MultiMedia2 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20625 {"MM_UL2", NULL, "MultiMedia2 Mixer"},
20626 {"MM_UL3", NULL, "MultiMedia3 Mixer"},
20627 {"MM_UL4", NULL, "MultiMedia4 Mixer"},
20628 {"MM_UL5", NULL, "MultiMedia5 Mixer"},
20629 {"MM_UL6", NULL, "MultiMedia6 Mixer"},
20630 {"MM_UL8", NULL, "MultiMedia8 Mixer"},
20631 {"MM_UL9", NULL, "MultiMedia9 Mixer"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020632 {"MM_UL10", NULL, "MultiMedia10 Mixer"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020633 {"MM_UL16", NULL, "MultiMedia16 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020634 {"MM_UL17", NULL, "MultiMedia17 Mixer"},
20635 {"MM_UL18", NULL, "MultiMedia18 Mixer"},
20636 {"MM_UL19", NULL, "MultiMedia19 Mixer"},
20637 {"MM_UL20", NULL, "MultiMedia20 Mixer"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020638 {"MM_UL21", NULL, "MultiMedia21 Mixer"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020639 {"MM_UL28", NULL, "MultiMedia28 Mixer"},
20640 {"MM_UL29", NULL, "MultiMedia29 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020641
20642 {"AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20643 {"AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20644 {"AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20645 {"AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20646 {"AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20647 {"AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20648 {"AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20649 {"AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20650 {"AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20651 {"AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20652 {"AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20653 {"AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20654 {"AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20655 {"AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20656 {"AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20657 {"AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020658 {"AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020659 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Audio Mixer"},
20660
20661 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20662 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20663 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20664 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20665 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20666 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20667 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20668 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20669 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20670 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20671 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20672 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20673 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20674 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20675 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20676 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020677 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020678 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX Audio Mixer"},
20679
20680 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20681 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20682 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20683 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20684 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20685 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20686 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20687 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20688 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20689 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20690 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20691 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20692 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20693 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20694 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20695 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20696 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX Audio Mixer"},
20697
20698 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20699 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20700 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20701 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20702 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20703 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20704 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20705 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20706 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20707 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20708 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20709 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20710 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20711 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20712 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20713 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20714 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX Audio Mixer"},
20715
Rohit Kumara5077932017-09-10 22:05:05 +053020716 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20717 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20718 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20719 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20720 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20721 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20722 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20723 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20724 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20725 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20726 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20727 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20728 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20729 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20730 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20731 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20732 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX Audio Mixer"},
20733
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020734 {"PRI_RX_Voice Mixer", "Voip", "VOIP_DL"},
20735 {"PRI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20736 {"PRI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20737 {"PRI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20738 {"PRI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20739 {"PRI_I2S_RX", NULL, "PRI_RX_Voice Mixer"},
20740
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020741 {"SEC_RX_Voice Mixer", "Voip", "VOIP_DL"},
20742 {"SEC_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20743 {"SEC_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20744 {"SEC_I2S_RX", NULL, "SEC_RX_Voice Mixer"},
20745
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020746 {"SEC_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
20747 {"SEC_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20748 {"SEC_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20749 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20750 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20751 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_Voice Mixer"},
20752
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020753 {"SLIM_0_RX_Voice Mixer", "Voip", "VOIP_DL"},
20754 {"SLIM_0_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020755 {"SLIM_0_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20756 {"SLIM_0_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20757 {"SLIM_0_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20758 {"SLIMBUS_0_RX", NULL, "SLIM_0_RX_Voice Mixer"},
20759
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020760 {"SLIM_6_RX_Voice Mixer", "Voip", "VOIP_DL"},
20761 {"SLIM_6_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020762 {"SLIM_6_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20763 {"SLIM_6_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20764 {"SLIM_6_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20765 {"SLIMBUS_6_RX", NULL, "SLIM_6_RX_Voice Mixer"},
20766
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020767 {"USB_AUDIO_RX_Voice Mixer", "Voip", "VOIP_DL"},
20768 {"USB_AUDIO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020769 {"USB_AUDIO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20770 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20771 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20772 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX_Voice Mixer"},
20773
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080020774 {"DISPLAY_PORT_RX_Voice Mixer", "Voip", "VOIP_DL"},
20775 {"DISPLAY_PORT_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080020776 {"DISPLAY_PORT_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20777 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20778 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20779 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX_Voice Mixer"},
20780
Karthikeyan Mani57550082018-05-03 18:43:58 -070020781 {"DISPLAY_PORT_RX1_Voice Mixer", "Voip", "VOIP_DL"},
20782 {"DISPLAY_PORT_RX1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20783 {"DISPLAY_PORT_RX1_Voice Mixer", "QCHAT", "QCHAT_DL"},
20784 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20785 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20786 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1_Voice Mixer"},
20787
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020788 {"INTERNAL_BT_SCO_RX_Voice Mixer", "Voip", "VOIP_DL"},
20789 {"INTERNAL_BT_SCO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20790 {"INTERNAL_BT_SCO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20791 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20792 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020793 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX_Voice Mixer"},
20794
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020795 {"AFE_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
20796 {"AFE_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20797 {"AFE_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20798 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20799 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20800 {"PCM_RX", NULL, "AFE_PCM_RX_Voice Mixer"},
20801
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020802 {"AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
20803 {"AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020804 {"AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20805 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20806 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20807 {"AUX_PCM_RX", NULL, "AUX_PCM_RX_Voice Mixer"},
20808
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020809 {"SEC_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
20810 {"SEC_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020811 {"SEC_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20812 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20813 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20814 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX_Voice Mixer"},
20815
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020816 {"TERT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
20817 {"TERT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020818 {"TERT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20819 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20820 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20821 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX_Voice Mixer"},
20822
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020823 {"QUAT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
20824 {"QUAT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020825 {"QUAT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20826 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20827 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20828 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX_Voice Mixer"},
20829
Rohit Kumara5077932017-09-10 22:05:05 +053020830 {"QUIN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
20831 {"QUIN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053020832 {"QUIN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20833 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20834 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20835 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX_Voice Mixer"},
20836
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020837 {"HDMI_RX_Voice Mixer", "Voip", "VOIP_DL"},
20838 {"HDMI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20839 {"HDMI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20840 {"HDMI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20841 {"HDMI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20842 {"HDMI", NULL, "HDMI_RX_Voice Mixer"},
20843 {"HDMI", NULL, "HDMI_DL_HL"},
20844
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020845 {"MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020846 {"MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20847 {"MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20848 {"MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
kunleiz8a60b822017-10-11 15:04:02 +080020849 {"MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020850 {"MI2S_RX", NULL, "MI2S_RX_Voice Mixer"},
20851
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020852 {"PRI_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020853 {"PRI_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20854 {"PRI_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20855 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20856 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20857 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_Voice Mixer"},
20858
20859 {"INT0_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
20860 {"INT0_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20861 {"INT0_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20862 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20863 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20864 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_Voice Mixer"},
20865
20866 {"INT4_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
20867 {"INT4_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20868 {"INT4_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20869 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20870 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20871 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_Voice Mixer"},
20872
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020873 {"TERT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020874 {"TERT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20875 {"TERT_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20876 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20877 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20878 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_Voice Mixer"},
20879
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020880 {"QUAT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020881 {"QUAT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20882 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20883 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20884 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_Voice Mixer"},
20885
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020886 {"QUIN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020887 {"QUIN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20888 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20889 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20890 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_Voice Mixer"},
20891
20892 {"QUAT_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20893 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_Voice Mixer"},
20894
20895 {"VOC_EXT_EC MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20896 {"VOC_EXT_EC MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20897 {"VOC_EXT_EC MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20898 {"VOC_EXT_EC MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020899 {"VOC_EXT_EC MUX", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020900 {"VOC_EXT_EC MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
Karthikeyan Mania1eb9382018-07-25 10:52:58 -070020901 {"VOC_EXT_EC MUX", "SEC_TDM_TX", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020902 {"VOIP_UL", NULL, "VOC_EXT_EC MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020903 {"VOICEMMODE1_UL", NULL, "VOC_EXT_EC MUX"},
20904 {"VOICEMMODE2_UL", NULL, "VOC_EXT_EC MUX"},
20905
20906 {"AUDIO_REF_EC_UL1 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20907 {"AUDIO_REF_EC_UL1 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20908 {"AUDIO_REF_EC_UL1 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20909 {"AUDIO_REF_EC_UL1 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20910 {"AUDIO_REF_EC_UL1 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
20911 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20912 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
20913 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
20914 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
20915 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20916
20917 {"AUDIO_REF_EC_UL2 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20918 {"AUDIO_REF_EC_UL2 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20919 {"AUDIO_REF_EC_UL2 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20920 {"AUDIO_REF_EC_UL2 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20921
20922 {"AUDIO_REF_EC_UL3 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20923 {"AUDIO_REF_EC_UL3 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20924 {"AUDIO_REF_EC_UL3 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20925 {"AUDIO_REF_EC_UL3 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20926
20927 {"AUDIO_REF_EC_UL4 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20928 {"AUDIO_REF_EC_UL4 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20929 {"AUDIO_REF_EC_UL4 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20930 {"AUDIO_REF_EC_UL4 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20931
20932 {"AUDIO_REF_EC_UL5 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20933 {"AUDIO_REF_EC_UL5 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20934 {"AUDIO_REF_EC_UL5 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20935 {"AUDIO_REF_EC_UL5 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20936
20937 {"AUDIO_REF_EC_UL6 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20938 {"AUDIO_REF_EC_UL6 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20939 {"AUDIO_REF_EC_UL6 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20940 {"AUDIO_REF_EC_UL6 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20941
20942 {"AUDIO_REF_EC_UL8 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20943 {"AUDIO_REF_EC_UL8 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20944 {"AUDIO_REF_EC_UL8 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20945 {"AUDIO_REF_EC_UL8 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20946
20947 {"AUDIO_REF_EC_UL9 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20948 {"AUDIO_REF_EC_UL9 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20949 {"AUDIO_REF_EC_UL9 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20950 {"AUDIO_REF_EC_UL9 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20951
Laxminath Kasam38070be2017-08-17 18:21:59 +053020952 {"AUDIO_REF_EC_UL10 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20953 {"AUDIO_REF_EC_UL10 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20954 {"AUDIO_REF_EC_UL10 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20955 {"AUDIO_REF_EC_UL10 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20956 {"AUDIO_REF_EC_UL10 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
20957 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20958 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
20959 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
20960 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
20961 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Vikram Panduranga016c49f2017-09-11 15:15:56 -070020962
20963 {"AUDIO_REF_EC_UL16 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20964 {"AUDIO_REF_EC_UL16 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20965 {"AUDIO_REF_EC_UL16 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20966 {"AUDIO_REF_EC_UL16 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20967
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020968 {"AUDIO_REF_EC_UL17 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20969 {"AUDIO_REF_EC_UL17 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20970 {"AUDIO_REF_EC_UL17 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20971 {"AUDIO_REF_EC_UL17 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20972
20973 {"AUDIO_REF_EC_UL18 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20974 {"AUDIO_REF_EC_UL18 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20975 {"AUDIO_REF_EC_UL18 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20976 {"AUDIO_REF_EC_UL18 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20977
20978 {"AUDIO_REF_EC_UL19 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20979 {"AUDIO_REF_EC_UL19 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20980 {"AUDIO_REF_EC_UL19 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20981 {"AUDIO_REF_EC_UL19 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20982
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020983 {"AUDIO_REF_EC_UL28 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20984 {"AUDIO_REF_EC_UL28 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20985 {"AUDIO_REF_EC_UL28 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20986 {"AUDIO_REF_EC_UL28 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20987
20988 {"AUDIO_REF_EC_UL29 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20989 {"AUDIO_REF_EC_UL29 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20990 {"AUDIO_REF_EC_UL29 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20991 {"AUDIO_REF_EC_UL29 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Yunfei Zhang3efc4a22017-11-07 16:30:13 +080020992
20993 {"LSM1_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
20994 {"LSM2_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
20995 {"LSM3_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
20996 {"LSM4_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
20997 {"LSM5_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
20998 {"LSM6_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
20999 {"LSM7_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21000 {"LSM8_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21001
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021002 {"MM_UL1", NULL, "AUDIO_REF_EC_UL1 MUX"},
21003 {"MM_UL2", NULL, "AUDIO_REF_EC_UL2 MUX"},
21004 {"MM_UL3", NULL, "AUDIO_REF_EC_UL3 MUX"},
21005 {"MM_UL4", NULL, "AUDIO_REF_EC_UL4 MUX"},
21006 {"MM_UL5", NULL, "AUDIO_REF_EC_UL5 MUX"},
21007 {"MM_UL6", NULL, "AUDIO_REF_EC_UL6 MUX"},
21008 {"MM_UL8", NULL, "AUDIO_REF_EC_UL8 MUX"},
21009 {"MM_UL9", NULL, "AUDIO_REF_EC_UL9 MUX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021010 {"MM_UL10", NULL, "AUDIO_REF_EC_UL10 MUX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021011 {"MM_UL16", NULL, "AUDIO_REF_EC_UL16 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021012 {"MM_UL17", NULL, "AUDIO_REF_EC_UL17 MUX"},
21013 {"MM_UL18", NULL, "AUDIO_REF_EC_UL18 MUX"},
21014 {"MM_UL19", NULL, "AUDIO_REF_EC_UL19 MUX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021015 {"MM_UL28", NULL, "AUDIO_REF_EC_UL28 MUX"},
21016 {"MM_UL29", NULL, "AUDIO_REF_EC_UL29 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021017
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021018 {"VoiceMMode1_Tx Mixer", "PRI_TX_MMode1", "PRI_I2S_TX"},
21019 {"VoiceMMode1_Tx Mixer", "PRI_MI2S_TX_MMode1", "PRI_MI2S_TX"},
21020 {"VoiceMMode1_Tx Mixer", "MI2S_TX_MMode1", "MI2S_TX"},
21021 {"VoiceMMode1_Tx Mixer", "TERT_MI2S_TX_MMode1", "TERT_MI2S_TX"},
21022 {"VoiceMMode1_Tx Mixer", "INT3_MI2S_TX_MMode1", "INT3_MI2S_TX"},
21023 {"VoiceMMode1_Tx Mixer", "SLIM_0_TX_MMode1", "SLIMBUS_0_TX"},
21024 {"VoiceMMode1_Tx Mixer", "SLIM_7_TX_MMode1", "SLIMBUS_7_TX"},
21025 {"VoiceMMode1_Tx Mixer", "SLIM_8_TX_MMode1", "SLIMBUS_8_TX"},
21026 {"VoiceMMode1_Tx Mixer", "USB_AUDIO_TX_MMode1", "USB_AUDIO_TX"},
21027 {"VoiceMMode1_Tx Mixer", "INT_BT_SCO_TX_MMode1", "INT_BT_SCO_TX"},
21028 {"VoiceMMode1_Tx Mixer", "AFE_PCM_TX_MMode1", "PCM_TX"},
21029 {"VoiceMMode1_Tx Mixer", "AUX_PCM_TX_MMode1", "AUX_PCM_TX"},
21030 {"VoiceMMode1_Tx Mixer", "SEC_AUX_PCM_TX_MMode1", "SEC_AUX_PCM_TX"},
21031 {"VoiceMMode1_Tx Mixer", "TERT_AUX_PCM_TX_MMode1", "TERT_AUX_PCM_TX"},
21032 {"VoiceMMode1_Tx Mixer", "QUAT_AUX_PCM_TX_MMode1", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021033 {"VoiceMMode1_Tx Mixer", "QUIN_AUX_PCM_TX_MMode1", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021034 {"VoiceMMode1_Tx Mixer", "QUAT_TDM_TX_0_MMode1", "QUAT_TDM_TX_0"},
21035 {"VOICEMMODE1_UL", NULL, "VoiceMMode1_Tx Mixer"},
21036
21037 {"VoiceMMode2_Tx Mixer", "PRI_TX_MMode2", "PRI_I2S_TX"},
21038 {"VoiceMMode2_Tx Mixer", "PRI_MI2S_TX_MMode2", "PRI_MI2S_TX"},
21039 {"VoiceMMode2_Tx Mixer", "MI2S_TX_MMode2", "MI2S_TX"},
21040 {"VoiceMMode2_Tx Mixer", "TERT_MI2S_TX_MMode2", "TERT_MI2S_TX"},
21041 {"VoiceMMode2_Tx Mixer", "INT3_MI2S_TX_MMode2", "INT3_MI2S_TX"},
21042 {"VoiceMMode2_Tx Mixer", "SLIM_0_TX_MMode2", "SLIMBUS_0_TX"},
21043 {"VoiceMMode2_Tx Mixer", "SLIM_7_TX_MMode2", "SLIMBUS_7_TX"},
21044 {"VoiceMMode2_Tx Mixer", "SLIM_8_TX_MMode2", "SLIMBUS_8_TX"},
21045 {"VoiceMMode2_Tx Mixer", "USB_AUDIO_TX_MMode2", "USB_AUDIO_TX"},
21046 {"VoiceMMode2_Tx Mixer", "INT_BT_SCO_TX_MMode2", "INT_BT_SCO_TX"},
21047 {"VoiceMMode2_Tx Mixer", "AFE_PCM_TX_MMode2", "PCM_TX"},
21048 {"VoiceMMode2_Tx Mixer", "AUX_PCM_TX_MMode2", "AUX_PCM_TX"},
21049 {"VoiceMMode2_Tx Mixer", "SEC_AUX_PCM_TX_MMode2", "SEC_AUX_PCM_TX"},
21050 {"VoiceMMode2_Tx Mixer", "TERT_AUX_PCM_TX_MMode2", "TERT_AUX_PCM_TX"},
21051 {"VoiceMMode2_Tx Mixer", "QUAT_AUX_PCM_TX_MMode2", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021052 {"VoiceMMode2_Tx Mixer", "QUIN_AUX_PCM_TX_MMode2", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021053 {"VOICEMMODE2_UL", NULL, "VoiceMMode2_Tx Mixer"},
21054
21055 {"Voip_Tx Mixer", "PRI_TX_Voip", "PRI_I2S_TX"},
21056 {"Voip_Tx Mixer", "MI2S_TX_Voip", "MI2S_TX"},
21057 {"Voip_Tx Mixer", "TERT_MI2S_TX_Voip", "TERT_MI2S_TX"},
21058 {"Voip_Tx Mixer", "INT3_MI2S_TX_Voip", "INT3_MI2S_TX"},
21059 {"Voip_Tx Mixer", "SLIM_0_TX_Voip", "SLIMBUS_0_TX"},
21060 {"Voip_Tx Mixer", "SLIM_7_TX_Voip", "SLIMBUS_7_TX"},
21061 {"Voip_Tx Mixer", "SLIM_8_TX_Voip", "SLIMBUS_8_TX"},
21062 {"Voip_Tx Mixer", "USB_AUDIO_TX_Voip", "USB_AUDIO_TX"},
21063 {"Voip_Tx Mixer", "INTERNAL_BT_SCO_TX_Voip", "INT_BT_SCO_TX"},
21064 {"Voip_Tx Mixer", "AFE_PCM_TX_Voip", "PCM_TX"},
21065 {"Voip_Tx Mixer", "AUX_PCM_TX_Voip", "AUX_PCM_TX"},
21066 {"Voip_Tx Mixer", "SEC_AUX_PCM_TX_Voip", "SEC_AUX_PCM_TX"},
21067 {"Voip_Tx Mixer", "TERT_AUX_PCM_TX_Voip", "TERT_AUX_PCM_TX"},
21068 {"Voip_Tx Mixer", "QUAT_AUX_PCM_TX_Voip", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021069 {"Voip_Tx Mixer", "QUIN_AUX_PCM_TX_Voip", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021070 {"Voip_Tx Mixer", "PRI_MI2S_TX_Voip", "PRI_MI2S_TX"},
21071 {"VOIP_UL", NULL, "Voip_Tx Mixer"},
21072
21073 {"SLIMBUS_DL_HL", "Switch", "SLIM0_DL_HL"},
21074 {"SLIMBUS_0_RX", NULL, "SLIMBUS_DL_HL"},
21075 {"SLIMBUS1_DL_HL", "Switch", "SLIM1_DL_HL"},
21076 {"SLIMBUS_1_RX", NULL, "SLIMBUS1_DL_HL"},
21077 {"SLIMBUS3_DL_HL", "Switch", "SLIM3_DL_HL"},
21078 {"SLIMBUS_3_RX", NULL, "SLIMBUS3_DL_HL"},
21079 {"SLIMBUS4_DL_HL", "Switch", "SLIM4_DL_HL"},
21080 {"SLIMBUS_4_RX", NULL, "SLIMBUS4_DL_HL"},
21081 {"SLIMBUS6_DL_HL", "Switch", "SLIM0_DL_HL"},
21082 {"SLIMBUS_6_RX", NULL, "SLIMBUS6_DL_HL"},
21083 {"SLIM0_UL_HL", NULL, "SLIMBUS_0_TX"},
21084 {"SLIM1_UL_HL", NULL, "SLIMBUS_1_TX"},
21085 {"SLIM3_UL_HL", NULL, "SLIMBUS_3_TX"},
21086 {"SLIM4_UL_HL", NULL, "SLIMBUS_4_TX"},
21087 {"SLIM8_UL_HL", NULL, "SLIMBUS_8_TX"},
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053021088 {"WSA_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
21089 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_DL_HL"},
21090 {"CDC_DMA_UL_HL", NULL, "VA_CDC_DMA_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021091 {"LSM1 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21092 {"LSM1 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21093 {"LSM1 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21094 {"LSM1 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21095 {"LSM1 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21096 {"LSM1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21097 {"LSM1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21098 {"LSM1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021099 {"LSM1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21100 {"LSM1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021101 {"LSM1_UL_HL", NULL, "LSM1 Mixer"},
21102
21103 {"LSM2 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21104 {"LSM2 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21105 {"LSM2 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21106 {"LSM2 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21107 {"LSM2 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21108 {"LSM2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21109 {"LSM2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21110 {"LSM2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021111 {"LSM2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21112 {"LSM2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021113 {"LSM2_UL_HL", NULL, "LSM2 Mixer"},
21114
21115
21116 {"LSM3 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21117 {"LSM3 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21118 {"LSM3 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21119 {"LSM3 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21120 {"LSM3 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21121 {"LSM3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21122 {"LSM3 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21123 {"LSM3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021124 {"LSM3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21125 {"LSM3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021126 {"LSM3_UL_HL", NULL, "LSM3 Mixer"},
21127
21128
21129 {"LSM4 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21130 {"LSM4 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21131 {"LSM4 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21132 {"LSM4 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21133 {"LSM4 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21134 {"LSM4 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21135 {"LSM4 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21136 {"LSM4 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021137 {"LSM4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21138 {"LSM4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021139 {"LSM4_UL_HL", NULL, "LSM4 Mixer"},
21140
21141 {"LSM5 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21142 {"LSM5 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21143 {"LSM5 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21144 {"LSM5 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21145 {"LSM5 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21146 {"LSM5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21147 {"LSM5 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21148 {"LSM5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021149 {"LSM5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21150 {"LSM5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021151 {"LSM5_UL_HL", NULL, "LSM5 Mixer"},
21152
21153 {"LSM6 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21154 {"LSM6 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21155 {"LSM6 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21156 {"LSM6 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21157 {"LSM6 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21158 {"LSM6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021159 {"LSM6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21160 {"LSM6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021161 {"LSM6_UL_HL", NULL, "LSM6 Mixer"},
21162
21163 {"LSM7 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21164 {"LSM7 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21165 {"LSM7 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21166 {"LSM7 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21167 {"LSM7 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21168 {"LSM7 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021169 {"LSM7 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21170 {"LSM7 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021171 {"LSM7_UL_HL", NULL, "LSM7 Mixer"},
21172
21173 {"LSM8 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21174 {"LSM8 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21175 {"LSM8 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21176 {"LSM8 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21177 {"LSM8 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21178 {"LSM8 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021179 {"LSM8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21180 {"LSM8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021181 {"LSM8_UL_HL", NULL, "LSM8 Mixer"},
21182
21183
21184 {"CPE_LSM_UL_HL", NULL, "BE_IN"},
21185 {"QCHAT_Tx Mixer", "PRI_TX_QCHAT", "PRI_I2S_TX"},
21186 {"QCHAT_Tx Mixer", "SLIM_0_TX_QCHAT", "SLIMBUS_0_TX"},
21187 {"QCHAT_Tx Mixer", "SLIM_7_TX_QCHAT", "SLIMBUS_7_TX"},
21188 {"QCHAT_Tx Mixer", "SLIM_8_TX_QCHAT", "SLIMBUS_8_TX"},
21189 {"QCHAT_Tx Mixer", "INTERNAL_BT_SCO_TX_QCHAT", "INT_BT_SCO_TX"},
21190 {"QCHAT_Tx Mixer", "AFE_PCM_TX_QCHAT", "PCM_TX"},
21191 {"QCHAT_Tx Mixer", "AUX_PCM_TX_QCHAT", "AUX_PCM_TX"},
21192 {"QCHAT_Tx Mixer", "SEC_AUX_PCM_TX_QCHAT", "SEC_AUX_PCM_TX"},
21193 {"QCHAT_Tx Mixer", "TERT_AUX_PCM_TX_QCHAT", "TERT_AUX_PCM_TX"},
21194 {"QCHAT_Tx Mixer", "QUAT_AUX_PCM_TX_QCHAT", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021195 {"QCHAT_Tx Mixer", "QUIN_AUX_PCM_TX_QCHAT", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021196 {"QCHAT_Tx Mixer", "MI2S_TX_QCHAT", "MI2S_TX"},
21197 {"QCHAT_Tx Mixer", "PRI_MI2S_TX_QCHAT", "PRI_MI2S_TX"},
21198 {"QCHAT_Tx Mixer", "TERT_MI2S_TX_QCHAT", "TERT_MI2S_TX"},
21199 {"QCHAT_Tx Mixer", "INT3_MI2S_TX_QCHAT", "INT3_MI2S_TX"},
21200 {"QCHAT_Tx Mixer", "USB_AUDIO_TX_QCHAT", "USB_AUDIO_TX"},
21201 {"QCHAT_UL", NULL, "QCHAT_Tx Mixer"},
21202
21203 {"INT_FM_RX", NULL, "INTFM_DL_HL"},
21204 {"INTFM_UL_HL", NULL, "INT_FM_TX"},
21205 {"INTHFP_UL_HL", NULL, "HFP_PRI_AUX_UL_HL"},
21206 {"HFP_PRI_AUX_UL_HL", "Switch", "AUX_PCM_TX"},
21207 {"INTHFP_UL_HL", NULL, "HFP_AUX_UL_HL"},
21208 {"HFP_AUX_UL_HL", "Switch", "SEC_AUX_PCM_TX"},
21209 {"INTHFP_UL_HL", NULL, "HFP_INT_UL_HL"},
21210 {"HFP_INT_UL_HL", "Switch", "INT_BT_SCO_TX"},
21211 {"SLIM7_UL_HL", NULL, "HFP_SLIM7_UL_HL"},
21212 {"HFP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
21213 {"AUX_PCM_RX", NULL, "AUXPCM_DL_HL"},
21214 {"AUX_PCM_RX", NULL, "INTHFP_DL_HL"},
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080021215 {"SLIM7_UL_HL", NULL, "A2DP_SLIM7_UL_HL"},
21216 {"A2DP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080021217 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021218 {"AUXPCM_UL_HL", NULL, "AUX_PCM_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080021219 {"SEC_AUXPCM_UL_HL", NULL, "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021220 {"MI2S_RX", NULL, "MI2S_DL_HL"},
21221 {"MI2S_UL_HL", NULL, "MI2S_TX"},
21222 {"PCM_RX_DL_HL", "Switch", "SLIM0_DL_HL"},
21223 {"PCM_RX", NULL, "PCM_RX_DL_HL"},
21224
21225 /* connect to INT4_MI2S_DL_HL since same pcm_id */
21226 {"INT0_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
21227 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_DL_HL"},
21228 {"INT4_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
21229 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_DL_HL"},
21230 {"PRI_MI2S_RX_DL_HL", "Switch", "PRI_MI2S_DL_HL"},
21231 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_DL_HL"},
21232 {"SEC_MI2S_RX_DL_HL", "Switch", "SEC_MI2S_DL_HL"},
21233 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_DL_HL"},
21234 {"TERT_MI2S_RX_DL_HL", "Switch", "TERT_MI2S_DL_HL"},
21235 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_DL_HL"},
21236
21237 {"QUAT_MI2S_RX_DL_HL", "Switch", "QUAT_MI2S_DL_HL"},
21238 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053021239 {"QUIN_MI2S_RX_DL_HL", "Switch", "QUIN_MI2S_DL_HL"},
21240 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021241 {"MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
21242 {"INT3_MI2S_UL_HL", NULL, "INT3_MI2S_TX"},
21243 {"TERT_MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
21244 {"SEC_I2S_RX", NULL, "SEC_I2S_DL_HL"},
21245 {"PRI_MI2S_UL_HL", NULL, "PRI_MI2S_TX"},
21246 {"SEC_MI2S_UL_HL", NULL, "SEC_MI2S_TX"},
21247 {"SEC_MI2S_RX", NULL, "SEC_MI2S_DL_HL"},
21248 {"PRI_MI2S_RX", NULL, "PRI_MI2S_DL_HL"},
21249 {"TERT_MI2S_RX", NULL, "TERT_MI2S_DL_HL"},
21250 {"QUAT_MI2S_UL_HL", NULL, "QUAT_MI2S_TX"},
21251
21252 {"PRI_TDM_TX_0_UL_HL", NULL, "PRI_TDM_TX_0"},
21253 {"PRI_TDM_TX_1_UL_HL", NULL, "PRI_TDM_TX_1"},
21254 {"PRI_TDM_TX_2_UL_HL", NULL, "PRI_TDM_TX_2"},
21255 {"PRI_TDM_TX_3_UL_HL", NULL, "PRI_TDM_TX_3"},
21256 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_DL_HL"},
21257 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_DL_HL"},
21258 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_DL_HL"},
21259 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_DL_HL"},
21260 {"SEC_TDM_TX_0_UL_HL", NULL, "SEC_TDM_TX_0"},
21261 {"SEC_TDM_TX_1_UL_HL", NULL, "SEC_TDM_TX_1"},
21262 {"SEC_TDM_TX_2_UL_HL", NULL, "SEC_TDM_TX_2"},
21263 {"SEC_TDM_TX_3_UL_HL", NULL, "SEC_TDM_TX_3"},
21264 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0_DL_HL"},
21265 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1_DL_HL"},
21266 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2_DL_HL"},
21267 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3_DL_HL"},
21268 {"TERT_TDM_TX_0_UL_HL", NULL, "TERT_TDM_TX_0"},
21269 {"TERT_TDM_TX_1_UL_HL", NULL, "TERT_TDM_TX_1"},
21270 {"TERT_TDM_TX_2_UL_HL", NULL, "TERT_TDM_TX_2"},
21271 {"TERT_TDM_TX_3_UL_HL", NULL, "TERT_TDM_TX_3"},
21272 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0_DL_HL"},
21273 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1_DL_HL"},
21274 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2_DL_HL"},
21275 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3_DL_HL"},
21276 {"QUAT_TDM_TX_0_UL_HL", NULL, "QUAT_TDM_TX_0"},
21277 {"QUAT_TDM_TX_1_UL_HL", NULL, "QUAT_TDM_TX_1"},
21278 {"QUAT_TDM_TX_2_UL_HL", NULL, "QUAT_TDM_TX_2"},
21279 {"QUAT_TDM_TX_3_UL_HL", NULL, "QUAT_TDM_TX_3"},
21280 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0_DL_HL"},
21281 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1_DL_HL"},
21282 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_DL_HL"},
21283 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053021284 {"QUIN_TDM_TX_0_UL_HL", NULL, "QUIN_TDM_TX_0"},
21285 {"QUIN_TDM_TX_1_UL_HL", NULL, "QUIN_TDM_TX_1"},
21286 {"QUIN_TDM_TX_2_UL_HL", NULL, "QUIN_TDM_TX_2"},
21287 {"QUIN_TDM_TX_3_UL_HL", NULL, "QUIN_TDM_TX_3"},
21288 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0_DL_HL"},
21289 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1_DL_HL"},
21290 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2_DL_HL"},
21291 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021292
21293 {"PRI_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21294 {"PRI_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21295 {"PRI_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21296 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21297 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21298 {"PRI_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21299 {"PRI_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21300 {"PRI_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21301 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21302 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21303 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21304 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21305 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21306 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21307 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21308 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021309 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21310 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21311 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21312 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021313 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Port Mixer"},
21314
21315 {"PRI_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21316 {"PRI_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21317 {"PRI_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21318 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21319 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21320 {"PRI_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21321 {"PRI_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21322 {"PRI_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21323 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21324 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21325 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21326 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21327 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21328 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21329 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21330 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021331 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21332 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21333 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21334 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021335 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Port Mixer"},
21336
21337 {"PRI_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21338 {"PRI_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21339 {"PRI_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21340 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21341 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21342 {"PRI_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21343 {"PRI_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21344 {"PRI_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21345 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21346 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21347 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21348 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21349 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21350 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21351 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21352 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021353 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21354 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21355 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21356 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021357 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Port Mixer"},
21358
21359 {"PRI_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21360 {"PRI_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21361 {"PRI_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21362 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21363 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21364 {"PRI_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21365 {"PRI_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21366 {"PRI_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21367 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21368 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21369 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21370 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21371 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21372 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21373 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21374 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021375 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21376 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21377 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21378 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021379 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Port Mixer"},
21380
21381 {"SEC_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21382 {"SEC_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21383 {"SEC_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21384 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21385 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21386 {"SEC_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21387 {"SEC_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21388 {"SEC_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21389 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21390 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21391 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21392 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21393 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21394 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21395 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21396 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021397 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21398 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21399 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21400 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021401 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Port Mixer"},
21402
21403 {"SEC_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21404 {"SEC_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21405 {"SEC_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21406 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21407 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21408 {"SEC_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21409 {"SEC_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21410 {"SEC_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21411 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21412 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21413 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21414 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21415 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21416 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21417 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21418 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021419 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21420 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21421 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21422 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021423 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Port Mixer"},
21424
21425 {"SEC_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21426 {"SEC_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21427 {"SEC_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21428 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21429 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21430 {"SEC_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21431 {"SEC_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21432 {"SEC_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21433 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21434 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21435 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21436 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21437 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21438 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21439 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21440 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021441 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21442 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21443 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21444 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021445 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Port Mixer"},
21446
21447 {"SEC_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21448 {"SEC_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21449 {"SEC_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21450 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21451 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21452 {"SEC_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21453 {"SEC_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21454 {"SEC_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21455 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21456 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21457 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21458 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21459 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21460 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21461 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21462 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021463 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21464 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21465 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21466 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021467 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Port Mixer"},
21468
21469 {"TERT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21470 {"TERT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21471 {"TERT_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21472 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21473 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21474 {"TERT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21475 {"TERT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21476 {"TERT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21477 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21478 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21479 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21480 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21481 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21482 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21483 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21484 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021485 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21486 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21487 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21488 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021489 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Port Mixer"},
21490
21491 {"TERT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21492 {"TERT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21493 {"TERT_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21494 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21495 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21496 {"TERT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21497 {"TERT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21498 {"TERT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21499 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21500 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21501 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21502 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21503 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21504 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21505 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21506 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021507 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21508 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21509 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21510 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021511 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Port Mixer"},
21512
21513 {"TERT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21514 {"TERT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21515 {"TERT_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21516 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21517 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21518 {"TERT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21519 {"TERT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21520 {"TERT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21521 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21522 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21523 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21524 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21525 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21526 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21527 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21528 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021529 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21530 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21531 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21532 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021533 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Port Mixer"},
21534
21535 {"TERT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21536 {"TERT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21537 {"TERT_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21538 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21539 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21540 {"TERT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21541 {"TERT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21542 {"TERT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21543 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21544 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21545 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21546 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21547 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21548 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21549 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21550 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021551 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21552 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21553 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21554 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021555 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Port Mixer"},
21556
21557 {"QUAT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21558 {"QUAT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21559 {"QUAT_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21560 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21561 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21562 {"QUAT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21563 {"QUAT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21564 {"QUAT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21565 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21566 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21567 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21568 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21569 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21570 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21571 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21572 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021573 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21574 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21575 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21576 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021577 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Port Mixer"},
21578
21579 {"QUAT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21580 {"QUAT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21581 {"QUAT_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21582 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21583 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21584 {"QUAT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21585 {"QUAT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21586 {"QUAT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21587 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21588 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21589 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21590 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21591 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21592 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21593 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21594 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021595 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21596 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21597 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21598 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021599 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Port Mixer"},
21600
21601 {"QUAT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21602 {"QUAT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21603 {"QUAT_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21604 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21605 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21606 {"QUAT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21607 {"QUAT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21608 {"QUAT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21609 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21610 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21611 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21612 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21613 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21614 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21615 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21616 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021617 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21618 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21619 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21620 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021621 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Port Mixer"},
21622
21623 {"QUAT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21624 {"QUAT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21625 {"QUAT_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21626 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21627 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21628 {"QUAT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21629 {"QUAT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21630 {"QUAT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21631 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21632 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21633 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21634 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21635 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21636 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21637 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21638 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021639 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21640 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21641 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21642 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021643 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Port Mixer"},
21644
Rohit Kumara5077932017-09-10 22:05:05 +053021645 {"QUIN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21646 {"QUIN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21647 {"QUIN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21648 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21649 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21650 {"QUIN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21651 {"QUIN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21652 {"QUIN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21653 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21654 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21655 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21656 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21657 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21658 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21659 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21660 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21661 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21662 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21663 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21664 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053021665 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053021666
21667 {"QUIN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21668 {"QUIN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21669 {"QUIN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21670 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21671 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21672 {"QUIN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21673 {"QUIN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21674 {"QUIN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21675 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21676 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21677 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21678 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21679 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21680 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21681 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21682 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21683 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21684 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21685 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21686 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053021687 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053021688
21689 {"QUIN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21690 {"QUIN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21691 {"QUIN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21692 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21693 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21694 {"QUIN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21695 {"QUIN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21696 {"QUIN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21697 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21698 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21699 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21700 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21701 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21702 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21703 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21704 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21705 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21706 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21707 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21708 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053021709 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053021710
21711 {"QUIN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21712 {"QUIN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21713 {"QUIN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21714 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21715 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21716 {"QUIN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21717 {"QUIN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21718 {"QUIN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21719 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21720 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21721 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21722 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21723 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21724 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21725 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21726 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21727 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21728 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21729 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21730 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053021731 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053021732
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021733 {"INT0_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21734 {"INT0_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21735 {"INT0_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21736 {"INT0_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021737 {"INT0_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021738 {"INT0_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21739 {"INT0_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
21740 {"INT0_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21741 {"INT0_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21742 {"INT0_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21743 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Port Mixer"},
21744
21745 {"INT4_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21746 {"INT4_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21747 {"INT4_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21748 {"INT4_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021749 {"INT4_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021750 {"INT4_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21751 {"INT4_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
21752 {"INT4_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21753 {"INT4_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21754 {"INT4_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21755 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Port Mixer"},
21756
21757 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21758 {"SLIMBUS_0_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21759 {"SLIMBUS_0_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21760 {"SLIMBUS_0_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
21761 {"SLIMBUS_0_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21762 {"SLIMBUS_0_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21763 {"SLIMBUS_0_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21764 {"SLIMBUS_0_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
21765 {"SLIMBUS_0_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021766 {"SLIMBUS_0_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021767 {"SLIMBUS_0_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
21768 {"SLIMBUS_0_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21769 {"SLIMBUS_0_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21770 {"SLIMBUS_0_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21771 {"SLIMBUS_0_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021772 {"SLIMBUS_0_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021773 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21774 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Port Mixer"},
21775 {"AFE_PCM_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21776 {"AFE_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21777 {"PCM_RX", NULL, "AFE_PCM_RX Port Mixer"},
21778 {"USB_AUDIO_RX Port Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21779 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Port Mixer"},
21780 {"USB_DL_HL", "Switch", "USBAUDIO_DL_HL"},
21781 {"USB_AUDIO_RX", NULL, "USB_DL_HL"},
21782 {"USBAUDIO_UL_HL", NULL, "USB_AUDIO_TX"},
21783
21784
21785 {"AUX_PCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21786 {"AUX_PCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21787 {"AUX_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21788 {"AUX_PCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21789 {"AUX_PCM_RX Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080021790 {"AUX_PCM_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021791 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Port Mixer"},
21792
21793 {"SEC_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21794 {"SEC_AUXPCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21795 {"SEC_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080021796 {"SEC_AUXPCM_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021797 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_RX Port Mixer"},
21798
21799 {"TERT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21800 {"TERT_AUXPCM_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
21801 {"TERT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21802 {"TERT_AUX_PCM_RX", NULL, "TERT_AUXPCM_RX Port Mixer"},
21803
21804 {"QUAT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21805 {"QUAT_AUXPCM_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
21806 {"QUAT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21807 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUXPCM_RX Port Mixer"},
21808
Rohit Kumara5077932017-09-10 22:05:05 +053021809 {"QUIN_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21810 {"QUIN_AUXPCM_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
21811 {"QUIN_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21812 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUXPCM_RX Port Mixer"},
21813
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021814 {"Voice Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
21815 {"Voice Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21816 {"Voice Stub Tx Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21817 {"Voice Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
21818 {"Voice Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21819 {"Voice Stub Tx Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21820 {"Voice Stub Tx Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
21821 {"Voice Stub Tx Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021822 {"Voice Stub Tx Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021823 {"Voice Stub Tx Mixer", "MI2S_TX", "MI2S_TX"},
21824 {"Voice Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21825 {"Voice Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21826 {"Voice Stub Tx Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21827 {"Voice Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21828 {"Voice Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21829 {"Voice Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
21830 {"Voice Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
21831 {"Voice Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21832 {"Voice Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
21833 {"VOICE_STUB_UL", NULL, "Voice Stub Tx Mixer"},
21834
21835 {"VoLTE Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
21836 {"VoLTE Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21837 {"VoLTE Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
21838 {"VoLTE Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21839 {"VoLTE Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21840 {"VoLTE Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
21841 {"VoLTE Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
21842 {"VoLTE Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21843 {"VoLTE Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
21844 {"VoLTE Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21845 {"VoLTE Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21846 {"VOLTE_STUB_UL", NULL, "VoLTE Stub Tx Mixer"},
21847
21848 {"Voice2 Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
21849 {"Voice2 Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21850 {"Voice2 Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
21851 {"Voice2 Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21852 {"Voice2 Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21853 {"Voice2 Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
21854 {"Voice2 Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
21855 {"Voice2 Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21856 {"Voice2 Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
21857 {"Voice2 Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21858 {"Voice2 Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21859 {"VOICE2_STUB_UL", NULL, "Voice2 Stub Tx Mixer"},
21860
kunleizdf5a00a2017-11-27 15:27:36 +080021861 {"STUB_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21862 {"STUB_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021863 {"STUB_RX", NULL, "STUB_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080021864
21865 {"SLIMBUS_1_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21866 {"SLIMBUS_1_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021867 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080021868
21869 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21870 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021871 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX_Voice Mixer"},
21872
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021873 {"SLIM_7_RX_Voice Mixer", "Voip", "VOIP_DL"},
21874 {"SLIM_7_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021875 {"SLIM_7_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21876 {"SLIM_7_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21877 {"SLIM_7_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21878 {"SLIMBUS_7_RX", NULL, "SLIM_7_RX_Voice Mixer"},
21879
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021880 {"SLIM_8_RX_Voice Mixer", "Voip", "VOIP_DL"},
21881 {"SLIM_8_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021882 {"SLIM_8_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21883 {"SLIM_8_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21884 {"SLIM_8_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21885 {"SLIMBUS_8_RX", NULL, "SLIM_8_RX_Voice Mixer"},
21886
21887 {"SLIMBUS_1_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21888 {"SLIMBUS_1_RX Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21889 {"SLIMBUS_1_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21890 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Port Mixer"},
21891 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21892 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21893 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Port Mixer"},
21894 {"SLIMBUS_3_RX Port Mixer", "INTERNAL_BT_SCO_RX", "INT_BT_SCO_RX"},
21895 {"SLIMBUS_3_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
21896 {"SLIMBUS_3_RX Port Mixer", "AFE_PCM_RX", "PCM_RX"},
21897 {"SLIMBUS_3_RX Port Mixer", "AUX_PCM_RX", "AUX_PCM_RX"},
21898 {"SLIMBUS_3_RX Port Mixer", "SLIM_0_RX", "SLIMBUS_0_RX"},
21899 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX Port Mixer"},
21900
21901 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21902 {"SLIMBUS_6_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21903 {"SLIMBUS_6_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21904 {"SLIMBUS_6_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
21905 {"SLIMBUS_6_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21906 {"SLIMBUS_6_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21907 {"SLIMBUS_6_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21908 {"SLIMBUS_6_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
21909 {"SLIMBUS_6_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21910 {"SLIMBUS_6_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21911 {"SLIMBUS_6_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21912 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21913 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Port Mixer"},
21914
21915 {"HDMI_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
21916 {"HDMI", NULL, "HDMI_RX Port Mixer"},
21917
21918 {"DISPLAY_PORT_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
21919 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX Port Mixer"},
21920
Karthikeyan Mani57550082018-05-03 18:43:58 -070021921 {"DISPLAY_PORT_RX1 Port Mixer", "MI2S_TX", "MI2S_TX"},
21922 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1 Port Mixer"},
21923
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021924 {"SEC_I2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
21925 {"SEC_I2S_RX", NULL, "SEC_I2S_RX Port Mixer"},
21926
21927 {"MI2S_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21928 {"MI2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
21929 {"MI2S_RX", NULL, "MI2S_RX Port Mixer"},
21930
21931 {"PRI_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21932 {"PRI_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21933 {"PRI_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21934 {"PRI_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021935 {"PRI_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021936 {"PRI_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21937 {"PRI_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21938 {"PRI_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21939 {"PRI_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080021940 {"PRI_MI2S_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021941 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Port Mixer"},
21942
21943 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21944 {"SEC_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21945 {"SEC_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21946 {"SEC_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021947 {"SEC_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021948 {"SEC_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21949 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21950 {"SEC_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080021951 {"SEC_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021952 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Port Mixer"},
21953
21954 {"TERT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21955 {"TERT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21956 {"TERT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21957 {"TERT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021958 {"TERT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021959 {"TERT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21960 {"TERT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21961 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Port Mixer"},
21962
21963 {"QUAT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21964 {"QUAT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21965 {"QUAT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21966 {"QUAT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021967 {"QUAT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021968 {"QUAT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21969 {"QUAT_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21970 {"QUAT_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21971 {"QUAT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21972 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Port Mixer"},
21973
Rohit Kumara5077932017-09-10 22:05:05 +053021974 {"QUIN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21975 {"QUIN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21976 {"QUIN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21977 {"QUIN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21978 {"QUIN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
21979 {"QUIN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21980 {"QUIN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21981 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Port Mixer"},
21982
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021983 /* Backend Enablement */
21984
21985 {"BE_OUT", NULL, "PRI_I2S_RX"},
21986 {"BE_OUT", NULL, "SEC_I2S_RX"},
21987 {"BE_OUT", NULL, "SLIMBUS_0_RX"},
21988 {"BE_OUT", NULL, "SLIMBUS_1_RX"},
21989 {"BE_OUT", NULL, "SLIMBUS_2_RX"},
21990 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
21991 {"BE_OUT", NULL, "SLIMBUS_4_RX"},
21992 {"BE_OUT", NULL, "SLIMBUS_5_RX"},
21993 {"BE_OUT", NULL, "SLIMBUS_6_RX"},
21994 {"BE_OUT", NULL, "SLIMBUS_7_RX"},
21995 {"BE_OUT", NULL, "SLIMBUS_8_RX"},
21996 {"BE_OUT", NULL, "USB_AUDIO_RX"},
21997 {"BE_OUT", NULL, "HDMI"},
21998 {"BE_OUT", NULL, "DISPLAY_PORT"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070021999 {"BE_OUT", NULL, "DISPLAY_PORT1"},
Ralf Herzc8701f72018-06-20 11:37:35 +020022000 {"BE_OUT", NULL, "PRI_SPDIF_RX"},
22001 {"BE_OUT", NULL, "SEC_SPDIF_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022002 {"BE_OUT", NULL, "MI2S_RX"},
22003 {"BE_OUT", NULL, "QUAT_MI2S_RX"},
22004 {"BE_OUT", NULL, "QUIN_MI2S_RX"},
22005 {"BE_OUT", NULL, "TERT_MI2S_RX"},
22006 {"BE_OUT", NULL, "SEC_MI2S_RX"},
22007 {"BE_OUT", NULL, "SEC_MI2S_RX_SD1"},
22008 {"BE_OUT", NULL, "PRI_MI2S_RX"},
22009 {"BE_OUT", NULL, "INT0_MI2S_RX"},
22010 {"BE_OUT", NULL, "INT4_MI2S_RX"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053022011 {"BE_OUT", NULL, "INT2_MI2S_RX"},
22012 {"BE_OUT", NULL, "INT3_MI2S_RX"},
22013 {"BE_OUT", NULL, "INT5_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022014 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
22015 {"BE_OUT", NULL, "INT_BT_A2DP_RX"},
22016 {"BE_OUT", NULL, "INT_FM_RX"},
22017 {"BE_OUT", NULL, "PCM_RX"},
22018 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
22019 {"BE_OUT", NULL, "AUX_PCM_RX"},
22020 {"BE_OUT", NULL, "SEC_AUX_PCM_RX"},
22021 {"BE_OUT", NULL, "TERT_AUX_PCM_RX"},
22022 {"BE_OUT", NULL, "QUAT_AUX_PCM_RX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022023 {"BE_OUT", NULL, "QUIN_AUX_PCM_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022024 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
22025 {"BE_OUT", NULL, "INT_FM_RX"},
22026 {"BE_OUT", NULL, "PCM_RX"},
22027 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
22028 {"BE_OUT", NULL, "VOICE_PLAYBACK_TX"},
22029 {"BE_OUT", NULL, "VOICE2_PLAYBACK_TX"},
22030 {"BE_OUT", NULL, "PRI_TDM_RX_0"},
22031 {"BE_OUT", NULL, "PRI_TDM_RX_1"},
22032 {"BE_OUT", NULL, "PRI_TDM_RX_2"},
22033 {"BE_OUT", NULL, "PRI_TDM_RX_3"},
22034 {"BE_OUT", NULL, "SEC_TDM_RX_0"},
22035 {"BE_OUT", NULL, "SEC_TDM_RX_1"},
22036 {"BE_OUT", NULL, "SEC_TDM_RX_2"},
22037 {"BE_OUT", NULL, "SEC_TDM_RX_3"},
22038 {"BE_OUT", NULL, "TERT_TDM_RX_0"},
22039 {"BE_OUT", NULL, "TERT_TDM_RX_1"},
22040 {"BE_OUT", NULL, "TERT_TDM_RX_2"},
22041 {"BE_OUT", NULL, "TERT_TDM_RX_3"},
22042 {"BE_OUT", NULL, "TERT_TDM_RX_4"},
22043 {"BE_OUT", NULL, "QUAT_TDM_RX_0"},
22044 {"BE_OUT", NULL, "QUAT_TDM_RX_1"},
22045 {"BE_OUT", NULL, "QUAT_TDM_RX_2"},
22046 {"BE_OUT", NULL, "QUAT_TDM_RX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022047 {"BE_OUT", NULL, "QUIN_TDM_RX_0"},
22048 {"BE_OUT", NULL, "QUIN_TDM_RX_1"},
22049 {"BE_OUT", NULL, "QUIN_TDM_RX_2"},
22050 {"BE_OUT", NULL, "QUIN_TDM_RX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022051 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_0"},
22052 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022053 {"BE_OUT", NULL, "RX_CDC_DMA_RX_0"},
22054 {"BE_OUT", NULL, "RX_CDC_DMA_RX_1"},
22055 {"BE_OUT", NULL, "RX_CDC_DMA_RX_2"},
22056 {"BE_OUT", NULL, "RX_CDC_DMA_RX_3"},
22057 {"BE_OUT", NULL, "RX_CDC_DMA_RX_4"},
22058 {"BE_OUT", NULL, "RX_CDC_DMA_RX_5"},
22059 {"BE_OUT", NULL, "RX_CDC_DMA_RX_6"},
22060 {"BE_OUT", NULL, "RX_CDC_DMA_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022061
22062 {"PRI_I2S_TX", NULL, "BE_IN"},
22063 {"MI2S_TX", NULL, "BE_IN"},
22064 {"QUAT_MI2S_TX", NULL, "BE_IN"},
22065 {"QUIN_MI2S_TX", NULL, "BE_IN"},
22066 {"PRI_MI2S_TX", NULL, "BE_IN"},
22067 {"TERT_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053022068 {"INT0_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022069 {"INT2_MI2S_TX", NULL, "BE_IN"},
22070 {"INT3_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053022071 {"INT4_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022072 {"INT5_MI2S_TX", NULL, "BE_IN"},
22073 {"SEC_MI2S_TX", NULL, "BE_IN"},
22074 {"SENARY_MI2S_TX", NULL, "BE_IN" },
22075 {"SLIMBUS_0_TX", NULL, "BE_IN" },
22076 {"SLIMBUS_1_TX", NULL, "BE_IN" },
22077 {"SLIMBUS_3_TX", NULL, "BE_IN" },
22078 {"SLIMBUS_4_TX", NULL, "BE_IN" },
22079 {"SLIMBUS_5_TX", NULL, "BE_IN" },
22080 {"SLIMBUS_6_TX", NULL, "BE_IN" },
22081 {"SLIMBUS_7_TX", NULL, "BE_IN" },
22082 {"SLIMBUS_8_TX", NULL, "BE_IN" },
22083 {"USB_AUDIO_TX", NULL, "BE_IN" },
22084 {"INT_BT_SCO_TX", NULL, "BE_IN"},
22085 {"INT_FM_TX", NULL, "BE_IN"},
22086 {"PCM_TX", NULL, "BE_IN"},
22087 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
22088 {"BE_OUT", NULL, "STUB_RX"},
22089 {"STUB_TX", NULL, "BE_IN"},
22090 {"STUB_1_TX", NULL, "BE_IN"},
22091 {"BE_OUT", NULL, "AUX_PCM_RX"},
22092 {"AUX_PCM_TX", NULL, "BE_IN"},
22093 {"SEC_AUX_PCM_TX", NULL, "BE_IN"},
22094 {"TERT_AUX_PCM_TX", NULL, "BE_IN"},
22095 {"QUAT_AUX_PCM_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053022096 {"QUIN_AUX_PCM_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022097 {"INCALL_RECORD_TX", NULL, "BE_IN"},
22098 {"INCALL_RECORD_RX", NULL, "BE_IN"},
22099 {"SLIM0_RX_VI_FB_LCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
22100 {"SLIM0_RX_VI_FB_RCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022101 {"WSA_RX_0_VI_FB_LCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
22102 {"WSA_RX_0_VI_FB_RCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022103 {"PRI_MI2S_RX_VI_FB_MUX", "SENARY_TX", "SENARY_TX"},
22104 {"INT4_MI2S_RX_VI_FB_MONO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
22105 {"INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
22106 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_LCH_MUX"},
22107 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_RCH_MUX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022108 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_LCH_MUX"},
22109 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_RCH_MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022110 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_VI_FB_MUX"},
22111 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_MONO_CH_MUX"},
22112 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_STEREO_CH_MUX"},
22113 {"PRI_TDM_TX_0", NULL, "BE_IN"},
22114 {"PRI_TDM_TX_1", NULL, "BE_IN"},
22115 {"PRI_TDM_TX_2", NULL, "BE_IN"},
22116 {"PRI_TDM_TX_3", NULL, "BE_IN"},
22117 {"SEC_TDM_TX_0", NULL, "BE_IN"},
22118 {"SEC_TDM_TX_1", NULL, "BE_IN"},
22119 {"SEC_TDM_TX_2", NULL, "BE_IN"},
22120 {"SEC_TDM_TX_3", NULL, "BE_IN"},
22121 {"TERT_TDM_TX_0", NULL, "BE_IN"},
22122 {"TERT_TDM_TX_1", NULL, "BE_IN"},
22123 {"TERT_TDM_TX_2", NULL, "BE_IN"},
22124 {"TERT_TDM_TX_3", NULL, "BE_IN"},
22125 {"QUAT_TDM_TX_0", NULL, "BE_IN"},
22126 {"QUAT_TDM_TX_1", NULL, "BE_IN"},
22127 {"QUAT_TDM_TX_2", NULL, "BE_IN"},
22128 {"QUAT_TDM_TX_3", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053022129 {"QUIN_TDM_TX_0", NULL, "BE_IN"},
22130 {"QUIN_TDM_TX_1", NULL, "BE_IN"},
22131 {"QUIN_TDM_TX_2", NULL, "BE_IN"},
22132 {"QUIN_TDM_TX_3", NULL, "BE_IN"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022133 {"WSA_CDC_DMA_TX_0", NULL, "BE_IN"},
22134 {"WSA_CDC_DMA_TX_1", NULL, "BE_IN"},
22135 {"WSA_CDC_DMA_TX_2", NULL, "BE_IN"},
22136 {"VA_CDC_DMA_TX_0", NULL, "BE_IN"},
22137 {"VA_CDC_DMA_TX_1", NULL, "BE_IN"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022138 {"TX_CDC_DMA_TX_0", NULL, "BE_IN"},
22139 {"TX_CDC_DMA_TX_1", NULL, "BE_IN"},
22140 {"TX_CDC_DMA_TX_2", NULL, "BE_IN"},
22141 {"TX_CDC_DMA_TX_3", NULL, "BE_IN"},
22142 {"TX_CDC_DMA_TX_4", NULL, "BE_IN"},
22143 {"TX_CDC_DMA_TX_5", NULL, "BE_IN"},
Ralf Herzc8701f72018-06-20 11:37:35 +020022144 {"PRI_SPDIF_TX", NULL, "BE_IN"},
22145 {"SEC_SPDIF_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022146};
22147
22148static int msm_pcm_routing_hw_params(struct snd_pcm_substream *substream,
22149 struct snd_pcm_hw_params *params)
22150{
22151 struct snd_soc_pcm_runtime *rtd = substream->private_data;
22152 unsigned int be_id = rtd->dai_link->id;
22153
22154 if (be_id >= MSM_BACKEND_DAI_MAX) {
22155 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
22156 return -EINVAL;
22157 }
22158
22159 mutex_lock(&routing_lock);
22160 msm_bedais[be_id].sample_rate = params_rate(params);
22161 msm_bedais[be_id].channel = params_channels(params);
22162 msm_bedais[be_id].format = params_format(params);
22163 pr_debug("%s: BE Sample Rate (%d) format (%d) BE id %d\n",
22164 __func__, msm_bedais[be_id].sample_rate,
22165 msm_bedais[be_id].format, be_id);
22166 mutex_unlock(&routing_lock);
22167 return 0;
22168}
22169
22170static int msm_pcm_routing_close(struct snd_pcm_substream *substream)
22171{
22172 struct snd_soc_pcm_runtime *rtd = substream->private_data;
22173 unsigned int be_id = rtd->dai_link->id;
22174 int i, session_type, path_type, topology;
22175 struct msm_pcm_routing_bdai_data *bedai;
22176 struct msm_pcm_routing_fdai_data *fdai;
22177
22178 pr_debug("%s: substream->pcm->id:%s\n",
22179 __func__, substream->pcm->id);
22180
22181 if (be_id >= MSM_BACKEND_DAI_MAX) {
22182 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
22183 return -EINVAL;
22184 }
22185
22186 bedai = &msm_bedais[be_id];
22187 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK ?
22188 0 : 1);
22189 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
22190 path_type = ADM_PATH_PLAYBACK;
22191 else
22192 path_type = ADM_PATH_LIVE_REC;
22193
22194 mutex_lock(&routing_lock);
22195 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
22196 if (!is_mm_lsm_fe_id(i))
22197 continue;
22198 fdai = &fe_dai_map[i][session_type];
22199 if (fdai->strm_id != INVALID_SESSION) {
22200 int idx;
22201 int port_id;
22202 unsigned long copp =
22203 session_copp_map[i][session_type][be_id];
22204 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
22205 if (test_bit(idx, &copp))
22206 break;
22207 fdai->be_srate = bedai->sample_rate;
22208 port_id = bedai->port_id;
22209 topology = adm_get_topology_for_port_copp_idx(port_id,
22210 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070022211 msm_routing_unload_topology(topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022212 adm_close(bedai->port_id, fdai->perf_mode, idx);
22213 pr_debug("%s: copp:%ld,idx bit fe:%d, type:%d,be:%d topology=0x%x\n",
22214 __func__, copp, i, session_type, be_id,
22215 topology);
22216 clear_bit(idx,
22217 &session_copp_map[i][session_type][be_id]);
22218 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
22219 (bedai->passthr_mode[i] == LEGACY_PCM))
22220 msm_pcm_routing_deinit_pp(bedai->port_id,
22221 topology);
22222 }
22223 }
22224
22225 bedai->active = 0;
22226 bedai->sample_rate = 0;
22227 bedai->channel = 0;
22228 for (i = 0; i < MSM_FRONTEND_DAI_MAX; i++) {
22229 if (bedai->passthr_mode[i] != LISTEN)
22230 bedai->passthr_mode[i] = LEGACY_PCM;
22231 }
22232 mutex_unlock(&routing_lock);
22233
22234 return 0;
22235}
22236
22237static int msm_pcm_routing_prepare(struct snd_pcm_substream *substream)
22238{
22239 struct snd_soc_pcm_runtime *rtd = substream->private_data;
22240 unsigned int be_id = rtd->dai_link->id;
22241 int i, path_type, topology;
22242 int session_type = INVALID_SESSION;
22243 struct msm_pcm_routing_bdai_data *bedai;
22244 u32 channels, sample_rate;
22245 uint16_t bits_per_sample = 16, voc_path_type;
22246 struct msm_pcm_routing_fdai_data *fdai;
22247 u32 session_id;
22248 struct media_format_info voc_be_media_format;
22249 bool is_lsm;
22250
22251 pr_debug("%s: substream->pcm->id:%s\n",
22252 __func__, substream->pcm->id);
22253
22254 if (be_id >= MSM_BACKEND_DAI_MAX) {
22255 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
22256 return -EINVAL;
22257 }
22258
22259 bedai = &msm_bedais[be_id];
22260
22261 mutex_lock(&routing_lock);
22262 if (bedai->active == 1)
22263 goto done; /* Ignore prepare if back-end already active */
22264
22265 /* AFE port is not active at this point. However, still
22266 * go ahead setting active flag under the notion that
22267 * QDSP6 is able to handle ADM starting before AFE port
22268 * is started.
22269 */
22270 bedai->active = 1;
22271
22272 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
22273 if (!(is_mm_lsm_fe_id(i) &&
22274 route_check_fe_id_adm_support(i)))
22275 continue;
22276
22277 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
22278 if (bedai->passthr_mode[i] != LEGACY_PCM)
22279 path_type = ADM_PATH_COMPRESSED_RX;
22280 else
22281 path_type = ADM_PATH_PLAYBACK;
22282 session_type = SESSION_TYPE_RX;
22283 } else {
Ralf Herzc8701f72018-06-20 11:37:35 +020022284 if ((bedai->passthr_mode[i] != LEGACY_PCM) &&
22285 (bedai->passthr_mode[i] != LISTEN))
22286 path_type = ADM_PATH_COMPRESSED_TX;
22287 else
22288 path_type = ADM_PATH_LIVE_REC;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022289 session_type = SESSION_TYPE_TX;
22290 }
22291
22292 is_lsm = (i >= MSM_FRONTEND_DAI_LSM1) &&
22293 (i <= MSM_FRONTEND_DAI_LSM8);
22294 fdai = &fe_dai_map[i][session_type];
22295 if (fdai->strm_id != INVALID_SESSION) {
22296 int app_type, app_type_idx, copp_idx, acdb_dev_id;
22297
22298 if (session_type == SESSION_TYPE_TX &&
22299 fdai->be_srate &&
22300 (fdai->be_srate != bedai->sample_rate)) {
22301 pr_debug("%s: flush strm %d diff BE rates\n",
22302 __func__,
22303 fdai->strm_id);
22304
22305 if (fdai->event_info.event_func)
22306 fdai->event_info.event_func(
22307 MSM_PCM_RT_EVT_BUF_RECFG,
22308 fdai->event_info.priv_data);
22309 fdai->be_srate = 0; /* might not need it */
22310 }
22311 bits_per_sample = msm_routing_get_bit_width(
22312 bedai->format);
22313
22314 app_type =
22315 fe_dai_app_type_cfg[i][session_type][be_id].app_type;
22316 if (app_type && is_lsm) {
22317 app_type_idx =
22318 msm_pcm_routing_get_lsm_app_type_idx(app_type);
22319 sample_rate =
22320 fe_dai_app_type_cfg[i][session_type][be_id]
22321 .sample_rate;
22322 bits_per_sample =
22323 lsm_app_type_cfg[app_type_idx].bit_width;
22324 } else if (app_type) {
22325 app_type_idx =
22326 msm_pcm_routing_get_app_type_idx(app_type);
22327 sample_rate =
22328 fe_dai_app_type_cfg[i][session_type]
22329 [be_id].sample_rate;
22330 bits_per_sample =
22331 app_type_cfg[app_type_idx].bit_width;
22332 } else
22333 sample_rate = bedai->sample_rate;
22334 /*
22335 * check if ADM needs to be configured with different
22336 * channel mapping than backend
22337 */
22338 if (!bedai->adm_override_ch)
22339 channels = bedai->channel;
22340 else
22341 channels = bedai->adm_override_ch;
22342 acdb_dev_id =
22343 fe_dai_app_type_cfg[i][session_type][be_id].acdb_dev_id;
22344 topology = msm_routing_get_adm_topology(i, session_type,
22345 be_id);
Ralf Herzc8701f72018-06-20 11:37:35 +020022346
22347 if ((bedai->passthr_mode[i] ==
22348 COMPRESSED_PASSTHROUGH_DSD)
22349 || (bedai->passthr_mode[i] ==
22350 COMPRESSED_PASSTHROUGH_GEN)
22351 || (bedai->passthr_mode[i] ==
22352 COMPRESSED_PASSTHROUGH_IEC61937))
22353 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
22354
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022355 copp_idx = adm_open(bedai->port_id, path_type,
22356 sample_rate, channels, topology,
22357 fdai->perf_mode, bits_per_sample,
22358 app_type, acdb_dev_id);
22359 if ((copp_idx < 0) ||
22360 (copp_idx >= MAX_COPPS_PER_PORT)) {
22361 pr_err("%s: adm open failed\n", __func__);
22362 mutex_unlock(&routing_lock);
22363 return -EINVAL;
22364 }
22365 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
22366 __func__, i, session_type, be_id);
22367 set_bit(copp_idx,
22368 &session_copp_map[i][session_type][be_id]);
22369
22370 if (msm_is_resample_needed(
22371 sample_rate,
22372 bedai->sample_rate))
22373 adm_copp_mfc_cfg(
22374 bedai->port_id, copp_idx,
22375 bedai->sample_rate);
22376
22377 msm_pcm_routing_build_matrix(i, session_type, path_type,
22378 fdai->perf_mode,
22379 bedai->passthr_mode[i]);
22380 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
22381 (bedai->passthr_mode[i] == LEGACY_PCM))
22382 msm_pcm_routing_cfg_pp(bedai->port_id, copp_idx,
22383 topology, channels);
22384 }
22385 }
22386
22387 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
22388 session_id = msm_pcm_routing_get_voc_sessionid(i);
22389 if (session_id) {
22390 pr_debug("%s voice session_id: 0x%x\n", __func__,
22391 session_id);
22392
22393 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
22394 voc_path_type = RX_PATH;
22395 else
22396 voc_path_type = TX_PATH;
22397
22398 voc_set_route_flag(session_id, voc_path_type, 1);
22399
22400 memset(&voc_be_media_format, 0,
22401 sizeof(struct media_format_info));
22402
22403 voc_be_media_format.port_id = bedai->port_id;
22404 voc_be_media_format.num_channels = bedai->channel;
22405 voc_be_media_format.sample_rate = bedai->sample_rate;
22406 voc_be_media_format.bits_per_sample = bedai->format;
22407 /* Defaulting this to 1 for voice call usecases */
22408 voc_be_media_format.channel_mapping[0] = 1;
22409
22410 voc_set_device_config(session_id, voc_path_type,
22411 &voc_be_media_format);
22412
22413 if (voc_get_route_flag(session_id, RX_PATH) &&
22414 voc_get_route_flag(session_id, TX_PATH))
22415 voc_enable_device(session_id);
22416 }
22417 }
22418
22419 /* Check if backend is an external ec ref port and set as needed */
22420 if (unlikely(bedai->port_id == voc_get_ext_ec_ref_port_id())) {
22421
22422 memset(&voc_be_media_format, 0,
22423 sizeof(struct media_format_info));
22424
22425 /* Get format info for ec ref port from msm_bedais[] */
22426 voc_be_media_format.port_id = bedai->port_id;
22427 voc_be_media_format.num_channels = bedai->channel;
22428 voc_be_media_format.bits_per_sample = bedai->format;
22429 voc_be_media_format.sample_rate = bedai->sample_rate;
22430 /* Defaulting this to 1 for voice call usecases */
22431 voc_be_media_format.channel_mapping[0] = 1;
22432 voc_set_ext_ec_ref_media_fmt_info(&voc_be_media_format);
22433 pr_debug("%s: EC Ref media format info set to port_id=%d, num_channels=%d, bits_per_sample=%d, sample_rate=%d\n",
22434 __func__, voc_be_media_format.port_id,
22435 voc_be_media_format.num_channels,
22436 voc_be_media_format.bits_per_sample,
22437 voc_be_media_format.sample_rate);
22438 }
22439
22440done:
22441 mutex_unlock(&routing_lock);
22442
22443 return 0;
22444}
22445
22446static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
22447 int fe_id)
22448{
22449 int index, topo_id, be_idx;
22450 unsigned long pp_config = 0;
22451 bool mute_on;
22452 int latency;
22453 bool compr_passthr_mode = true;
22454
22455 pr_debug("%s: port_id %d, copp_idx %d\n", __func__, port_id, copp_idx);
22456
22457 if (port_id != HDMI_RX && port_id != DISPLAY_PORT_RX) {
22458 pr_err("%s: Device pp params on invalid port %d\n",
22459 __func__, port_id);
22460 return -EINVAL;
22461 }
22462
22463 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
22464 if (port_id == msm_bedais[be_idx].port_id)
22465 break;
22466 }
22467
22468 if (be_idx >= MSM_BACKEND_DAI_MAX) {
22469 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
22470 return -EINVAL;
22471 }
22472
22473 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
22474 if (msm_bedais_pp_params[index].port_id == port_id)
22475 break;
22476 }
22477 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
22478 pr_err("%s: Invalid backend pp params index %d\n",
22479 __func__, index);
22480 return -EINVAL;
22481 }
22482
22483 topo_id = adm_get_topology_for_port_copp_idx(port_id, copp_idx);
22484 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY) {
22485 pr_err("%s: Invalid passthrough topology 0x%x\n",
22486 __func__, topo_id);
22487 return -EINVAL;
22488 }
22489
22490 if ((msm_bedais[be_idx].passthr_mode[fe_id] == LEGACY_PCM) ||
22491 (msm_bedais[be_idx].passthr_mode[fe_id] == LISTEN))
22492 compr_passthr_mode = false;
22493
22494 pp_config = msm_bedais_pp_params[index].pp_params_config;
22495 if (test_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config)) {
22496 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
22497 clear_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config);
22498 mute_on = msm_bedais_pp_params[index].mute_on;
22499 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
22500 adm_send_compressed_device_mute(port_id,
22501 copp_idx,
22502 mute_on);
22503 }
22504 if (test_bit(ADM_PP_PARAM_LATENCY_BIT, &pp_config)) {
22505 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
22506 clear_bit(ADM_PP_PARAM_LATENCY_BIT,
22507 &pp_config);
22508 latency = msm_bedais_pp_params[index].latency;
22509 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
22510 adm_send_compressed_device_latency(port_id,
22511 copp_idx,
22512 latency);
22513 }
22514 return 0;
22515}
22516
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070022517static uint32_t msm_routing_get_topology(size_t data_size, void *data)
22518{
22519 uint32_t topology = NULL_COPP_TOPOLOGY;
22520 void *cal_info = NULL;
22521 uint32_t size = 0;
22522
22523 /* Retrieve cal_info size from cal data*/
22524 size = data_size - sizeof(struct audio_cal_type_basic);
22525 cal_info = kzalloc(size, GFP_KERNEL);
22526
22527 if (!cal_info)
22528 goto done;
22529
22530 memcpy(cal_info,
22531 ((uint8_t *)data + sizeof(struct audio_cal_type_basic)), size);
22532
22533 topology = ((struct audio_cal_info_adm_top *)cal_info)->topology;
22534 kfree(cal_info);
22535 cal_info = NULL;
22536
22537done:
22538 pr_debug("%s: Using topology %d\n", __func__, topology);
22539
22540 return topology;
22541}
22542
22543static void msm_routing_load_topology(size_t data_size, void *data)
22544{
22545 uint32_t topology_id;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053022546 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070022547
22548 topology_id = msm_routing_get_topology(data_size, data);
22549 if (topology_id != NULL_COPP_TOPOLOGY)
22550 ret = q6core_load_unload_topo_modules(topology_id,
22551 CORE_LOAD_TOPOLOGY);
22552 if (ret < 0)
22553 pr_debug("%s %d load topology failed\n",
22554 __func__, topology_id);
22555
22556}
22557
22558static void msm_routing_unload_topology(uint32_t topology_id)
22559{
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053022560 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070022561
22562 if (topology_id != NULL_COPP_TOPOLOGY)
22563 ret = q6core_load_unload_topo_modules(topology_id,
22564 CORE_UNLOAD_TOPOLOGY);
22565 if (ret < 0)
22566 pr_debug("%s %d unload topology failed\n",
22567 __func__, topology_id);
22568
22569}
22570
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022571static int msm_routing_put_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
22572 struct snd_ctl_elem_value *ucontrol)
22573{
22574 int pp_id = ucontrol->value.integer.value[0];
22575 int port_id = 0;
22576 int index, be_idx, i, topo_id, idx;
22577 bool mute;
22578 int latency;
22579 bool compr_passthr_mode = true;
22580
22581 pr_debug("%s: pp_id: 0x%x\n", __func__, pp_id);
22582
22583 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
22584 port_id = msm_bedais[be_idx].port_id;
22585 if (port_id == HDMI_RX || port_id == DISPLAY_PORT_RX)
22586 break;
22587 }
22588
22589 if (be_idx >= MSM_BACKEND_DAI_MAX) {
22590 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
22591 return -EINVAL;
22592 }
22593
22594 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
22595 if (msm_bedais_pp_params[index].port_id == port_id)
22596 break;
22597 }
22598 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
22599 pr_err("%s: Invalid pp params backend index %d\n",
22600 __func__, index);
22601 return -EINVAL;
22602 }
22603
22604 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
22605 MSM_FRONTEND_DAI_MM_SIZE) {
22606 if ((msm_bedais[be_idx].passthr_mode[i] == LEGACY_PCM) ||
22607 (msm_bedais[be_idx].passthr_mode[i] == LISTEN))
22608 compr_passthr_mode = false;
22609
22610 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
22611 unsigned long copp =
22612 session_copp_map[i]
22613 [SESSION_TYPE_RX][be_idx];
22614 if (!test_bit(idx, &copp))
22615 continue;
22616 topo_id = adm_get_topology_for_port_copp_idx(port_id,
22617 idx);
22618 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY)
22619 continue;
22620 pr_debug("%s: port: 0x%x, copp %ld, be active: %d, passt: %d\n",
22621 __func__, port_id, copp, msm_bedais[be_idx].active,
22622 msm_bedais[be_idx].passthr_mode[i]);
22623 switch (pp_id) {
22624 case ADM_PP_PARAM_MUTE_ID:
22625 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
22626 mute = ucontrol->value.integer.value[1] ? true : false;
22627 msm_bedais_pp_params[index].mute_on = mute;
22628 set_bit(ADM_PP_PARAM_MUTE_BIT,
22629 &msm_bedais_pp_params[index].pp_params_config);
22630 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
22631 adm_send_compressed_device_mute(port_id,
22632 idx, mute);
22633 break;
22634 case ADM_PP_PARAM_LATENCY_ID:
22635 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
22636 msm_bedais_pp_params[index].latency =
22637 ucontrol->value.integer.value[1];
22638 set_bit(ADM_PP_PARAM_LATENCY_BIT,
22639 &msm_bedais_pp_params[index].pp_params_config);
22640 latency = msm_bedais_pp_params[index].latency =
22641 ucontrol->value.integer.value[1];
22642 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
22643 adm_send_compressed_device_latency(port_id,
22644 idx, latency);
22645 break;
22646 default:
22647 pr_info("%s, device pp param %d not supported\n",
22648 __func__, pp_id);
22649 break;
22650 }
22651 }
22652 }
22653 return 0;
22654}
22655
22656static int msm_routing_get_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
22657 struct snd_ctl_elem_value *ucontrol)
22658{
22659 pr_debug("%s:msm_routing_get_device_pp_params_mixer", __func__);
22660 return 0;
22661}
22662
22663static const struct snd_kcontrol_new device_pp_params_mixer_controls[] = {
22664 SOC_SINGLE_MULTI_EXT("Device PP Params", SND_SOC_NOPM, 0, 0xFFFFFFFF,
22665 0, 3, msm_routing_get_device_pp_params_mixer,
22666 msm_routing_put_device_pp_params_mixer),
22667};
22668
22669static int msm_aptx_dec_license_control_get(struct snd_kcontrol *kcontrol,
22670 struct snd_ctl_elem_value *ucontrol)
22671{
22672 ucontrol->value.integer.value[0] =
22673 core_get_license_status(ASM_MEDIA_FMT_APTX);
22674 pr_debug("%s: status %ld\n", __func__,
22675 ucontrol->value.integer.value[0]);
22676 return 0;
22677}
22678
22679static int msm_aptx_dec_license_control_put(struct snd_kcontrol *kcontrol,
22680 struct snd_ctl_elem_value *ucontrol)
22681{
22682 int32_t status = 0;
22683
22684 status = core_set_license(ucontrol->value.integer.value[0],
22685 APTX_CLASSIC_DEC_LICENSE_ID);
22686 pr_debug("%s: status %d\n", __func__, status);
22687 return status;
22688}
22689
22690static const struct snd_kcontrol_new aptx_dec_license_controls[] = {
22691 SOC_SINGLE_EXT("APTX Dec License", SND_SOC_NOPM, 0,
22692 0xFFFF, 0, msm_aptx_dec_license_control_get,
22693 msm_aptx_dec_license_control_put),
22694};
22695
22696static int msm_routing_be_dai_name_table_info(struct snd_kcontrol *kcontrol,
22697 struct snd_ctl_elem_info *uinfo)
22698{
22699 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
22700 uinfo->count = sizeof(be_dai_name_table);
22701 return 0;
22702}
22703
22704static int msm_routing_be_dai_name_table_tlv_get(struct snd_kcontrol *kcontrol,
22705 unsigned int __user *bytes,
22706 unsigned int size)
22707{
22708 int i;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053022709 int ret = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022710
22711 if (size < sizeof(be_dai_name_table)) {
22712 pr_err("%s: invalid size %d requested, returning\n",
22713 __func__, size);
22714 ret = -EINVAL;
22715 goto done;
22716 }
22717
22718 /*
22719 * Fill be_dai_name_table from msm_bedais table to reduce code changes
22720 * needed when adding new backends
22721 */
22722 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
22723 be_dai_name_table[i].be_id = i;
22724 strlcpy(be_dai_name_table[i].be_name,
22725 msm_bedais[i].name,
22726 LPASS_BE_NAME_MAX_LENGTH);
22727 }
22728
22729 ret = copy_to_user(bytes, &be_dai_name_table,
22730 sizeof(be_dai_name_table));
22731 if (ret) {
22732 pr_err("%s: failed to copy be_dai_name_table\n", __func__);
22733 ret = -EFAULT;
22734 }
22735
22736done:
22737 return ret;
22738}
22739
22740static const struct snd_kcontrol_new
22741 msm_routing_be_dai_name_table_mixer_controls[] = {
22742 {
22743 .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |
22744 SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK,
22745 .info = msm_routing_be_dai_name_table_info,
22746 .name = "Backend DAI Name Table",
22747 .tlv.c = snd_soc_bytes_tlv_callback,
22748 .private_value = (unsigned long) &(struct soc_bytes_ext) {
22749 .max = sizeof(be_dai_name_table),
22750 .get = msm_routing_be_dai_name_table_tlv_get,
22751 }
22752 },
22753};
22754
22755static int msm_routing_stereo_channel_reverse_control_get(
22756 struct snd_kcontrol *kcontrol,
22757 struct snd_ctl_elem_value *ucontrol)
22758{
22759 ucontrol->value.integer.value[0] = swap_ch;
22760 pr_debug("%s: Swap channel value: %ld\n", __func__,
22761 ucontrol->value.integer.value[0]);
22762 return 0;
22763}
22764
22765static int msm_routing_stereo_channel_reverse_control_put(
22766 struct snd_kcontrol *kcontrol,
22767 struct snd_ctl_elem_value *ucontrol)
22768{
22769 int i, idx, be_index, port_id;
22770 int ret = 0;
22771 unsigned long copp;
22772
22773 pr_debug("%s Swap channel value:%ld\n", __func__,
22774 ucontrol->value.integer.value[0]);
22775
22776 swap_ch = ucontrol->value.integer.value[0];
22777
22778 mutex_lock(&routing_lock);
22779 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
22780 port_id = msm_bedais[be_index].port_id;
22781 if (!msm_bedais[be_index].active)
22782 continue;
22783
22784 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
22785 MSM_FRONTEND_DAI_MM_SIZE) {
22786 copp = session_copp_map[i][SESSION_TYPE_RX][be_index];
22787 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
22788 if (!test_bit(idx, &copp))
22789 continue;
22790
22791 pr_debug("%s: swap channel control of portid:%d, coppid:%d\n",
22792 __func__, port_id, idx);
22793 ret = adm_swap_speaker_channels(
22794 port_id, idx,
22795 msm_bedais[be_index].sample_rate,
22796 swap_ch);
22797 if (ret) {
22798 pr_err("%s:Swap_channel failed, err=%d\n",
22799 __func__, ret);
22800 goto done;
22801 }
22802 }
22803 }
22804 }
22805done:
22806 mutex_unlock(&routing_lock);
22807 return ret;
22808}
22809
22810static const struct snd_kcontrol_new stereo_channel_reverse_control[] = {
22811 SOC_SINGLE_EXT("Swap channel", SND_SOC_NOPM, 0,
22812 1, 0, msm_routing_stereo_channel_reverse_control_get,
22813 msm_routing_stereo_channel_reverse_control_put),
22814};
22815
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080022816static int msm_routing_instance_id_support_info(struct snd_kcontrol *kcontrol,
22817 struct snd_ctl_elem_info *uinfo)
22818{
22819 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
22820 uinfo->count = 1;
22821 return 0;
22822}
22823
22824static int msm_routing_instance_id_support_put(
22825 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
22826{
22827 bool supported = ucontrol->value.integer.value[0] ? true : false;
22828
22829 q6common_update_instance_id_support(supported);
22830 return 0;
22831}
22832
22833static int msm_routing_instance_id_support_get(
22834 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
22835{
22836 bool supported = false;
22837
22838 supported = q6common_is_instance_id_supported();
22839 ucontrol->value.integer.value[0] = supported ? 1 : 0;
22840
22841 return 0;
22842}
22843
22844static const struct snd_kcontrol_new
22845 msm_routing_feature_support_mixer_controls[] = {
22846 {
22847 .access = SNDRV_CTL_ELEM_ACCESS_READ |
22848 SNDRV_CTL_ELEM_ACCESS_WRITE,
22849 .info = msm_routing_instance_id_support_info,
22850 .name = "Instance ID Support",
22851 .put = msm_routing_instance_id_support_put,
22852 .get = msm_routing_instance_id_support_get,
22853 },
22854};
22855
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022856static const struct snd_pcm_ops msm_routing_pcm_ops = {
22857 .hw_params = msm_pcm_routing_hw_params,
22858 .close = msm_pcm_routing_close,
22859 .prepare = msm_pcm_routing_prepare,
22860};
22861
22862/* Not used but frame seems to require it */
22863static int msm_routing_probe(struct snd_soc_platform *platform)
22864{
22865 snd_soc_dapm_new_controls(&platform->component.dapm, msm_qdsp6_widgets,
22866 ARRAY_SIZE(msm_qdsp6_widgets));
22867 snd_soc_dapm_add_routes(&platform->component.dapm, intercon,
22868 ARRAY_SIZE(intercon));
22869
22870 snd_soc_dapm_new_widgets(platform->component.dapm.card);
22871
22872 snd_soc_add_platform_controls(platform, lsm_controls,
22873 ARRAY_SIZE(lsm_controls));
22874
22875 snd_soc_add_platform_controls(platform, aanc_slim_0_rx_mux,
22876 ARRAY_SIZE(aanc_slim_0_rx_mux));
22877
Sudheer Papothic07b37a2018-05-04 05:56:47 +053022878 snd_soc_add_platform_controls(platform, aanc_noise_level,
22879 ARRAY_SIZE(aanc_noise_level));
22880
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022881 snd_soc_add_platform_controls(platform, msm_voc_session_controls,
22882 ARRAY_SIZE(msm_voc_session_controls));
22883
22884 snd_soc_add_platform_controls(platform, app_type_cfg_controls,
22885 ARRAY_SIZE(app_type_cfg_controls));
22886
22887 snd_soc_add_platform_controls(platform, lsm_app_type_cfg_controls,
22888 ARRAY_SIZE(lsm_app_type_cfg_controls));
22889
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070022890 snd_soc_add_platform_controls(platform, module_cfg_controls,
22891 ARRAY_SIZE(module_cfg_controls));
22892
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022893 snd_soc_add_platform_controls(platform,
22894 stereo_to_custom_stereo_controls,
22895 ARRAY_SIZE(stereo_to_custom_stereo_controls));
22896
22897 snd_soc_add_platform_controls(platform, ec_ref_param_controls,
22898 ARRAY_SIZE(ec_ref_param_controls));
22899
22900 snd_soc_add_platform_controls(platform, channel_mixer_controls,
22901 ARRAY_SIZE(channel_mixer_controls));
22902
22903 msm_qti_pp_add_controls(platform);
22904
22905 msm_dts_srs_tm_add_controls(platform);
22906
22907 msm_dolby_dap_add_controls(platform);
22908
22909 snd_soc_add_platform_controls(platform,
22910 use_ds1_or_ds2_controls,
22911 ARRAY_SIZE(use_ds1_or_ds2_controls));
22912
22913 snd_soc_add_platform_controls(platform,
22914 device_pp_params_mixer_controls,
22915 ARRAY_SIZE(device_pp_params_mixer_controls));
22916
22917 snd_soc_add_platform_controls(platform,
22918 msm_routing_be_dai_name_table_mixer_controls,
22919 ARRAY_SIZE(msm_routing_be_dai_name_table_mixer_controls));
22920
22921 snd_soc_add_platform_controls(platform, msm_source_tracking_controls,
22922 ARRAY_SIZE(msm_source_tracking_controls));
22923 snd_soc_add_platform_controls(platform, adm_channel_config_controls,
22924 ARRAY_SIZE(adm_channel_config_controls));
22925
22926 snd_soc_add_platform_controls(platform, aptx_dec_license_controls,
22927 ARRAY_SIZE(aptx_dec_license_controls));
22928 snd_soc_add_platform_controls(platform, stereo_channel_reverse_control,
22929 ARRAY_SIZE(stereo_channel_reverse_control));
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080022930 snd_soc_add_platform_controls(
22931 platform, msm_routing_feature_support_mixer_controls,
22932 ARRAY_SIZE(msm_routing_feature_support_mixer_controls));
22933
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022934 return 0;
22935}
22936
22937int msm_routing_pcm_new(struct snd_soc_pcm_runtime *runtime)
22938{
22939 return msm_pcm_routing_hwdep_new(runtime, msm_bedais);
22940}
22941
22942void msm_routing_pcm_free(struct snd_pcm *pcm)
22943{
22944 msm_pcm_routing_hwdep_free(pcm);
22945}
22946
22947static struct snd_soc_platform_driver msm_soc_routing_platform = {
22948 .ops = &msm_routing_pcm_ops,
22949 .probe = msm_routing_probe,
22950 .pcm_new = msm_routing_pcm_new,
22951 .pcm_free = msm_routing_pcm_free,
22952};
22953
22954static int msm_routing_pcm_probe(struct platform_device *pdev)
22955{
22956
22957 dev_dbg(&pdev->dev, "dev name %s\n", dev_name(&pdev->dev));
22958 return snd_soc_register_platform(&pdev->dev,
22959 &msm_soc_routing_platform);
22960}
22961
22962static int msm_routing_pcm_remove(struct platform_device *pdev)
22963{
22964 snd_soc_unregister_platform(&pdev->dev);
22965 return 0;
22966}
22967
22968static const struct of_device_id msm_pcm_routing_dt_match[] = {
22969 {.compatible = "qcom,msm-pcm-routing"},
22970 {}
22971};
22972MODULE_DEVICE_TABLE(of, msm_pcm_routing_dt_match);
22973
22974static struct platform_driver msm_routing_pcm_driver = {
22975 .driver = {
22976 .name = "msm-pcm-routing",
22977 .owner = THIS_MODULE,
22978 .of_match_table = msm_pcm_routing_dt_match,
22979 },
22980 .probe = msm_routing_pcm_probe,
22981 .remove = msm_routing_pcm_remove,
22982};
22983
22984int msm_routing_check_backend_enabled(int fedai_id)
22985{
22986 int i;
22987
22988 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
22989 /* bad ID assigned in machine driver */
22990 pr_err("%s: bad MM ID\n", __func__);
22991 return 0;
22992 }
22993 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
22994 if (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))
22995 return msm_bedais[i].active;
22996 }
22997 return 0;
22998}
22999
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023000static int get_cal_type_index(int32_t cal_type)
23001{
23002 int ret = -EINVAL;
23003
23004 switch (cal_type) {
23005 case ADM_TOPOLOGY_CAL_TYPE:
23006 ret = ADM_TOPOLOGY_CAL_TYPE_IDX;
23007 break;
23008 case ADM_LSM_TOPOLOGY_CAL_TYPE:
23009 ret = ADM_LSM_TOPOLOGY_CAL_TYPE_IDX;
23010 break;
23011 default:
23012 pr_err("%s: Invalid cal type %d\n", __func__, cal_type);
23013 }
23014 return ret;
23015}
23016
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023017static int msm_routing_set_cal(int32_t cal_type,
23018 size_t data_size, void *data)
23019{
23020 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023021 int cal_index;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023022 pr_debug("%s\n", __func__);
23023
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023024 cal_index = get_cal_type_index(cal_type);
23025 if (cal_index < 0) {
23026 pr_err("%s: Could not get cal index %d\n",
23027 __func__, cal_index);
23028 ret = -EINVAL;
23029 goto done;
23030 }
23031
23032 ret = cal_utils_set_cal(data_size, data, cal_data[cal_index], 0, NULL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023033 if (ret < 0) {
23034 pr_err("%s: cal_utils_set_cal failed, ret = %d, cal type = %d!\n",
23035 __func__, ret, cal_type);
23036 ret = -EINVAL;
23037 goto done;
23038 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023039 /* Pre-load if it is ADM topology */
23040 if ((cal_index == ADM_TOPOLOGY_CAL_TYPE_IDX) ||
23041 (cal_index == ADM_LSM_TOPOLOGY_CAL_TYPE_IDX)) {
23042 msm_routing_load_topology(data_size, data);
23043 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023044done:
23045 return ret;
23046}
23047
23048static void msm_routing_delete_cal_data(void)
23049{
23050 pr_debug("%s\n", __func__);
23051
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023052 cal_utils_destroy_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023053}
23054
23055static int msm_routing_init_cal_data(void)
23056{
23057 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023058 struct cal_type_info cal_type_info[] = {
23059 {{ADM_TOPOLOGY_CAL_TYPE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023060 {NULL, NULL, NULL,
23061 msm_routing_set_cal, NULL, NULL} },
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023062 {NULL, NULL, cal_utils_match_buf_num} },
23063
23064 {{ADM_LSM_TOPOLOGY_CAL_TYPE,
23065 {NULL, NULL, NULL,
23066 msm_routing_set_cal, NULL, NULL} },
23067 {NULL, NULL, cal_utils_match_buf_num} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023068 };
23069 pr_debug("%s\n", __func__);
23070
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023071 ret = cal_utils_create_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0],
23072 &cal_type_info[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023073 if (ret < 0) {
23074 pr_err("%s: could not create cal type!\n",
23075 __func__);
23076 ret = -EINVAL;
23077 goto err;
23078 }
23079
23080 return ret;
23081err:
23082 msm_routing_delete_cal_data();
23083 return ret;
23084}
23085
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053023086int __init msm_soc_routing_platform_init(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023087{
23088 mutex_init(&routing_lock);
23089 if (msm_routing_init_cal_data())
23090 pr_err("%s: could not init cal data!\n", __func__);
23091
23092 afe_set_routing_callback(
23093 (routing_cb)msm_pcm_get_dev_acdb_id_by_port_id);
23094
23095 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
23096 memset(&last_be_id_configured, 0, sizeof(last_be_id_configured));
23097
23098 return platform_driver_register(&msm_routing_pcm_driver);
23099}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023100
Asish Bhattacharya5faacb32017-12-04 17:23:15 +053023101void msm_soc_routing_platform_exit(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023102{
23103 msm_routing_delete_cal_data();
23104 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
23105 mutex_destroy(&routing_lock);
23106 platform_driver_unregister(&msm_routing_pcm_driver);
23107}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023108
23109MODULE_DESCRIPTION("MSM routing platform driver");
23110MODULE_LICENSE("GPL v2");