blob: 4b2f185280cc6ee33947872820a2bc6f90055458 [file] [log] [blame]
Meng Wang43bbb872018-12-10 12:32:05 +08001// SPDX-License-Identifier: GPL-2.0-only
Vignesh Kulothungan5c109922018-01-24 17:36:18 -08002/* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303 */
4
5#include <linux/init.h>
6#include <linux/err.h>
7#include <linux/module.h>
8#include <linux/moduleparam.h>
9#include <linux/platform_device.h>
10#include <linux/bitops.h>
11#include <linux/mutex.h>
12#include <linux/of_device.h>
13#include <linux/slab.h>
14#include <sound/core.h>
15#include <sound/soc.h>
16#include <sound/soc-dapm.h>
17#include <sound/pcm.h>
18#include <sound/initval.h>
19#include <sound/control.h>
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020#include <sound/tlv.h>
21#include <sound/asound.h>
22#include <sound/pcm_params.h>
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023#include <sound/hwdep.h>
Laxminath Kasam605b42f2017-08-01 22:02:15 +053024#include <sound/audio_effects.h>
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053025#include <dsp/msm-dts-srs-tm-config.h>
Laxminath Kasam605b42f2017-08-01 22:02:15 +053026#include <dsp/q6voice.h>
27#include <dsp/q6adm-v2.h>
28#include <dsp/q6asm-v2.h>
29#include <dsp/q6afe-v2.h>
30#include <dsp/q6lsm.h>
31#include <dsp/q6core.h>
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080032#include <dsp/q6common.h>
Laxminath Kasam605b42f2017-08-01 22:02:15 +053033#include <dsp/audio_cal_utils.h>
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053034
35#include "msm-pcm-routing-v2.h"
36#include "msm-pcm-routing-devdep.h"
37#include "msm-qti-pp-config.h"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053038#include "msm-dolby-dap-config.h"
39#include "msm-ds2-dap-config.h"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053040
Meng Wangee084a02018-09-04 16:11:58 +080041#define DRV_NAME "msm-pcm-routing-v2"
42
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053043#ifndef CONFIG_DOLBY_DAP
44#undef DOLBY_ADM_COPP_TOPOLOGY_ID
45#define DOLBY_ADM_COPP_TOPOLOGY_ID 0xFFFFFFFE
46#endif
47
48#ifndef CONFIG_DOLBY_DS2
49#undef DS2_ADM_COPP_TOPOLOGY_ID
50#define DS2_ADM_COPP_TOPOLOGY_ID 0xFFFFFFFF
51#endif
52
53static struct mutex routing_lock;
54
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053055static struct cal_type_data *cal_data[MAX_ROUTING_CAL_TYPES];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053056
57static int fm_switch_enable;
58static int hfp_switch_enable;
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080059static int a2dp_switch_enable;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053060static int int0_mi2s_switch_enable;
61static int int4_mi2s_switch_enable;
62static int pri_mi2s_switch_enable;
63static int sec_mi2s_switch_enable;
64static int tert_mi2s_switch_enable;
65static int quat_mi2s_switch_enable;
Rohit Kumara5077932017-09-10 22:05:05 +053066static int quin_mi2s_switch_enable;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053067static int fm_pcmrx_switch_enable;
68static int usb_switch_enable;
69static int lsm_port_index;
70static int slim0_rx_aanc_fb_port;
71static int msm_route_ec_ref_rx;
72static int msm_ec_ref_ch = 4;
73static int msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
74static int msm_ec_ref_sampling_rate = 48000;
75static uint32_t voc_session_id = ALL_SESSION_VSID;
76static int msm_route_ext_ec_ref;
77static bool is_custom_stereo_on;
78static bool is_ds2_on;
79static bool swap_ch;
Sudheer Papothic07b37a2018-05-04 05:56:47 +053080static int aanc_level;
Meng Wangadbca4f2018-10-29 14:30:13 +080081static int num_app_cfg_types;
Surendar Karkae7507512018-07-20 15:46:54 +053082static int msm_ec_ref_port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053083
84#define WEIGHT_0_DB 0x4000
85/* all the FEs which can support channel mixer */
86static struct msm_pcm_channel_mixer channel_mixer[MSM_FRONTEND_DAI_MM_SIZE];
87/* input BE for each FE */
88static int channel_input[MSM_FRONTEND_DAI_MM_SIZE][ADM_MAX_CHANNELS];
89
90enum {
91 MADNONE,
92 MADAUDIO,
93 MADBEACON,
94 MADULTRASOUND,
95 MADSWAUDIO,
96};
97
98#define ADM_LSM_PORT_INDEX 9
99
100#define SLIMBUS_0_TX_TEXT "SLIMBUS_0_TX"
101#define SLIMBUS_1_TX_TEXT "SLIMBUS_1_TX"
102#define SLIMBUS_2_TX_TEXT "SLIMBUS_2_TX"
103#define SLIMBUS_3_TX_TEXT "SLIMBUS_3_TX"
104#define SLIMBUS_4_TX_TEXT "SLIMBUS_4_TX"
105#define SLIMBUS_5_TX_TEXT "SLIMBUS_5_TX"
106#define TERT_MI2S_TX_TEXT "TERT_MI2S_TX"
107#define QUAT_MI2S_TX_TEXT "QUAT_MI2S_TX"
108#define ADM_LSM_TX_TEXT "ADM_LSM_TX"
109#define INT3_MI2S_TX_TEXT "INT3_MI2S_TX"
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +0530110#define VA_CDC_DMA_TX_0_TEXT "VA_CDC_DMA_TX_0"
111#define VA_CDC_DMA_TX_1_TEXT "VA_CDC_DMA_TX_1"
Aditya Bavanarie9454c62018-08-23 23:45:20 +0530112#define TX_CDC_DMA_TX_3_TEXT "TX_CDC_DMA_TX_3"
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +0530113#define QUIN_TDM_TX_TEXT "QUIN_TDM_TX_0"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530114
115#define LSM_FUNCTION_TEXT "LSM Function"
116static const char * const lsm_port_text[] = {
117 "None",
118 SLIMBUS_0_TX_TEXT, SLIMBUS_1_TX_TEXT, SLIMBUS_2_TX_TEXT,
119 SLIMBUS_3_TX_TEXT, SLIMBUS_4_TX_TEXT, SLIMBUS_5_TX_TEXT,
120 TERT_MI2S_TX_TEXT, QUAT_MI2S_TX_TEXT, ADM_LSM_TX_TEXT,
Aditya Bavanarie9454c62018-08-23 23:45:20 +0530121 INT3_MI2S_TX_TEXT, VA_CDC_DMA_TX_0_TEXT, VA_CDC_DMA_TX_1_TEXT,
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +0530122 TX_CDC_DMA_TX_3_TEXT, QUIN_TDM_TX_TEXT
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530123};
124
125struct msm_pcm_route_bdai_pp_params {
126 u16 port_id; /* AFE port ID */
127 unsigned long pp_params_config;
128 bool mute_on;
129 int latency;
130};
131
132static struct msm_pcm_route_bdai_pp_params
133 msm_bedais_pp_params[MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX] = {
134 {HDMI_RX, 0, 0, 0},
135 {DISPLAY_PORT_RX, 0, 0, 0},
136};
137
138/*
139 * The be_dai_name_table is passed to HAL so that it can specify the
140 * BE ID for the BE it wants to enable based on the name. Thus there
141 * is a matching table and structure in HAL that need to be updated
142 * if any changes to these are made.
143 */
144struct msm_pcm_route_bdai_name {
145 unsigned int be_id;
146 char be_name[LPASS_BE_NAME_MAX_LENGTH];
147};
148static struct msm_pcm_route_bdai_name be_dai_name_table[MSM_BACKEND_DAI_MAX];
149
150static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
151 int fe_id);
152
Vikram Panduranga6e55ad82018-03-14 13:56:18 -0700153static void msm_routing_load_topology(size_t data_size, void *data);
154static void msm_routing_unload_topology(uint32_t topology_id);
155
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530156static int msm_routing_get_bit_width(unsigned int format)
157{
158 int bit_width;
159
160 switch (format) {
161 case SNDRV_PCM_FORMAT_S32_LE:
162 bit_width = 32;
163 break;
164 case SNDRV_PCM_FORMAT_S24_LE:
165 case SNDRV_PCM_FORMAT_S24_3LE:
166 bit_width = 24;
167 break;
168 case SNDRV_PCM_FORMAT_S16_LE:
169 default:
170 bit_width = 16;
171 }
172 return bit_width;
173}
174
175static bool msm_is_resample_needed(int input_sr, int output_sr)
176{
177 bool rc = false;
178
179 if (input_sr != output_sr)
180 rc = true;
181
182 pr_debug("perform resampling (%s) for copp rate (%d)afe rate (%d)",
183 (rc ? "oh yes" : "not really"),
184 input_sr, output_sr);
185
186 return rc;
187}
188
189static void msm_pcm_routing_cfg_pp(int port_id, int copp_idx, int topology,
190 int channels)
191{
192 int rc = 0;
193
194 switch (topology) {
195 case SRS_TRUMEDIA_TOPOLOGY_ID:
196 pr_debug("%s: SRS_TRUMEDIA_TOPOLOGY_ID\n", __func__);
197 msm_dts_srs_tm_init(port_id, copp_idx);
198 break;
199 case DS2_ADM_COPP_TOPOLOGY_ID:
200 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY %d\n",
201 __func__, DS2_ADM_COPP_TOPOLOGY_ID);
202 rc = msm_ds2_dap_init(port_id, copp_idx, channels,
203 is_custom_stereo_on);
204 if (rc < 0)
205 pr_err("%s: DS2 topo_id 0x%x, port %d, CS %d rc %d\n",
206 __func__, topology, port_id,
207 is_custom_stereo_on, rc);
208 break;
209 case DOLBY_ADM_COPP_TOPOLOGY_ID:
210 if (is_ds2_on) {
211 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY\n", __func__);
212 rc = msm_ds2_dap_init(port_id, copp_idx, channels,
213 is_custom_stereo_on);
214 if (rc < 0)
215 pr_err("%s:DS2 topo_id 0x%x, port %d, rc %d\n",
216 __func__, topology, port_id, rc);
217 } else {
218 pr_debug("%s: DOLBY_ADM_COPP_TOPOLOGY_ID\n", __func__);
219 rc = msm_dolby_dap_init(port_id, copp_idx, channels,
220 is_custom_stereo_on);
221 if (rc < 0)
222 pr_err("%s: DS1 topo_id 0x%x, port %d, rc %d\n",
223 __func__, topology, port_id, rc);
224 }
225 break;
226 case ADM_CMD_COPP_OPEN_TOPOLOGY_ID_AUDIOSPHERE:
227 pr_debug("%s: TOPOLOGY_ID_AUDIOSPHERE\n", __func__);
228 rc = msm_qti_pp_asphere_init(port_id, copp_idx);
229 if (rc < 0)
230 pr_err("%s: topo_id 0x%x, port %d, copp %d, rc %d\n",
231 __func__, topology, port_id, copp_idx, rc);
232 break;
233 default:
234 /* custom topology specific feature param handlers */
235 break;
236 }
237}
238
239static void msm_pcm_routing_deinit_pp(int port_id, int topology)
240{
241 switch (topology) {
242 case SRS_TRUMEDIA_TOPOLOGY_ID:
243 pr_debug("%s: SRS_TRUMEDIA_TOPOLOGY_ID\n", __func__);
244 msm_dts_srs_tm_deinit(port_id);
245 break;
246 case DS2_ADM_COPP_TOPOLOGY_ID:
247 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY_ID %d\n",
248 __func__, DS2_ADM_COPP_TOPOLOGY_ID);
249 msm_ds2_dap_deinit(port_id);
250 break;
251 case DOLBY_ADM_COPP_TOPOLOGY_ID:
252 if (is_ds2_on) {
253 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY_ID\n", __func__);
254 msm_ds2_dap_deinit(port_id);
255 } else {
256 pr_debug("%s: DOLBY_ADM_COPP_TOPOLOGY_ID\n", __func__);
257 msm_dolby_dap_deinit(port_id);
258 }
259 break;
260 case ADM_CMD_COPP_OPEN_TOPOLOGY_ID_AUDIOSPHERE:
261 pr_debug("%s: TOPOLOGY_ID_AUDIOSPHERE\n", __func__);
262 msm_qti_pp_asphere_deinit(port_id);
263 break;
264 default:
265 /* custom topology specific feature deinit handlers */
266 break;
267 }
268}
269
270static void msm_pcm_routng_cfg_matrix_map_pp(struct route_payload payload,
271 int path_type, int perf_mode)
272{
273 int itr = 0, rc = 0;
274
275 if ((path_type == ADM_PATH_PLAYBACK) &&
276 (perf_mode == LEGACY_PCM_MODE) &&
277 is_custom_stereo_on) {
278 for (itr = 0; itr < payload.num_copps; itr++) {
279 if ((payload.port_id[itr] != SLIMBUS_0_RX) &&
280 (payload.port_id[itr] != RT_PROXY_PORT_001_RX)) {
281 continue;
282 }
283
284 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd(
285 payload.port_id[itr],
286 payload.copp_idx[itr],
287 payload.session_id,
288 Q14_GAIN_ZERO_POINT_FIVE,
289 Q14_GAIN_ZERO_POINT_FIVE,
290 Q14_GAIN_ZERO_POINT_FIVE,
291 Q14_GAIN_ZERO_POINT_FIVE);
292 if (rc < 0)
293 pr_err("%s: err setting custom stereo\n",
294 __func__);
295 }
296 }
297}
298
299#define SLIMBUS_EXTPROC_RX AFE_PORT_INVALID
300struct msm_pcm_routing_bdai_data msm_bedais[MSM_BACKEND_DAI_MAX] = {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530301 { PRIMARY_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_PRI_I2S_RX},
302 { PRIMARY_I2S_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_PRI_I2S_TX},
303 { SLIMBUS_0_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_0_RX},
304 { SLIMBUS_0_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_0_TX},
305 { HDMI_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_HDMI},
306 { INT_BT_SCO_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_BT_SCO_RX},
307 { INT_BT_SCO_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_BT_SCO_TX},
308 { INT_FM_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_FM_RX},
309 { INT_FM_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_FM_TX},
310 { RT_PROXY_PORT_001_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530311 LPASS_BE_AFE_PCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530312 { RT_PROXY_PORT_001_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530313 LPASS_BE_AFE_PCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530314 { AFE_PORT_ID_PRIMARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530315 LPASS_BE_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530316 { AFE_PORT_ID_PRIMARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530317 LPASS_BE_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530318 { VOICE_PLAYBACK_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530319 LPASS_BE_VOICE_PLAYBACK_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530320 { VOICE2_PLAYBACK_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530321 LPASS_BE_VOICE2_PLAYBACK_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530322 { VOICE_RECORD_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530323 LPASS_BE_INCALL_RECORD_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530324 { VOICE_RECORD_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530325 LPASS_BE_INCALL_RECORD_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530326 { MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_MI2S_RX},
327 { MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_MI2S_TX},
328 { SECONDARY_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SEC_I2S_RX},
329 { SLIMBUS_1_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_1_RX},
330 { SLIMBUS_1_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_1_TX},
331 { SLIMBUS_2_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_2_RX},
332 { SLIMBUS_2_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_2_TX},
333 { SLIMBUS_3_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_3_RX},
334 { SLIMBUS_3_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_3_TX},
335 { SLIMBUS_4_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_4_RX},
336 { SLIMBUS_4_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_4_TX},
337 { SLIMBUS_5_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_5_RX},
338 { SLIMBUS_5_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_5_TX},
339 { SLIMBUS_6_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_6_RX},
340 { SLIMBUS_6_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_6_TX},
341 { SLIMBUS_7_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_7_RX},
342 { SLIMBUS_7_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_7_TX},
343 { SLIMBUS_8_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_8_RX},
344 { SLIMBUS_8_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_8_TX},
345 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_RX},
346 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_TX},
347 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_1_TX},
348 { AFE_PORT_ID_QUATERNARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530349 LPASS_BE_QUAT_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530350 { AFE_PORT_ID_QUATERNARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530351 LPASS_BE_QUAT_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530352 { AFE_PORT_ID_SECONDARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530353 LPASS_BE_SEC_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530354 { AFE_PORT_ID_SECONDARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530355 LPASS_BE_SEC_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530356 { AFE_PORT_ID_PRIMARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530357 LPASS_BE_PRI_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530358 { AFE_PORT_ID_PRIMARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530359 LPASS_BE_PRI_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530360 { AFE_PORT_ID_TERTIARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530361 LPASS_BE_TERT_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530362 { AFE_PORT_ID_TERTIARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530363 LPASS_BE_TERT_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530364 { AUDIO_PORT_ID_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530365 LPASS_BE_AUDIO_I2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530366 { AFE_PORT_ID_SECONDARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530367 LPASS_BE_SEC_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530368 { AFE_PORT_ID_SECONDARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530369 LPASS_BE_SEC_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530370 { AFE_PORT_ID_PRIMARY_SPDIF_RX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200371 LPASS_BE_PRI_SPDIF_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530372 { AFE_PORT_ID_SECONDARY_MI2S_RX_SD1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530373 LPASS_BE_SEC_MI2S_RX_SD1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530374 { AFE_PORT_ID_QUINARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530375 LPASS_BE_QUIN_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530376 { AFE_PORT_ID_QUINARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530377 LPASS_BE_QUIN_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530378 { AFE_PORT_ID_SENARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530379 LPASS_BE_SENARY_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530380 { AFE_PORT_ID_PRIMARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530381 LPASS_BE_PRI_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530382 { AFE_PORT_ID_PRIMARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530383 LPASS_BE_PRI_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530384 { AFE_PORT_ID_PRIMARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530385 LPASS_BE_PRI_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530386 { AFE_PORT_ID_PRIMARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530387 LPASS_BE_PRI_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530388 { AFE_PORT_ID_PRIMARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530389 LPASS_BE_PRI_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530390 { AFE_PORT_ID_PRIMARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530391 LPASS_BE_PRI_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530392 { AFE_PORT_ID_PRIMARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530393 LPASS_BE_PRI_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530394 { AFE_PORT_ID_PRIMARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530395 LPASS_BE_PRI_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530396 { AFE_PORT_ID_PRIMARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530397 LPASS_BE_PRI_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530398 { AFE_PORT_ID_PRIMARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530399 LPASS_BE_PRI_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530400 { AFE_PORT_ID_PRIMARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530401 LPASS_BE_PRI_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530402 { AFE_PORT_ID_PRIMARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530403 LPASS_BE_PRI_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530404 { AFE_PORT_ID_PRIMARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530405 LPASS_BE_PRI_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530406 { AFE_PORT_ID_PRIMARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530407 LPASS_BE_PRI_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530408 { AFE_PORT_ID_PRIMARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530409 LPASS_BE_PRI_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530410 { AFE_PORT_ID_PRIMARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530411 LPASS_BE_PRI_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530412 { AFE_PORT_ID_SECONDARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530413 LPASS_BE_SEC_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530414 { AFE_PORT_ID_SECONDARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530415 LPASS_BE_SEC_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530416 { AFE_PORT_ID_SECONDARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530417 LPASS_BE_SEC_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530418 { AFE_PORT_ID_SECONDARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530419 LPASS_BE_SEC_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530420 { AFE_PORT_ID_SECONDARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530421 LPASS_BE_SEC_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530422 { AFE_PORT_ID_SECONDARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530423 LPASS_BE_SEC_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530424 { AFE_PORT_ID_SECONDARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530425 LPASS_BE_SEC_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530426 { AFE_PORT_ID_SECONDARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530427 LPASS_BE_SEC_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530428 { AFE_PORT_ID_SECONDARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530429 LPASS_BE_SEC_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530430 { AFE_PORT_ID_SECONDARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530431 LPASS_BE_SEC_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530432 { AFE_PORT_ID_SECONDARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530433 LPASS_BE_SEC_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530434 { AFE_PORT_ID_SECONDARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530435 LPASS_BE_SEC_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530436 { AFE_PORT_ID_SECONDARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530437 LPASS_BE_SEC_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530438 { AFE_PORT_ID_SECONDARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530439 LPASS_BE_SEC_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530440 { AFE_PORT_ID_SECONDARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530441 LPASS_BE_SEC_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530442 { AFE_PORT_ID_SECONDARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530443 LPASS_BE_SEC_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530444 { AFE_PORT_ID_TERTIARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530445 LPASS_BE_TERT_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530446 { AFE_PORT_ID_TERTIARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530447 LPASS_BE_TERT_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530448 { AFE_PORT_ID_TERTIARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530449 LPASS_BE_TERT_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530450 { AFE_PORT_ID_TERTIARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530451 LPASS_BE_TERT_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530452 { AFE_PORT_ID_TERTIARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530453 LPASS_BE_TERT_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530454 { AFE_PORT_ID_TERTIARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530455 LPASS_BE_TERT_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530456 { AFE_PORT_ID_TERTIARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530457 LPASS_BE_TERT_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530458 { AFE_PORT_ID_TERTIARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530459 LPASS_BE_TERT_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530460 { AFE_PORT_ID_TERTIARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530461 LPASS_BE_TERT_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530462 { AFE_PORT_ID_TERTIARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530463 LPASS_BE_TERT_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530464 { AFE_PORT_ID_TERTIARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530465 LPASS_BE_TERT_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530466 { AFE_PORT_ID_TERTIARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530467 LPASS_BE_TERT_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530468 { AFE_PORT_ID_TERTIARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530469 LPASS_BE_TERT_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530470 { AFE_PORT_ID_TERTIARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530471 LPASS_BE_TERT_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530472 { AFE_PORT_ID_TERTIARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530473 LPASS_BE_TERT_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530474 { AFE_PORT_ID_TERTIARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530475 LPASS_BE_TERT_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530476 { AFE_PORT_ID_QUATERNARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530477 LPASS_BE_QUAT_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530478 { AFE_PORT_ID_QUATERNARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530479 LPASS_BE_QUAT_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530480 { AFE_PORT_ID_QUATERNARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530481 LPASS_BE_QUAT_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530482 { AFE_PORT_ID_QUATERNARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530483 LPASS_BE_QUAT_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530484 { AFE_PORT_ID_QUATERNARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530485 LPASS_BE_QUAT_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530486 { AFE_PORT_ID_QUATERNARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530487 LPASS_BE_QUAT_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530488 { AFE_PORT_ID_QUATERNARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530489 LPASS_BE_QUAT_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530490 { AFE_PORT_ID_QUATERNARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530491 LPASS_BE_QUAT_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530492 { AFE_PORT_ID_QUATERNARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530493 LPASS_BE_QUAT_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530494 { AFE_PORT_ID_QUATERNARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530495 LPASS_BE_QUAT_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530496 { AFE_PORT_ID_QUATERNARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530497 LPASS_BE_QUAT_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530498 { AFE_PORT_ID_QUATERNARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530499 LPASS_BE_QUAT_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530500 { AFE_PORT_ID_QUATERNARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530501 LPASS_BE_QUAT_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530502 { AFE_PORT_ID_QUATERNARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530503 LPASS_BE_QUAT_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530504 { AFE_PORT_ID_QUATERNARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530505 LPASS_BE_QUAT_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530506 { AFE_PORT_ID_QUATERNARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530507 LPASS_BE_QUAT_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530508 { AFE_PORT_ID_QUINARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530509 LPASS_BE_QUIN_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530510 { AFE_PORT_ID_QUINARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530511 LPASS_BE_QUIN_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530512 { AFE_PORT_ID_QUINARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530513 LPASS_BE_QUIN_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530514 { AFE_PORT_ID_QUINARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530515 LPASS_BE_QUIN_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530516 { AFE_PORT_ID_QUINARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530517 LPASS_BE_QUIN_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530518 { AFE_PORT_ID_QUINARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530519 LPASS_BE_QUIN_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530520 { AFE_PORT_ID_QUINARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530521 LPASS_BE_QUIN_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530522 { AFE_PORT_ID_QUINARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530523 LPASS_BE_QUIN_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530524 { AFE_PORT_ID_QUINARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530525 LPASS_BE_QUIN_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530526 { AFE_PORT_ID_QUINARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530527 LPASS_BE_QUIN_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530528 { AFE_PORT_ID_QUINARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530529 LPASS_BE_QUIN_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530530 { AFE_PORT_ID_QUINARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530531 LPASS_BE_QUIN_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530532 { AFE_PORT_ID_QUINARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530533 LPASS_BE_QUIN_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530534 { AFE_PORT_ID_QUINARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530535 LPASS_BE_QUIN_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530536 { AFE_PORT_ID_QUINARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530537 LPASS_BE_QUIN_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530538 { AFE_PORT_ID_QUINARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530539 LPASS_BE_QUIN_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530540 { INT_BT_A2DP_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530541 LPASS_BE_INT_BT_A2DP_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530542 { AFE_PORT_ID_USB_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530543 LPASS_BE_USB_AUDIO_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530544 { AFE_PORT_ID_USB_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530545 LPASS_BE_USB_AUDIO_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530546 { DISPLAY_PORT_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530547 LPASS_BE_DISPLAY_PORT},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530548 { DISPLAY_PORT_RX, 0, {0}, {0}, 0, 0, 0, 0,
Karthikeyan Mani57550082018-05-03 18:43:58 -0700549 LPASS_BE_DISPLAY_PORT1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530550 { AFE_PORT_ID_TERTIARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530551 LPASS_BE_TERT_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530552 { AFE_PORT_ID_TERTIARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530553 LPASS_BE_TERT_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530554 { AFE_PORT_ID_QUATERNARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530555 LPASS_BE_QUAT_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530556 { AFE_PORT_ID_QUATERNARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530557 LPASS_BE_QUAT_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530558 { AFE_PORT_ID_QUINARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530559 LPASS_BE_QUIN_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530560 { AFE_PORT_ID_QUINARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530561 LPASS_BE_QUIN_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530562 { AFE_PORT_ID_INT0_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530563 LPASS_BE_INT0_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530564 { AFE_PORT_ID_INT0_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530565 LPASS_BE_INT0_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530566 { AFE_PORT_ID_INT1_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530567 LPASS_BE_INT1_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530568 { AFE_PORT_ID_INT1_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530569 LPASS_BE_INT1_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530570 { AFE_PORT_ID_INT2_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530571 LPASS_BE_INT2_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530572 { AFE_PORT_ID_INT2_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530573 LPASS_BE_INT2_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530574 { AFE_PORT_ID_INT3_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530575 LPASS_BE_INT3_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530576 { AFE_PORT_ID_INT3_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530577 LPASS_BE_INT3_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530578 { AFE_PORT_ID_INT4_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530579 LPASS_BE_INT4_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530580 { AFE_PORT_ID_INT4_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530581 LPASS_BE_INT4_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530582 { AFE_PORT_ID_INT5_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530583 LPASS_BE_INT5_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530584 { AFE_PORT_ID_INT5_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530585 LPASS_BE_INT5_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530586 { AFE_PORT_ID_INT6_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530587 LPASS_BE_INT6_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530588 { AFE_PORT_ID_INT6_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530589 LPASS_BE_INT6_MI2S_TX},
Dieter Luecking70668fc2018-09-28 15:03:01 +0200590 { AFE_PORT_ID_SENARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
591 LPASS_BE_SEN_AUXPCM_RX},
592 { AFE_PORT_ID_SENARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
593 LPASS_BE_SEN_AUXPCM_TX},
594 { AFE_PORT_ID_SENARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
595 LPASS_BE_SENARY_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530596 { AFE_PORT_ID_WSA_CODEC_DMA_RX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530597 LPASS_BE_WSA_CDC_DMA_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530598 { AFE_PORT_ID_WSA_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530599 LPASS_BE_WSA_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530600 { AFE_PORT_ID_WSA_CODEC_DMA_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530601 LPASS_BE_WSA_CDC_DMA_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530602 { AFE_PORT_ID_WSA_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530603 LPASS_BE_WSA_CDC_DMA_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530604 { AFE_PORT_ID_WSA_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530605 LPASS_BE_WSA_CDC_DMA_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530606 { AFE_PORT_ID_VA_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530607 LPASS_BE_VA_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530608 { AFE_PORT_ID_VA_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530609 LPASS_BE_VA_CDC_DMA_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530610 { AFE_PORT_ID_RX_CODEC_DMA_RX_0, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530611 LPASS_BE_RX_CDC_DMA_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530612 { AFE_PORT_ID_TX_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530613 LPASS_BE_TX_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530614 { AFE_PORT_ID_RX_CODEC_DMA_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530615 LPASS_BE_RX_CDC_DMA_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530616 { AFE_PORT_ID_TX_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530617 LPASS_BE_TX_CDC_DMA_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530618 { AFE_PORT_ID_RX_CODEC_DMA_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530619 LPASS_BE_RX_CDC_DMA_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530620 { AFE_PORT_ID_TX_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530621 LPASS_BE_TX_CDC_DMA_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530622 { AFE_PORT_ID_RX_CODEC_DMA_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530623 LPASS_BE_RX_CDC_DMA_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530624 { AFE_PORT_ID_TX_CODEC_DMA_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530625 LPASS_BE_TX_CDC_DMA_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530626 { AFE_PORT_ID_RX_CODEC_DMA_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530627 LPASS_BE_RX_CDC_DMA_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530628 { AFE_PORT_ID_TX_CODEC_DMA_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530629 LPASS_BE_TX_CDC_DMA_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530630 { AFE_PORT_ID_RX_CODEC_DMA_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530631 LPASS_BE_RX_CDC_DMA_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530632 { AFE_PORT_ID_TX_CODEC_DMA_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530633 LPASS_BE_TX_CDC_DMA_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530634 { AFE_PORT_ID_RX_CODEC_DMA_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530635 LPASS_BE_RX_CDC_DMA_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530636 { AFE_PORT_ID_RX_CODEC_DMA_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530637 LPASS_BE_RX_CDC_DMA_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530638 { AFE_PORT_ID_PRIMARY_SPDIF_TX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200639 LPASS_BE_PRI_SPDIF_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530640 { AFE_PORT_ID_SECONDARY_SPDIF_RX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200641 LPASS_BE_SEC_SPDIF_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530642 { AFE_PORT_ID_SECONDARY_SPDIF_TX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200643 LPASS_BE_SEC_SPDIF_TX},
Surendar Karka3ef3d812018-09-28 18:52:35 +0530644 { SLIMBUS_9_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_9_RX},
645 { SLIMBUS_9_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_9_TX},
Surendar Karkad47fda42018-05-20 19:21:10 +0530646 { AFE_LOOPBACK_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_AFE_LOOPBACK_TX},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530647};
648
649/* Track ASM playback & capture sessions of DAI
650 * Track LSM listen sessions
651 */
652static struct msm_pcm_routing_fdai_data
653 fe_dai_map[MSM_FRONTEND_DAI_MAX][2] = {
654 /* MULTIMEDIA1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530655 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
656 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530657 /* MULTIMEDIA2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530658 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
659 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530660 /* MULTIMEDIA3 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530661 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
662 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530663 /* MULTIMEDIA4 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530664 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
665 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530666 /* MULTIMEDIA5 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530667 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
668 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530669 /* MULTIMEDIA6 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530670 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
671 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530672 /* MULTIMEDIA7*/
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530673 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
674 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530675 /* MULTIMEDIA8 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530676 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
677 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530678 /* MULTIMEDIA9 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530679 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
680 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530681 /* MULTIMEDIA10 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530682 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
683 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530684 /* MULTIMEDIA11 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530685 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
686 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530687 /* MULTIMEDIA12 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530688 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
689 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530690 /* MULTIMEDIA13 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530691 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
692 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530693 /* MULTIMEDIA14 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530694 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
695 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530696 /* MULTIMEDIA15 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530697 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
698 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530699 /* MULTIMEDIA16 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530700 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
701 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530702 /* MULTIMEDIA17 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530703 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
704 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530705 /* MULTIMEDIA18 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530706 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
707 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530708 /* MULTIMEDIA19 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530709 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
710 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530711 /* MULTIMEDIA20 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530712 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
713 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Derek Chen07c6d1c2018-07-05 10:39:25 -0700714 /* MULTIMEDIA21 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530715 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
716 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Surendar Karkac1cde372018-08-14 18:56:24 +0530717 /* MULTIMEDIA26 */
718 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
719 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
720 /* MULTIMEDIA27 */
721 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
722 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +0530723 /* MULTIMEDIA28 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530724 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
725 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +0530726 /* MULTIMEDIA29 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530727 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
728 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530729 /* VOIP */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530730 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
731 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530732 /* AFE_RX */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530733 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
734 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530735 /* AFE_TX */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530736 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
737 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530738 /* VOICE_STUB */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530739 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
740 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530741 /* DTMF_RX */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530742 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
743 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530744 /* QCHAT */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530745 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
746 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530747 /* VOLTE_STUB */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530748 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
749 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530750 /* LSM1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530751 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
752 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530753 /* LSM2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530754 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
755 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530756 /* LSM3 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530757 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
758 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530759 /* LSM4 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530760 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
761 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530762 /* LSM5 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530763 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
764 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530765 /* LSM6 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530766 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
767 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530768 /* LSM7 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530769 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
770 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530771 /* LSM8 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530772 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
773 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530774 /* VOICE2_STUB */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530775 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
776 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530777 /* VOICEMMODE1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530778 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
779 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530780 /* VOICEMMODE2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530781 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
782 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530783};
784
785static unsigned long session_copp_map[MSM_FRONTEND_DAI_MAX][2]
786 [MSM_BACKEND_DAI_MAX];
787static struct msm_pcm_routing_app_type_data app_type_cfg[MAX_APP_TYPES];
788static struct msm_pcm_routing_app_type_data lsm_app_type_cfg[MAX_APP_TYPES];
789static struct msm_pcm_stream_app_type_cfg
790 fe_dai_app_type_cfg[MSM_FRONTEND_DAI_MAX][2][MSM_BACKEND_DAI_MAX];
791
792static int last_be_id_configured[MSM_FRONTEND_DAI_MAX][MAX_SESSION_TYPES];
793
Florian Pfister522073c2018-09-26 15:39:15 +0200794/* The caller of this should acquire routing lock */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530795void msm_pcm_routing_get_bedai_info(int be_idx,
796 struct msm_pcm_routing_bdai_data *be_dai)
797{
798 if (be_idx >= 0 && be_idx < MSM_BACKEND_DAI_MAX)
799 memcpy(be_dai, &msm_bedais[be_idx],
800 sizeof(struct msm_pcm_routing_bdai_data));
801}
802
Florian Pfister522073c2018-09-26 15:39:15 +0200803/* The caller of this should acquire routing lock */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530804void msm_pcm_routing_get_fedai_info(int fe_idx, int sess_type,
805 struct msm_pcm_routing_fdai_data *fe_dai)
806{
807 if ((sess_type == SESSION_TYPE_TX) || (sess_type == SESSION_TYPE_RX))
808 memcpy(fe_dai, &fe_dai_map[fe_idx][sess_type],
809 sizeof(struct msm_pcm_routing_fdai_data));
810}
811
812void msm_pcm_routing_acquire_lock(void)
813{
814 mutex_lock(&routing_lock);
815}
816
817void msm_pcm_routing_release_lock(void)
818{
819 mutex_unlock(&routing_lock);
820}
821
822static int msm_pcm_routing_get_app_type_idx(int app_type)
823{
824 int idx;
825
826 pr_debug("%s: app_type: %d\n", __func__, app_type);
827 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
828 if (app_type_cfg[idx].app_type == app_type)
829 return idx;
830 }
831 pr_info("%s: App type not available, fallback to default\n", __func__);
832 return 0;
833}
834
835static int msm_pcm_routing_get_lsm_app_type_idx(int app_type)
836{
837 int idx;
838
839 pr_debug("%s: app_type: %d\n", __func__, app_type);
840 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
841 if (lsm_app_type_cfg[idx].app_type == app_type)
842 return idx;
843 }
844 pr_debug("%s: App type not available, fallback to default\n", __func__);
845 return 0;
846}
847
Surendar Karkae7507512018-07-20 15:46:54 +0530848static int get_port_id(int port_id)
849{
850 return (port_id == AFE_LOOPBACK_TX ? msm_ec_ref_port_id : port_id);
851}
852
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530853static bool is_mm_lsm_fe_id(int fe_id)
854{
855 bool rc = true;
856
857 if (fe_id > MSM_FRONTEND_DAI_MM_MAX_ID &&
858 ((fe_id < MSM_FRONTEND_DAI_LSM1) ||
859 (fe_id > MSM_FRONTEND_DAI_LSM8))) {
860 rc = false;
861 }
862 return rc;
863}
864
Bhalchandra Gajareeed46bd2018-05-15 16:48:07 -0700865/*
866 * msm_pcm_routing_send_chmix_cfg:
867 * send the channel mixer command to mix the input channels
868 * into output channels.
869 *
870 * @fe_id: front end id
871 * @ip_channel_cnt: input channel count
872 * @op_channel_cnt: output channel count
873 * @ch_wght_coeff: channel weight co-efficients for channel mixing
874 * @session_type: indicates session is of type TX or RX
875 * @stream_type: indicates either Audio or Listen stream type
876 */
877int msm_pcm_routing_send_chmix_cfg(int fe_id, int ip_channel_cnt,
878 int op_channel_cnt, int *ch_wght_coeff,
879 int session_type, int stream_type)
880{
881
882 int rc = 0, idx = 0;
883 int be_index = 0, port_id;
884 unsigned int session_id = 0;
885
886 pr_debug("%s:fe_id[%d] ip_ch[%d] op_ch[%d] sess_type [%d], stream_type[%d]",
887 __func__, fe_id, ip_channel_cnt, op_channel_cnt, session_type,
888 stream_type);
889 if (!is_mm_lsm_fe_id(fe_id)) {
890 /* bad ID assigned in machine driver */
891 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
892 return -EINVAL;
893 }
894
895 if (ch_wght_coeff == NULL) {
896 pr_err("%s: Null channel weightage coefficients passed\n",
897 __func__);
898 return -EINVAL;
899 }
900
901 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
902 port_id = msm_bedais[be_index].port_id;
903 if (!msm_bedais[be_index].active ||
904 !test_bit(fe_id, &msm_bedais[be_index].fe_sessions[0]))
905 continue;
906
907 session_id = fe_dai_map[fe_id][session_type].strm_id;
908
909 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
910 unsigned long copp =
911 session_copp_map[fe_id][session_type][be_index];
912 if (!test_bit(idx, &copp))
913 continue;
914 msm_qti_pp_send_chmix_cfg_cmd(port_id, idx,
915 session_id, ip_channel_cnt,
916 op_channel_cnt, ch_wght_coeff,
917 session_type, stream_type);
918 if (rc < 0)
919 pr_err("%s: err setting channel mix config\n",
920 __func__);
921 }
922 }
923
924 return 0;
925}
926EXPORT_SYMBOL(msm_pcm_routing_send_chmix_cfg);
927
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530928int msm_pcm_routing_reg_stream_app_type_cfg(
929 int fedai_id, int session_type, int be_id,
930 struct msm_pcm_stream_app_type_cfg *cfg_data)
931{
932 int ret = 0;
933
934 if (cfg_data == NULL) {
935 pr_err("%s: Received NULL pointer for cfg_data\n", __func__);
936 ret = -EINVAL;
937 goto done;
938 }
939
940 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
941 __func__, fedai_id, session_type, be_id,
942 cfg_data->app_type, cfg_data->acdb_dev_id,
943 cfg_data->sample_rate);
944
945 if (!is_mm_lsm_fe_id(fedai_id)) {
946 pr_err("%s: Invalid machine driver ID %d\n",
947 __func__, fedai_id);
948 ret = -EINVAL;
949 goto done;
950 }
951 if (session_type != SESSION_TYPE_RX &&
952 session_type != SESSION_TYPE_TX) {
953 pr_err("%s: Invalid session type %d\n",
954 __func__, session_type);
955 ret = -EINVAL;
956 goto done;
957 }
958 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
959 pr_err("%s: Received out of bounds be_id %d\n",
960 __func__, be_id);
961 ret = -EINVAL;
962 goto done;
963 }
964
965 fe_dai_app_type_cfg[fedai_id][session_type][be_id] = *cfg_data;
966
967 /*
968 * Store the BE ID of the configuration information set as the latest so
969 * the get mixer control knows what to return.
970 */
971 last_be_id_configured[fedai_id][session_type] = be_id;
972
973done:
974 return ret;
975}
976EXPORT_SYMBOL(msm_pcm_routing_reg_stream_app_type_cfg);
977
978/**
979 * msm_pcm_routing_get_stream_app_type_cfg
980 *
981 * Receives fedai_id, session_type, be_id, and populates app_type,
982 * acdb_dev_id, & sample rate. Returns 0 on success. On failure returns
983 * -EINVAL and does not alter passed values.
984 *
985 * fedai_id - Passed value, front end ID for which app type config is wanted
986 * session_type - Passed value, session type for which app type config
987 * is wanted
988 * be_id - Returned value, back end device id the app type config data is for
989 * cfg_data - Returned value, configuration data used by app type config
990 */
991int msm_pcm_routing_get_stream_app_type_cfg(
992 int fedai_id, int session_type, int *bedai_id,
993 struct msm_pcm_stream_app_type_cfg *cfg_data)
994{
995 int be_id;
996 int ret = 0;
997
998 if (bedai_id == NULL) {
999 pr_err("%s: Received NULL pointer for backend ID\n", __func__);
1000 ret = -EINVAL;
1001 goto done;
1002 } else if (cfg_data == NULL) {
1003 pr_err("%s: NULL pointer sent for cfg_data\n", __func__);
1004 ret = -EINVAL;
1005 goto done;
1006 } else if (!is_mm_lsm_fe_id(fedai_id)) {
1007 pr_err("%s: Invalid FE ID %d\n", __func__, fedai_id);
1008 ret = -EINVAL;
1009 goto done;
1010 } else if (session_type != SESSION_TYPE_RX &&
1011 session_type != SESSION_TYPE_TX) {
1012 pr_err("%s: Invalid session type %d\n", __func__, session_type);
1013 ret = -EINVAL;
1014 goto done;
1015 }
1016
1017 be_id = last_be_id_configured[fedai_id][session_type];
1018 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1019 pr_err("%s: Invalid BE ID %d\n", __func__, be_id);
1020 ret = -EINVAL;
1021 goto done;
1022 }
1023
1024 *bedai_id = be_id;
1025 *cfg_data = fe_dai_app_type_cfg[fedai_id][session_type][be_id];
1026 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
1027 __func__, fedai_id, session_type, *bedai_id,
1028 cfg_data->app_type, cfg_data->acdb_dev_id,
1029 cfg_data->sample_rate);
1030done:
1031 return ret;
1032}
1033EXPORT_SYMBOL(msm_pcm_routing_get_stream_app_type_cfg);
1034
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301035static struct cal_block_data *msm_routing_find_topology_by_path(int path,
1036 int cal_index)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301037{
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301038 struct list_head *ptr, *next;
1039 struct cal_block_data *cal_block = NULL;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301040 pr_debug("%s\n", __func__);
1041
1042 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301043 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301044
1045 cal_block = list_entry(ptr,
1046 struct cal_block_data, list);
1047
Vikram Panduranga770b8382017-09-27 12:17:36 -07001048 if (cal_utils_is_cal_stale(cal_block))
1049 continue;
1050
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301051 if (((struct audio_cal_info_adm_top *)cal_block
1052 ->cal_info)->path == path) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301053 return cal_block;
1054 }
1055 }
1056 pr_debug("%s: Can't find topology for path %d\n", __func__, path);
1057 return NULL;
1058}
1059
1060static struct cal_block_data *msm_routing_find_topology(int path,
1061 int app_type,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301062 int acdb_id,
1063 int cal_index)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301064{
1065 struct list_head *ptr, *next;
1066 struct cal_block_data *cal_block = NULL;
1067 struct audio_cal_info_adm_top *cal_info;
1068
1069 pr_debug("%s\n", __func__);
1070
1071 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301072 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301073
1074 cal_block = list_entry(ptr,
1075 struct cal_block_data, list);
1076
Vikram Panduranga770b8382017-09-27 12:17:36 -07001077 if (cal_utils_is_cal_stale(cal_block))
1078 continue;
1079
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301080 cal_info = (struct audio_cal_info_adm_top *)
1081 cal_block->cal_info;
1082 if ((cal_info->path == path) &&
1083 (cal_info->app_type == app_type) &&
1084 (cal_info->acdb_id == acdb_id)) {
1085 return cal_block;
1086 }
1087 }
1088 pr_debug("%s: Can't find topology for path %d, app %d, acdb_id %d defaulting to search by path\n",
1089 __func__, path, app_type, acdb_id);
Vikram Panduranga770b8382017-09-27 12:17:36 -07001090 return msm_routing_find_topology_by_path(path, cal_index);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301091}
1092
Vikram Panduranga770b8382017-09-27 12:17:36 -07001093/*
1094 * Retrieving cal_block will mark cal_block as stale.
1095 * Hence it cannot be reused or resent unless the flag
1096 * is reset.
1097 */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301098static int msm_routing_get_adm_topology(int fedai_id, int session_type,
1099 int be_id)
1100{
1101 int topology = NULL_COPP_TOPOLOGY;
1102 struct cal_block_data *cal_block = NULL;
1103 int app_type = 0, acdb_dev_id = 0;
1104
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301105 pr_debug("%s: fedai_id %d, session_type %d, be_id %d\n",
1106 __func__, fedai_id, session_type, be_id);
1107
1108 if (cal_data == NULL)
1109 goto done;
1110
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301111 app_type = fe_dai_app_type_cfg[fedai_id][session_type][be_id].app_type;
1112 acdb_dev_id =
1113 fe_dai_app_type_cfg[fedai_id][session_type][be_id].acdb_dev_id;
1114
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301115 mutex_lock(&cal_data[ADM_TOPOLOGY_CAL_TYPE_IDX]->lock);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301116 cal_block = msm_routing_find_topology(session_type, app_type,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301117 acdb_dev_id,
1118 ADM_TOPOLOGY_CAL_TYPE_IDX);
Vikram Panduranga770b8382017-09-27 12:17:36 -07001119 if (cal_block != NULL) {
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301120 topology = ((struct audio_cal_info_adm_top *)
1121 cal_block->cal_info)->topology;
Vikram Panduranga770b8382017-09-27 12:17:36 -07001122 cal_utils_mark_cal_used(cal_block);
1123 mutex_unlock(&cal_data[ADM_TOPOLOGY_CAL_TYPE_IDX]->lock);
1124 } else {
1125 mutex_unlock(&cal_data[ADM_TOPOLOGY_CAL_TYPE_IDX]->lock);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301126
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301127 pr_debug("%s: Check for LSM topology\n", __func__);
1128 mutex_lock(&cal_data[ADM_LSM_TOPOLOGY_CAL_TYPE_IDX]->lock);
1129 cal_block = msm_routing_find_topology(session_type, app_type,
1130 acdb_dev_id,
1131 ADM_LSM_TOPOLOGY_CAL_TYPE_IDX);
Vikram Panduranga770b8382017-09-27 12:17:36 -07001132 if (cal_block != NULL) {
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301133 topology = ((struct audio_cal_info_adm_top *)
1134 cal_block->cal_info)->topology;
Vikram Panduranga770b8382017-09-27 12:17:36 -07001135 cal_utils_mark_cal_used(cal_block);
1136 }
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301137 mutex_unlock(&cal_data[ADM_LSM_TOPOLOGY_CAL_TYPE_IDX]->lock);
1138 }
1139
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301140done:
1141 pr_debug("%s: Using topology %d\n", __func__, topology);
1142 return topology;
1143}
1144
1145static uint8_t is_be_dai_extproc(int be_dai)
1146{
1147 if (be_dai == MSM_BACKEND_DAI_EXTPROC_RX ||
1148 be_dai == MSM_BACKEND_DAI_EXTPROC_TX ||
1149 be_dai == MSM_BACKEND_DAI_EXTPROC_EC_TX)
1150 return 1;
1151 else
1152 return 0;
1153}
1154
1155static void msm_pcm_routing_build_matrix(int fedai_id, int sess_type,
1156 int path_type, int perf_mode,
1157 uint32_t passthr_mode)
1158{
1159 int i, port_type, j, num_copps = 0;
1160 struct route_payload payload;
1161
1162 port_type = ((path_type == ADM_PATH_PLAYBACK ||
1163 path_type == ADM_PATH_COMPRESSED_RX) ?
1164 MSM_AFE_PORT_TYPE_RX : MSM_AFE_PORT_TYPE_TX);
1165
1166 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1167 if (!is_be_dai_extproc(i) &&
1168 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1169 (msm_bedais[i].active) &&
1170 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
Surendar Karkae7507512018-07-20 15:46:54 +05301171 int port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301172 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1173 unsigned long copp =
1174 session_copp_map[fedai_id][sess_type][i];
1175 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301176 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301177 payload.copp_idx[num_copps] = j;
1178 payload.app_type[num_copps] =
1179 fe_dai_app_type_cfg
1180 [fedai_id][sess_type][i]
1181 .app_type;
1182 payload.acdb_dev_id[num_copps] =
1183 fe_dai_app_type_cfg
1184 [fedai_id][sess_type][i]
1185 .acdb_dev_id;
1186 payload.sample_rate[num_copps] =
1187 fe_dai_app_type_cfg
1188 [fedai_id][sess_type][i]
1189 .sample_rate;
1190 num_copps++;
1191 }
1192 }
1193 }
1194 }
1195
1196 if (num_copps) {
1197 payload.num_copps = num_copps;
1198 payload.session_id = fe_dai_map[fedai_id][sess_type].strm_id;
1199 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1200 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1201 }
1202}
1203
1204void msm_pcm_routing_reg_psthr_stream(int fedai_id, int dspst_id,
1205 int stream_type)
1206{
1207 int i, session_type, path_type, port_type;
1208 u32 mode = 0;
1209
1210 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1211 /* bad ID assigned in machine driver */
1212 pr_err("%s: bad MM ID\n", __func__);
1213 return;
1214 }
1215
1216 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1217 session_type = SESSION_TYPE_RX;
1218 path_type = ADM_PATH_PLAYBACK;
1219 port_type = MSM_AFE_PORT_TYPE_RX;
1220 } else {
1221 session_type = SESSION_TYPE_TX;
1222 path_type = ADM_PATH_LIVE_REC;
1223 port_type = MSM_AFE_PORT_TYPE_TX;
1224 }
1225
1226 mutex_lock(&routing_lock);
1227
1228 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1229 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1230 if (!is_be_dai_extproc(i) &&
1231 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1232 (msm_bedais[i].active) &&
1233 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1234 mode = afe_get_port_type(msm_bedais[i].port_id);
1235 adm_connect_afe_port(mode, dspst_id,
1236 msm_bedais[i].port_id);
1237 break;
1238 }
1239 }
1240 mutex_unlock(&routing_lock);
1241}
1242
1243static bool route_check_fe_id_adm_support(int fe_id)
1244{
1245 bool rc = true;
1246
1247 if ((fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1248 (fe_id <= MSM_FRONTEND_DAI_LSM8)) {
1249 /* fe id is listen while port is set to afe */
1250 if (lsm_port_index != ADM_LSM_PORT_INDEX) {
1251 pr_debug("%s: fe_id %d, lsm mux slim port %d\n",
1252 __func__, fe_id, lsm_port_index);
1253 rc = false;
1254 }
1255 }
1256
1257 return rc;
1258}
1259
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001260/*
1261 * msm_pcm_routing_get_pp_ch_cnt:
1262 * Read the processed channel count
1263 *
1264 * @fe_id: Front end ID
1265 * @session_type: Inidicates RX or TX session type
1266 */
1267int msm_pcm_routing_get_pp_ch_cnt(int fe_id, int session_type)
1268{
1269 struct msm_pcm_stream_app_type_cfg cfg_data;
1270 int be_id = 0, app_type_idx = 0, app_type = 0;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +05301271 int ret = -EINVAL;
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001272
1273 memset(&cfg_data, 0, sizeof(cfg_data));
1274
1275 if (!is_mm_lsm_fe_id(fe_id)) {
1276 pr_err("%s: bad MM ID\n", __func__);
1277 return -EINVAL;
1278 }
1279
1280 ret = msm_pcm_routing_get_stream_app_type_cfg(fe_id, session_type,
1281 &be_id, &cfg_data);
1282 if (ret) {
Mangesh Kunchamwardaf02b02018-06-28 19:42:24 +05301283 pr_err("%s: cannot get stream app type cfg\n", __func__);
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001284 return ret;
1285 }
1286
1287 app_type = cfg_data.app_type;
1288 app_type_idx = msm_pcm_routing_get_lsm_app_type_idx(app_type);
1289 return lsm_app_type_cfg[app_type_idx].num_out_channels;
1290}
1291EXPORT_SYMBOL(msm_pcm_routing_get_pp_ch_cnt);
1292
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301293int msm_pcm_routing_reg_phy_compr_stream(int fe_id, int perf_mode,
1294 int dspst_id, int stream_type,
1295 uint32_t passthr_mode)
1296{
1297 int i, j, session_type, path_type, port_type, topology;
1298 int num_copps = 0;
1299 struct route_payload payload;
1300 u32 channels, sample_rate;
1301 u16 bit_width = 16;
1302 bool is_lsm;
1303
1304 pr_debug("%s:fe_id[%d] perf_mode[%d] id[%d] stream_type[%d] passt[%d]",
1305 __func__, fe_id, perf_mode, dspst_id,
1306 stream_type, passthr_mode);
1307 if (!is_mm_lsm_fe_id(fe_id)) {
1308 /* bad ID assigned in machine driver */
1309 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
1310 return -EINVAL;
1311 }
1312
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301313 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1314 session_type = SESSION_TYPE_RX;
1315 if (passthr_mode != LEGACY_PCM)
1316 path_type = ADM_PATH_COMPRESSED_RX;
1317 else
1318 path_type = ADM_PATH_PLAYBACK;
1319 port_type = MSM_AFE_PORT_TYPE_RX;
1320 } else if (stream_type == SNDRV_PCM_STREAM_CAPTURE) {
1321 session_type = SESSION_TYPE_TX;
Laxminath Kasam38070be2017-08-17 18:21:59 +05301322 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301323 path_type = ADM_PATH_COMPRESSED_TX;
1324 else
1325 path_type = ADM_PATH_LIVE_REC;
1326 port_type = MSM_AFE_PORT_TYPE_TX;
1327 } else {
1328 pr_err("%s: invalid stream type %d\n", __func__, stream_type);
1329 return -EINVAL;
1330 }
1331
1332 is_lsm = (fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1333 (fe_id <= MSM_FRONTEND_DAI_LSM8);
1334 mutex_lock(&routing_lock);
1335
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301336 fe_dai_map[fe_id][session_type].strm_id = dspst_id;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301337 fe_dai_map[fe_id][session_type].perf_mode = perf_mode;
1338 fe_dai_map[fe_id][session_type].passthr_mode = passthr_mode;
1339 if (!route_check_fe_id_adm_support(fe_id)) {
1340 /* ignore adm open if not supported for fe_id */
1341 pr_debug("%s: No ADM support for fe id %d\n", __func__, fe_id);
1342 mutex_unlock(&routing_lock);
1343 return 0;
1344 }
1345
1346 payload.num_copps = 0; /* only RX needs to use payload */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301347 /* re-enable EQ if active */
1348 msm_qti_pp_send_eq_values(fe_id);
1349 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301350 if (!is_be_dai_extproc(i) &&
1351 (afe_get_port_type(msm_bedais[i].port_id) ==
1352 port_type) &&
1353 (msm_bedais[i].active) &&
1354 (test_bit(fe_id, &msm_bedais[i].fe_sessions[0]))) {
1355 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05301356 int port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301357
1358 /*
1359 * check if ADM needs to be configured with different
1360 * channel mapping than backend
1361 */
1362 if (!msm_bedais[i].adm_override_ch)
1363 channels = msm_bedais[i].channel;
1364 else
1365 channels = msm_bedais[i].adm_override_ch;
1366
1367 bit_width = msm_routing_get_bit_width(
1368 msm_bedais[i].format);
1369 app_type =
1370 fe_dai_app_type_cfg[fe_id][session_type][i].app_type;
1371 if (app_type && is_lsm) {
1372 app_type_idx =
1373 msm_pcm_routing_get_lsm_app_type_idx(app_type);
1374 sample_rate =
1375 fe_dai_app_type_cfg[fe_id][session_type][i]
1376 .sample_rate;
1377 bit_width =
1378 lsm_app_type_cfg[app_type_idx].bit_width;
1379 } else if (app_type) {
1380 app_type_idx =
1381 msm_pcm_routing_get_app_type_idx(
1382 app_type);
1383 sample_rate =
1384 fe_dai_app_type_cfg[fe_id][session_type][i].sample_rate;
1385 bit_width =
1386 app_type_cfg[app_type_idx].bit_width;
1387 } else {
1388 sample_rate = msm_bedais[i].sample_rate;
1389 }
1390 acdb_dev_id =
1391 fe_dai_app_type_cfg[fe_id][session_type][i].acdb_dev_id;
1392 topology = msm_routing_get_adm_topology(fe_id,
1393 session_type,
1394 i);
1395 if ((passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
1396 || (passthr_mode ==
Ralf Herzc8701f72018-06-20 11:37:35 +02001397 COMPRESSED_PASSTHROUGH_GEN)
1398 || (passthr_mode ==
1399 COMPRESSED_PASSTHROUGH_IEC61937))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301400 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
1401 pr_debug("%s: Before adm open topology %d\n", __func__,
1402 topology);
1403
1404 copp_idx =
Surendar Karkae7507512018-07-20 15:46:54 +05301405 adm_open(port_id, path_type, sample_rate,
1406 channels, topology, perf_mode,
1407 bit_width, app_type, acdb_dev_id,
1408 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301409 if ((copp_idx < 0) ||
1410 (copp_idx >= MAX_COPPS_PER_PORT)) {
1411 pr_err("%s:adm open failed coppid:%d\n",
1412 __func__, copp_idx);
1413 mutex_unlock(&routing_lock);
1414 return -EINVAL;
1415 }
1416 pr_debug("%s: set idx bit of fe:%d, type: %d, be:%d\n",
1417 __func__, fe_id, session_type, i);
1418 set_bit(copp_idx,
1419 &session_copp_map[fe_id][session_type][i]);
1420
1421 if (msm_is_resample_needed(
1422 sample_rate,
1423 msm_bedais[i].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05301424 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301425 msm_bedais[i].sample_rate);
1426
1427 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1428 unsigned long copp =
1429 session_copp_map[fe_id][session_type][i];
1430 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301431 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301432 payload.copp_idx[num_copps] = j;
1433 payload.app_type[num_copps] =
1434 fe_dai_app_type_cfg
1435 [fe_id][session_type][i]
1436 .app_type;
1437 payload.acdb_dev_id[num_copps] =
1438 fe_dai_app_type_cfg
1439 [fe_id][session_type][i]
1440 .acdb_dev_id;
1441 payload.sample_rate[num_copps] =
1442 fe_dai_app_type_cfg
1443 [fe_id][session_type][i]
1444 .sample_rate;
1445 num_copps++;
1446 }
1447 }
1448 if (passthr_mode != COMPRESSED_PASSTHROUGH_DSD
Ralf Herzc8701f72018-06-20 11:37:35 +02001449 && passthr_mode != COMPRESSED_PASSTHROUGH_GEN
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301450 && passthr_mode != COMPRESSED_PASSTHROUGH_IEC61937)
Surendar Karkae7507512018-07-20 15:46:54 +05301451 msm_routing_send_device_pp_params(port_id,
1452 copp_idx, fe_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301453 }
1454 }
1455 if (num_copps) {
1456 payload.num_copps = num_copps;
1457 payload.session_id = fe_dai_map[fe_id][session_type].strm_id;
1458 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1459 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1460 }
1461 mutex_unlock(&routing_lock);
1462 return 0;
1463}
1464
1465static u32 msm_pcm_routing_get_voc_sessionid(u16 val)
1466{
1467 u32 session_id;
1468
1469 switch (val) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301470 case MSM_FRONTEND_DAI_QCHAT:
1471 session_id = voc_get_session_id(QCHAT_SESSION_NAME);
1472 break;
1473 case MSM_FRONTEND_DAI_VOIP:
1474 session_id = voc_get_session_id(VOIP_SESSION_NAME);
1475 break;
1476 case MSM_FRONTEND_DAI_VOICEMMODE1:
1477 session_id = voc_get_session_id(VOICEMMODE1_NAME);
1478 break;
1479 case MSM_FRONTEND_DAI_VOICEMMODE2:
1480 session_id = voc_get_session_id(VOICEMMODE2_NAME);
1481 break;
1482 default:
1483 session_id = 0;
1484 }
1485
1486 pr_debug("%s session_id 0x%x", __func__, session_id);
1487 return session_id;
1488}
1489
1490static int msm_pcm_routing_channel_mixer(int fe_id, bool perf_mode,
1491 int dspst_id, int stream_type)
1492{
1493 int copp_idx = 0;
1494 int sess_type = 0;
1495 int i = 0, j = 0, be_id;
1496 int ret = 0;
1497
1498 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
1499 pr_err("%s: invalid FE %d\n", __func__, fe_id);
1500 return 0;
1501 }
1502
1503 if (!(channel_mixer[fe_id].enable)) {
1504 pr_debug("%s: channel mixer not enabled for FE %d\n",
1505 __func__, fe_id);
1506 return 0;
1507 }
1508
1509 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1510 sess_type = SESSION_TYPE_RX;
1511 else
1512 sess_type = SESSION_TYPE_TX;
1513
1514 for (i = 0; i < ADM_MAX_CHANNELS && channel_input[fe_id][i] > 0;
1515 ++i) {
1516 be_id = channel_input[fe_id][i] - 1;
1517 channel_mixer[fe_id].input_channels[i] =
1518 msm_bedais[be_id].channel;
1519
1520 if ((msm_bedais[be_id].active) &&
1521 test_bit(fe_id,
1522 &msm_bedais[be_id].fe_sessions[0])) {
1523 unsigned long copp =
1524 session_copp_map[fe_id][sess_type][be_id];
1525 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1526 if (test_bit(j, &copp)) {
1527 copp_idx = j;
1528 break;
1529 }
1530 }
1531
1532 pr_debug("%s: fe %d, be %d, channel %d, copp %d\n",
1533 __func__,
1534 fe_id, be_id, msm_bedais[be_id].channel,
1535 copp_idx);
1536 ret = adm_programable_channel_mixer(
1537 msm_bedais[be_id].port_id,
1538 copp_idx, dspst_id, sess_type,
1539 channel_mixer + fe_id, i);
1540 }
1541 }
1542
1543 return ret;
1544}
1545
1546int msm_pcm_routing_reg_phy_stream(int fedai_id, int perf_mode,
1547 int dspst_id, int stream_type)
1548{
1549 int i, j, session_type, path_type, port_type, topology, num_copps = 0;
1550 struct route_payload payload;
1551 u32 channels, sample_rate;
1552 uint16_t bits_per_sample = 16;
1553 uint32_t passthr_mode = LEGACY_PCM;
1554 int ret = 0;
1555
1556 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1557 /* bad ID assigned in machine driver */
1558 pr_err("%s: bad MM ID %d\n", __func__, fedai_id);
1559 return -EINVAL;
1560 }
1561
1562 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1563 session_type = SESSION_TYPE_RX;
1564 path_type = ADM_PATH_PLAYBACK;
1565 port_type = MSM_AFE_PORT_TYPE_RX;
1566 } else {
1567 session_type = SESSION_TYPE_TX;
1568 path_type = ADM_PATH_LIVE_REC;
1569 port_type = MSM_AFE_PORT_TYPE_TX;
1570 }
1571
1572 mutex_lock(&routing_lock);
1573
1574 payload.num_copps = 0; /* only RX needs to use payload */
1575 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1576 fe_dai_map[fedai_id][session_type].perf_mode = perf_mode;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301577 fe_dai_map[fedai_id][session_type].passthr_mode = LEGACY_PCM;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301578
1579 /* re-enable EQ if active */
1580 msm_qti_pp_send_eq_values(fedai_id);
1581 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1582 if (!is_be_dai_extproc(i) &&
1583 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1584 (msm_bedais[i].active) &&
1585 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1586 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05301587 int port_id = get_port_id(msm_bedais[i].port_id);
1588
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301589 /*
1590 * check if ADM needs to be configured with different
1591 * channel mapping than backend
1592 */
1593 if (!msm_bedais[i].adm_override_ch)
1594 channels = msm_bedais[i].channel;
1595 else
1596 channels = msm_bedais[i].adm_override_ch;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301597
1598 bits_per_sample = msm_routing_get_bit_width(
1599 msm_bedais[i].format);
1600
1601 app_type =
1602 fe_dai_app_type_cfg[fedai_id][session_type][i].app_type;
1603 if (app_type) {
1604 app_type_idx =
1605 msm_pcm_routing_get_app_type_idx(app_type);
1606 sample_rate =
1607 fe_dai_app_type_cfg[fedai_id][session_type][i]
1608 .sample_rate;
1609 bits_per_sample =
1610 app_type_cfg[app_type_idx].bit_width;
1611 } else
1612 sample_rate = msm_bedais[i].sample_rate;
1613
1614 acdb_dev_id =
1615 fe_dai_app_type_cfg[fedai_id][session_type][i]
1616 .acdb_dev_id;
1617 topology = msm_routing_get_adm_topology(fedai_id,
1618 session_type,
1619 i);
Surendar Karkae7507512018-07-20 15:46:54 +05301620 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301621 sample_rate, channels, topology,
1622 perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +05301623 app_type, acdb_dev_id,
1624 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301625 if ((copp_idx < 0) ||
1626 (copp_idx >= MAX_COPPS_PER_PORT)) {
1627 pr_err("%s: adm open failed copp_idx:%d\n",
Vikram Panduranga770b8382017-09-27 12:17:36 -07001628 __func__, copp_idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301629 mutex_unlock(&routing_lock);
1630 return -EINVAL;
1631 }
1632 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
1633 __func__, fedai_id, session_type, i);
1634 set_bit(copp_idx,
1635 &session_copp_map[fedai_id][session_type][i]);
1636
1637 if (msm_is_resample_needed(
1638 sample_rate,
1639 msm_bedais[i].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05301640 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301641 msm_bedais[i].sample_rate);
1642
1643 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1644 unsigned long copp =
1645 session_copp_map[fedai_id][session_type][i];
1646 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301647 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301648 payload.copp_idx[num_copps] = j;
1649 payload.app_type[num_copps] =
1650 fe_dai_app_type_cfg
1651 [fedai_id][session_type]
1652 [i].app_type;
1653 payload.acdb_dev_id[num_copps] =
1654 fe_dai_app_type_cfg
1655 [fedai_id][session_type]
1656 [i].acdb_dev_id;
1657 payload.sample_rate[num_copps] =
1658 fe_dai_app_type_cfg
1659 [fedai_id][session_type]
1660 [i].sample_rate;
1661 num_copps++;
1662 }
1663 }
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301664 if (perf_mode == LEGACY_PCM_MODE)
Surendar Karkae7507512018-07-20 15:46:54 +05301665 msm_pcm_routing_cfg_pp(port_id, copp_idx,
1666 topology, channels);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301667 }
1668 }
1669 if (num_copps) {
1670 payload.num_copps = num_copps;
1671 payload.session_id = fe_dai_map[fedai_id][session_type].strm_id;
1672 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1673 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1674 }
1675
1676 ret = msm_pcm_routing_channel_mixer(fedai_id, perf_mode,
1677 dspst_id, stream_type);
1678 mutex_unlock(&routing_lock);
1679 return ret;
1680}
1681
1682int msm_pcm_routing_reg_phy_stream_v2(int fedai_id, int perf_mode,
1683 int dspst_id, int stream_type,
1684 struct msm_pcm_routing_evt event_info)
1685{
1686 if (msm_pcm_routing_reg_phy_stream(fedai_id, perf_mode, dspst_id,
1687 stream_type)) {
1688 pr_err("%s: failed to reg phy stream\n", __func__);
1689 return -EINVAL;
1690 }
1691
1692 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1693 fe_dai_map[fedai_id][SESSION_TYPE_RX].event_info = event_info;
1694 else
1695 fe_dai_map[fedai_id][SESSION_TYPE_TX].event_info = event_info;
1696 return 0;
1697}
1698
1699void msm_pcm_routing_dereg_phy_stream(int fedai_id, int stream_type)
1700{
Surendar Karkae7507512018-07-20 15:46:54 +05301701 int i, port_type, session_type, path_type, topology, port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301702 struct msm_pcm_routing_fdai_data *fdai;
1703
1704 if (!is_mm_lsm_fe_id(fedai_id)) {
1705 /* bad ID assigned in machine driver */
1706 pr_err("%s: bad MM ID\n", __func__);
1707 return;
1708 }
1709
1710 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1711 port_type = MSM_AFE_PORT_TYPE_RX;
1712 session_type = SESSION_TYPE_RX;
1713 path_type = ADM_PATH_PLAYBACK;
1714 } else {
1715 port_type = MSM_AFE_PORT_TYPE_TX;
1716 session_type = SESSION_TYPE_TX;
1717 path_type = ADM_PATH_LIVE_REC;
1718 }
1719
1720 mutex_lock(&routing_lock);
1721 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1722 if (!is_be_dai_extproc(i) &&
1723 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1724 (msm_bedais[i].active) &&
1725 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1726 int idx;
1727 unsigned long copp =
1728 session_copp_map[fedai_id][session_type][i];
1729 fdai = &fe_dai_map[fedai_id][session_type];
1730
1731 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
1732 if (test_bit(idx, &copp))
1733 break;
1734
1735 if (idx >= MAX_COPPS_PER_PORT || idx < 0) {
1736 pr_debug("%s: copp idx is invalid, exiting\n",
1737 __func__);
1738 continue;
1739 }
Surendar Karkae7507512018-07-20 15:46:54 +05301740 port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301741 topology = adm_get_topology_for_port_copp_idx(
Surendar Karkae7507512018-07-20 15:46:54 +05301742 port_id, idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07001743 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +05301744 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301745 pr_debug("%s:copp:%ld,idx bit fe:%d,type:%d,be:%d\n",
1746 __func__, copp, fedai_id, session_type, i);
1747 clear_bit(idx,
1748 &session_copp_map[fedai_id][session_type][i]);
1749 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
1750 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
1751 (fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301752 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05301753 msm_pcm_routing_deinit_pp(port_id, topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301754 }
1755 }
1756
1757 fe_dai_map[fedai_id][session_type].strm_id = INVALID_SESSION;
1758 fe_dai_map[fedai_id][session_type].be_srate = 0;
1759 mutex_unlock(&routing_lock);
1760}
1761
1762/* Check if FE/BE route is set */
1763static bool msm_pcm_routing_route_is_set(u16 be_id, u16 fe_id)
1764{
1765 bool rc = false;
1766
1767 if (!is_mm_lsm_fe_id(fe_id)) {
1768 /* recheck FE ID in the mixer control defined in this file */
1769 pr_err("%s: bad MM ID\n", __func__);
1770 return rc;
1771 }
1772
1773 if (test_bit(fe_id, &msm_bedais[be_id].fe_sessions[0]))
1774 rc = true;
1775
1776 return rc;
1777}
1778
1779static void msm_pcm_routing_process_audio(u16 reg, u16 val, int set)
1780{
1781 int session_type, path_type, topology;
1782 u32 channels, sample_rate;
1783 uint16_t bits_per_sample = 16;
1784 struct msm_pcm_routing_fdai_data *fdai;
1785 uint32_t passthr_mode;
1786 bool is_lsm;
1787
1788 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
1789
1790 if (!is_mm_lsm_fe_id(val)) {
1791 /* recheck FE ID in the mixer control defined in this file */
1792 pr_err("%s: bad MM ID\n", __func__);
1793 return;
1794 }
1795
1796 if (!route_check_fe_id_adm_support(val)) {
1797 /* ignore adm open if not supported for fe_id */
1798 pr_debug("%s: No ADM support for fe id %d\n", __func__, val);
1799 return;
1800 }
1801
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301802 session_type =
1803 (afe_get_port_type(msm_bedais[reg].port_id) == MSM_AFE_PORT_TYPE_RX) ?
1804 SESSION_TYPE_RX : SESSION_TYPE_TX;
1805 fdai = &fe_dai_map[val][session_type];
1806 passthr_mode = fdai->passthr_mode;
1807 if (session_type == SESSION_TYPE_RX) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301808 if (passthr_mode != LEGACY_PCM)
1809 path_type = ADM_PATH_COMPRESSED_RX;
1810 else
1811 path_type = ADM_PATH_PLAYBACK;
1812 } else {
Ralf Herzc8701f72018-06-20 11:37:35 +02001813 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301814 path_type = ADM_PATH_COMPRESSED_TX;
1815 else
1816 path_type = ADM_PATH_LIVE_REC;
1817 }
1818 is_lsm = (val >= MSM_FRONTEND_DAI_LSM1) &&
1819 (val <= MSM_FRONTEND_DAI_LSM8);
1820
1821 mutex_lock(&routing_lock);
1822 if (set) {
1823 if (!test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
1824 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
1825 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
1826 voc_start_playback(set, msm_bedais[reg].port_id);
1827
1828 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301829 if (msm_bedais[reg].active && fdai->strm_id !=
1830 INVALID_SESSION) {
1831 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05301832 int port_id = get_port_id(msm_bedais[reg].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301833 /*
1834 * check if ADM needs to be configured with different
1835 * channel mapping than backend
1836 */
1837 if (!msm_bedais[reg].adm_override_ch)
1838 channels = msm_bedais[reg].channel;
1839 else
1840 channels = msm_bedais[reg].adm_override_ch;
1841 if (session_type == SESSION_TYPE_TX &&
1842 fdai->be_srate &&
1843 (fdai->be_srate != msm_bedais[reg].sample_rate)) {
1844 pr_debug("%s: flush strm %d diff BE rates\n",
1845 __func__, fdai->strm_id);
1846
1847 if (fdai->event_info.event_func)
1848 fdai->event_info.event_func(
1849 MSM_PCM_RT_EVT_BUF_RECFG,
1850 fdai->event_info.priv_data);
1851 fdai->be_srate = 0; /* might not need it */
1852 }
1853
1854 bits_per_sample = msm_routing_get_bit_width(
1855 msm_bedais[reg].format);
1856
1857 app_type =
1858 fe_dai_app_type_cfg[val][session_type][reg].app_type;
1859 if (app_type && is_lsm) {
1860 app_type_idx =
1861 msm_pcm_routing_get_lsm_app_type_idx(app_type);
1862 sample_rate =
1863 fe_dai_app_type_cfg[val][session_type][reg]
1864 .sample_rate;
1865 bits_per_sample =
1866 lsm_app_type_cfg[app_type_idx].bit_width;
1867 } else if (app_type) {
1868 app_type_idx =
1869 msm_pcm_routing_get_app_type_idx(app_type);
1870 sample_rate =
1871 fe_dai_app_type_cfg[val][session_type][reg]
1872 .sample_rate;
1873 bits_per_sample =
1874 app_type_cfg[app_type_idx].bit_width;
1875 } else
1876 sample_rate = msm_bedais[reg].sample_rate;
1877
1878 topology = msm_routing_get_adm_topology(val,
1879 session_type,
1880 reg);
1881 acdb_dev_id =
1882 fe_dai_app_type_cfg[val][session_type][reg].acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05301883 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301884 sample_rate, channels, topology,
1885 fdai->perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +05301886 app_type, acdb_dev_id,
1887 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301888 if ((copp_idx < 0) ||
1889 (copp_idx >= MAX_COPPS_PER_PORT)) {
1890 pr_err("%s: adm open failed\n", __func__);
1891 mutex_unlock(&routing_lock);
1892 return;
1893 }
1894 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
1895 __func__, val, session_type, reg);
1896 set_bit(copp_idx,
1897 &session_copp_map[val][session_type][reg]);
1898
1899 if (msm_is_resample_needed(
1900 sample_rate,
1901 msm_bedais[reg].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05301902 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301903 msm_bedais[reg].sample_rate);
1904
1905 if (session_type == SESSION_TYPE_RX &&
1906 fdai->event_info.event_func)
1907 fdai->event_info.event_func(
1908 MSM_PCM_RT_EVT_DEVSWITCH,
1909 fdai->event_info.priv_data);
1910
1911 msm_pcm_routing_build_matrix(val, session_type,
1912 path_type,
1913 fdai->perf_mode,
1914 passthr_mode);
1915 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
1916 (passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05301917 msm_pcm_routing_cfg_pp(port_id, copp_idx,
1918 topology, channels);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301919 }
1920 } else {
1921 if (test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
1922 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
1923 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
1924 voc_start_playback(set, msm_bedais[reg].port_id);
1925 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301926 if (msm_bedais[reg].active && fdai->strm_id !=
1927 INVALID_SESSION) {
1928 int idx;
1929 int port_id;
1930 unsigned long copp =
1931 session_copp_map[val][session_type][reg];
1932 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
1933 if (test_bit(idx, &copp))
1934 break;
1935
Vignesh Kulothungane59d3152018-10-10 14:19:59 -07001936 if (idx >= MAX_COPPS_PER_PORT) {
1937 pr_debug("%s: copp idx is invalid, exiting\n",
1938 __func__);
1939 mutex_unlock(&routing_lock);
1940 return;
1941 }
Surendar Karkae7507512018-07-20 15:46:54 +05301942 port_id = get_port_id(msm_bedais[reg].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301943 topology = adm_get_topology_for_port_copp_idx(port_id,
1944 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07001945 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +05301946 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301947 pr_debug("%s: copp: %ld, reset idx bit fe:%d, type: %d, be:%d topology=0x%x\n",
1948 __func__, copp, val, session_type, reg,
1949 topology);
1950 clear_bit(idx,
1951 &session_copp_map[val][session_type][reg]);
1952 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
1953 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
1954 (fdai->perf_mode == LEGACY_PCM_MODE) &&
1955 (passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05301956 msm_pcm_routing_deinit_pp(port_id, topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301957 msm_pcm_routing_build_matrix(val, session_type,
1958 path_type,
1959 fdai->perf_mode,
1960 passthr_mode);
1961 }
1962 }
1963 if ((msm_bedais[reg].port_id == VOICE_RECORD_RX)
1964 || (msm_bedais[reg].port_id == VOICE_RECORD_TX))
1965 voc_start_record(msm_bedais[reg].port_id, set, voc_session_id);
1966
1967 mutex_unlock(&routing_lock);
1968}
1969
1970static int msm_routing_get_audio_mixer(struct snd_kcontrol *kcontrol,
1971 struct snd_ctl_elem_value *ucontrol)
1972{
1973 struct soc_mixer_control *mc =
1974 (struct soc_mixer_control *)kcontrol->private_value;
1975
Meng Wang05d5e9a2018-03-28 16:45:03 +08001976 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301977 ucontrol->value.integer.value[0] = 1;
1978 else
1979 ucontrol->value.integer.value[0] = 0;
1980
Meng Wang05d5e9a2018-03-28 16:45:03 +08001981 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301982 ucontrol->value.integer.value[0]);
1983
1984 return 0;
1985}
1986
1987static int msm_routing_put_audio_mixer(struct snd_kcontrol *kcontrol,
1988 struct snd_ctl_elem_value *ucontrol)
1989{
Asish Bhattacharya34504582017-08-08 12:55:01 +05301990 struct snd_soc_dapm_widget *widget =
1991 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301992 struct soc_mixer_control *mc =
1993 (struct soc_mixer_control *)kcontrol->private_value;
1994 struct snd_soc_dapm_update *update = NULL;
1995
1996 if (ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08001997 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false) {
1998 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301999 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2000 update);
2001 } else if (!ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08002002 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true) {
2003 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302004 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2005 update);
2006 }
2007
2008 return 1;
2009}
2010
2011static int msm_routing_get_listen_mixer(struct snd_kcontrol *kcontrol,
2012 struct snd_ctl_elem_value *ucontrol)
2013{
2014 struct soc_mixer_control *mc =
2015 (struct soc_mixer_control *)kcontrol->private_value;
2016
Meng Wang05d5e9a2018-03-28 16:45:03 +08002017 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302018 ucontrol->value.integer.value[0] = 1;
2019 else
2020 ucontrol->value.integer.value[0] = 0;
2021
Meng Wang05d5e9a2018-03-28 16:45:03 +08002022 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302023 ucontrol->value.integer.value[0]);
2024
2025 return 0;
2026}
2027
2028static int msm_routing_put_listen_mixer(struct snd_kcontrol *kcontrol,
2029 struct snd_ctl_elem_value *ucontrol)
2030{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302031 struct snd_soc_dapm_widget *widget =
2032 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302033 struct soc_mixer_control *mc =
2034 (struct soc_mixer_control *)kcontrol->private_value;
2035 struct snd_soc_dapm_update *update = NULL;
2036
Meng Wang05d5e9a2018-03-28 16:45:03 +08002037 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302038 ucontrol->value.integer.value[0]);
2039
2040 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002041 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false)
2042 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302043 snd_soc_dapm_mixer_update_power(widget->dapm,
2044 kcontrol, 1, update);
2045 } else if (!ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002046 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true)
2047 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302048 snd_soc_dapm_mixer_update_power(widget->dapm,
2049 kcontrol, 0, update);
2050 }
2051
2052 return 1;
2053}
2054
2055static void msm_pcm_routing_process_voice(u16 reg, u16 val, int set)
2056{
2057 u32 session_id = 0;
2058 u16 path_type;
2059 struct media_format_info voc_be_media_format;
2060
2061 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
2062
2063 session_id = msm_pcm_routing_get_voc_sessionid(val);
2064
2065 pr_debug("%s: FE DAI 0x%x session_id 0x%x\n",
2066 __func__, val, session_id);
2067
2068 mutex_lock(&routing_lock);
2069
2070 if (set)
2071 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
2072 else
2073 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
2074
2075 if (val == MSM_FRONTEND_DAI_DTMF_RX &&
2076 afe_get_port_type(msm_bedais[reg].port_id) ==
2077 MSM_AFE_PORT_TYPE_RX) {
2078 pr_debug("%s(): set=%d port id=0x%x for dtmf generation\n",
2079 __func__, set, msm_bedais[reg].port_id);
2080 afe_set_dtmf_gen_rx_portid(msm_bedais[reg].port_id, set);
2081 }
2082
2083 if (afe_get_port_type(msm_bedais[reg].port_id) ==
2084 MSM_AFE_PORT_TYPE_RX)
2085 path_type = RX_PATH;
2086 else
2087 path_type = TX_PATH;
2088
2089 if (set) {
2090 if (msm_bedais[reg].active) {
2091 voc_set_route_flag(session_id, path_type, 1);
2092
2093 memset(&voc_be_media_format, 0,
2094 sizeof(struct media_format_info));
2095
2096 voc_be_media_format.port_id = msm_bedais[reg].port_id;
2097 voc_be_media_format.num_channels =
2098 msm_bedais[reg].channel;
2099 voc_be_media_format.sample_rate =
2100 msm_bedais[reg].sample_rate;
2101 voc_be_media_format.bits_per_sample =
2102 msm_bedais[reg].format;
2103 /* Defaulting this to 1 for voice call usecases */
2104 voc_be_media_format.channel_mapping[0] = 1;
2105
2106 voc_set_device_config(session_id, path_type,
2107 &voc_be_media_format);
2108
2109 if (voc_get_route_flag(session_id, TX_PATH) &&
2110 voc_get_route_flag(session_id, RX_PATH))
2111 voc_enable_device(session_id);
2112 } else {
2113 pr_debug("%s BE is not active\n", __func__);
2114 }
2115 } else {
2116 voc_set_route_flag(session_id, path_type, 0);
2117 voc_disable_device(session_id);
2118 }
2119
2120 mutex_unlock(&routing_lock);
2121
2122}
2123
2124static int msm_routing_get_voice_mixer(struct snd_kcontrol *kcontrol,
2125 struct snd_ctl_elem_value *ucontrol)
2126{
2127 struct soc_mixer_control *mc =
2128 (struct soc_mixer_control *)kcontrol->private_value;
2129
2130 mutex_lock(&routing_lock);
2131
Meng Wang05d5e9a2018-03-28 16:45:03 +08002132 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302133 ucontrol->value.integer.value[0] = 1;
2134 else
2135 ucontrol->value.integer.value[0] = 0;
2136
2137 mutex_unlock(&routing_lock);
2138
Meng Wang05d5e9a2018-03-28 16:45:03 +08002139 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302140 ucontrol->value.integer.value[0]);
2141
2142 return 0;
2143}
2144
2145static int msm_routing_put_voice_mixer(struct snd_kcontrol *kcontrol,
2146 struct snd_ctl_elem_value *ucontrol)
2147{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302148 struct snd_soc_dapm_widget *widget =
2149 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302150 struct soc_mixer_control *mc =
2151 (struct soc_mixer_control *)kcontrol->private_value;
2152 struct snd_soc_dapm_update *update = NULL;
2153
2154 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002155 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302156 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2157 update);
2158 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002159 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302160 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2161 update);
2162 }
2163
2164 return 1;
2165}
2166
2167static int msm_routing_get_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2168 struct snd_ctl_elem_value *ucontrol)
2169{
2170 struct soc_mixer_control *mc =
2171 (struct soc_mixer_control *)kcontrol->private_value;
2172
2173 mutex_lock(&routing_lock);
2174
Meng Wang05d5e9a2018-03-28 16:45:03 +08002175 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302176 ucontrol->value.integer.value[0] = 1;
2177 else
2178 ucontrol->value.integer.value[0] = 0;
2179
2180 mutex_unlock(&routing_lock);
2181
Meng Wang05d5e9a2018-03-28 16:45:03 +08002182 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302183 ucontrol->value.integer.value[0]);
2184
2185 return 0;
2186}
2187
2188static int msm_routing_put_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2189 struct snd_ctl_elem_value *ucontrol)
2190{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302191 struct snd_soc_dapm_widget *widget =
2192 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302193 struct soc_mixer_control *mc =
2194 (struct soc_mixer_control *)kcontrol->private_value;
2195 struct snd_soc_dapm_update *update = NULL;
2196
2197 if (ucontrol->value.integer.value[0]) {
2198 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002199 set_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302200 mutex_unlock(&routing_lock);
2201
2202 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2203 update);
2204 } else {
2205 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002206 clear_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302207 mutex_unlock(&routing_lock);
2208
2209 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2210 update);
2211 }
2212
Meng Wang05d5e9a2018-03-28 16:45:03 +08002213 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302214 ucontrol->value.integer.value[0]);
2215
2216 return 1;
2217}
2218
2219/*
2220 * Return the mapping between port ID and backend ID to enable the AFE callback
2221 * to determine the acdb_dev_id from the port id
2222 */
2223int msm_pcm_get_be_id_from_port_id(int port_id)
2224{
2225 int i;
2226 int be_id = -EINVAL;
2227
2228 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
2229 if (msm_bedais[i].port_id == port_id) {
2230 be_id = i;
2231 break;
2232 }
2233 }
2234
2235 return be_id;
2236}
2237
2238/*
2239 * Return the registered dev_acdb_id given a port ID to enable identifying the
2240 * correct AFE calibration information by comparing the header information.
2241 */
2242static int msm_pcm_get_dev_acdb_id_by_port_id(int port_id)
2243{
2244 int acdb_id = -EINVAL;
2245 int i = 0;
2246 int session;
2247 int port_type = afe_get_port_type(port_id);
2248 int be_id = msm_pcm_get_be_id_from_port_id(port_id);
2249
2250 pr_debug("%s:port_id %d be_id %d, port_type 0x%x\n",
2251 __func__, port_id, be_id, port_type);
2252
2253 if (port_type == MSM_AFE_PORT_TYPE_TX) {
2254 session = SESSION_TYPE_TX;
2255 } else if (port_type == MSM_AFE_PORT_TYPE_RX) {
2256 session = SESSION_TYPE_RX;
2257 } else {
2258 pr_err("%s: Invalid port type %d\n", __func__, port_type);
2259 acdb_id = -EINVAL;
2260 goto exit;
2261 }
2262
2263 if (be_id < 0) {
2264 pr_err("%s: Error getting backend id %d\n", __func__, be_id);
2265 goto exit;
2266 }
2267
2268 mutex_lock(&routing_lock);
2269 i = find_first_bit(&msm_bedais[be_id].fe_sessions[0],
2270 MSM_FRONTEND_DAI_MAX);
2271 if (i < MSM_FRONTEND_DAI_MAX)
2272 acdb_id = fe_dai_app_type_cfg[i][session][be_id].acdb_dev_id;
2273
2274 pr_debug("%s: FE[%d] session[%d] BE[%d] acdb_id(%d)\n",
2275 __func__, i, session, be_id, acdb_id);
2276 mutex_unlock(&routing_lock);
2277exit:
2278 return acdb_id;
2279}
2280
2281static int msm_routing_get_switch_mixer(struct snd_kcontrol *kcontrol,
2282 struct snd_ctl_elem_value *ucontrol)
2283{
2284 ucontrol->value.integer.value[0] = fm_switch_enable;
2285 pr_debug("%s: FM Switch enable %ld\n", __func__,
2286 ucontrol->value.integer.value[0]);
2287 return 0;
2288}
2289
2290static int msm_routing_put_switch_mixer(struct snd_kcontrol *kcontrol,
2291 struct snd_ctl_elem_value *ucontrol)
2292{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302293 struct snd_soc_dapm_widget *widget =
2294 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302295 struct snd_soc_dapm_update *update = NULL;
2296
2297 pr_debug("%s: FM Switch enable %ld\n", __func__,
2298 ucontrol->value.integer.value[0]);
2299 if (ucontrol->value.integer.value[0])
2300 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2301 update);
2302 else
2303 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2304 update);
2305 fm_switch_enable = ucontrol->value.integer.value[0];
2306 return 1;
2307}
2308
2309static int msm_routing_get_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2310 struct snd_ctl_elem_value *ucontrol)
2311{
2312 ucontrol->value.integer.value[0] = hfp_switch_enable;
2313 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2314 ucontrol->value.integer.value[0]);
2315 return 0;
2316}
2317
2318static int msm_routing_put_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2319 struct snd_ctl_elem_value *ucontrol)
2320{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302321 struct snd_soc_dapm_widget *widget =
2322 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302323 struct snd_soc_dapm_update *update = NULL;
2324
2325 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2326 ucontrol->value.integer.value[0]);
2327 if (ucontrol->value.integer.value[0])
2328 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2329 1, update);
2330 else
2331 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2332 0, update);
2333 hfp_switch_enable = ucontrol->value.integer.value[0];
2334 return 1;
2335}
2336
Aniket Kumar Latac0c31472018-02-22 14:46:09 -08002337static int msm_routing_a2dp_switch_mixer_get(struct snd_kcontrol *kcontrol,
2338 struct snd_ctl_elem_value *ucontrol)
2339{
2340 ucontrol->value.integer.value[0] = a2dp_switch_enable;
2341 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2342 ucontrol->value.integer.value[0]);
2343 return 0;
2344}
2345
2346static int msm_routing_a2dp_switch_mixer_put(struct snd_kcontrol *kcontrol,
2347 struct snd_ctl_elem_value *ucontrol)
2348{
2349 struct snd_soc_dapm_widget *widget =
2350 snd_soc_dapm_kcontrol_widget(kcontrol);
2351 struct snd_soc_dapm_update *update = NULL;
2352
2353 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2354 ucontrol->value.integer.value[0]);
2355 a2dp_switch_enable = ucontrol->value.integer.value[0];
2356 if (a2dp_switch_enable)
2357 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2358 1, update);
2359 else
2360 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2361 0, update);
2362 return 1;
2363}
2364
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302365static int msm_routing_get_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2366 struct snd_ctl_elem_value *ucontrol)
2367{
2368 ucontrol->value.integer.value[0] = int0_mi2s_switch_enable;
2369 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2370 ucontrol->value.integer.value[0]);
2371 return 0;
2372}
2373
2374static int msm_routing_put_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2375 struct snd_ctl_elem_value *ucontrol)
2376{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302377 struct snd_soc_dapm_widget *widget =
2378 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302379 struct snd_soc_dapm_update *update = NULL;
2380
2381 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2382 ucontrol->value.integer.value[0]);
2383 if (ucontrol->value.integer.value[0])
2384 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2385 update);
2386 else
2387 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2388 update);
2389 int0_mi2s_switch_enable = ucontrol->value.integer.value[0];
2390 return 1;
2391}
2392
2393static int msm_routing_get_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2394 struct snd_ctl_elem_value *ucontrol)
2395{
2396 ucontrol->value.integer.value[0] = int4_mi2s_switch_enable;
2397 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2398 ucontrol->value.integer.value[0]);
2399 return 0;
2400}
2401
2402static int msm_routing_put_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2403 struct snd_ctl_elem_value *ucontrol)
2404{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302405 struct snd_soc_dapm_widget *widget =
2406 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302407 struct snd_soc_dapm_update *update = NULL;
2408
2409 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2410 ucontrol->value.integer.value[0]);
2411 if (ucontrol->value.integer.value[0])
2412 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2413 update);
2414 else
2415 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2416 update);
2417 int4_mi2s_switch_enable = ucontrol->value.integer.value[0];
2418 return 1;
2419}
2420
2421static int msm_routing_get_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2422 struct snd_ctl_elem_value *ucontrol)
2423{
2424 ucontrol->value.integer.value[0] = usb_switch_enable;
2425 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2426 ucontrol->value.integer.value[0]);
2427 return 0;
2428}
2429
2430static int msm_routing_put_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2431 struct snd_ctl_elem_value *ucontrol)
2432{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302433 struct snd_soc_dapm_widget *widget =
2434 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302435 struct snd_soc_dapm_update *update = NULL;
2436
2437 pr_debug("%s: USB Switch enable %ld\n", __func__,
2438 ucontrol->value.integer.value[0]);
2439 if (ucontrol->value.integer.value[0])
2440 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2441 1, update);
2442 else
2443 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2444 0, update);
2445 usb_switch_enable = ucontrol->value.integer.value[0];
2446 return 1;
2447}
2448
2449static int msm_routing_get_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2450 struct snd_ctl_elem_value *ucontrol)
2451{
2452 ucontrol->value.integer.value[0] = pri_mi2s_switch_enable;
2453 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2454 ucontrol->value.integer.value[0]);
2455 return 0;
2456}
2457
2458static int msm_routing_put_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2459 struct snd_ctl_elem_value *ucontrol)
2460{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302461 struct snd_soc_dapm_widget *widget =
2462 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302463 struct snd_soc_dapm_update *update = NULL;
2464
2465 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2466 ucontrol->value.integer.value[0]);
2467 if (ucontrol->value.integer.value[0])
2468 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2469 update);
2470 else
2471 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2472 update);
2473 pri_mi2s_switch_enable = ucontrol->value.integer.value[0];
2474 return 1;
2475}
2476
2477static int msm_routing_get_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2478 struct snd_ctl_elem_value *ucontrol)
2479{
2480 ucontrol->value.integer.value[0] = sec_mi2s_switch_enable;
2481 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2482 ucontrol->value.integer.value[0]);
2483 return 0;
2484}
2485
2486static int msm_routing_put_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2487 struct snd_ctl_elem_value *ucontrol)
2488{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302489 struct snd_soc_dapm_widget *widget =
2490 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302491 struct snd_soc_dapm_update *update = NULL;
2492
2493 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2494 ucontrol->value.integer.value[0]);
2495 if (ucontrol->value.integer.value[0])
2496 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2497 update);
2498 else
2499 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2500 update);
2501 sec_mi2s_switch_enable = ucontrol->value.integer.value[0];
2502 return 1;
2503}
2504
2505static int msm_routing_get_tert_mi2s_switch_mixer(
2506 struct snd_kcontrol *kcontrol,
2507 struct snd_ctl_elem_value *ucontrol)
2508{
2509 ucontrol->value.integer.value[0] = tert_mi2s_switch_enable;
2510 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2511 ucontrol->value.integer.value[0]);
2512 return 0;
2513}
2514
2515static int msm_routing_put_tert_mi2s_switch_mixer(
2516 struct snd_kcontrol *kcontrol,
2517 struct snd_ctl_elem_value *ucontrol)
2518{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302519 struct snd_soc_dapm_widget *widget =
2520 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302521 struct snd_soc_dapm_update *update = NULL;
2522
2523 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2524 ucontrol->value.integer.value[0]);
2525 if (ucontrol->value.integer.value[0])
2526 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2527 update);
2528 else
2529 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2530 update);
2531 tert_mi2s_switch_enable = ucontrol->value.integer.value[0];
2532 return 1;
2533}
2534
2535static int msm_routing_get_quat_mi2s_switch_mixer(
2536 struct snd_kcontrol *kcontrol,
2537 struct snd_ctl_elem_value *ucontrol)
2538{
2539 ucontrol->value.integer.value[0] = quat_mi2s_switch_enable;
2540 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2541 ucontrol->value.integer.value[0]);
2542 return 0;
2543}
2544
2545static int msm_routing_put_quat_mi2s_switch_mixer(
2546 struct snd_kcontrol *kcontrol,
2547 struct snd_ctl_elem_value *ucontrol)
2548{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302549 struct snd_soc_dapm_widget *widget =
2550 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302551 struct snd_soc_dapm_update *update = NULL;
2552
2553 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2554 ucontrol->value.integer.value[0]);
2555 if (ucontrol->value.integer.value[0])
2556 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2557 update);
2558 else
2559 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2560 update);
2561 quat_mi2s_switch_enable = ucontrol->value.integer.value[0];
2562 return 1;
2563}
2564
Rohit Kumara5077932017-09-10 22:05:05 +05302565static int msm_routing_get_quin_mi2s_switch_mixer(
2566 struct snd_kcontrol *kcontrol,
2567 struct snd_ctl_elem_value *ucontrol)
2568{
2569 ucontrol->value.integer.value[0] = quin_mi2s_switch_enable;
2570 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2571 ucontrol->value.integer.value[0]);
2572 return 0;
2573}
2574
2575static int msm_routing_put_quin_mi2s_switch_mixer(
2576 struct snd_kcontrol *kcontrol,
2577 struct snd_ctl_elem_value *ucontrol)
2578{
2579 struct snd_soc_dapm_widget *widget =
2580 snd_soc_dapm_kcontrol_widget(kcontrol);
2581 struct snd_soc_dapm_update *update = NULL;
2582
2583 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2584 ucontrol->value.integer.value[0]);
2585 if (ucontrol->value.integer.value[0])
2586 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2587 update);
2588 else
2589 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2590 update);
2591 quin_mi2s_switch_enable = ucontrol->value.integer.value[0];
2592 return 1;
2593}
2594
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302595static int msm_routing_get_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2596 struct snd_ctl_elem_value *ucontrol)
2597{
2598 ucontrol->value.integer.value[0] = fm_pcmrx_switch_enable;
2599 pr_debug("%s: FM Switch enable %ld\n", __func__,
2600 ucontrol->value.integer.value[0]);
2601 return 0;
2602}
2603
2604static int msm_routing_put_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2605 struct snd_ctl_elem_value *ucontrol)
2606{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302607 struct snd_soc_dapm_widget *widget =
2608 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302609 struct snd_soc_dapm_update *update = NULL;
2610
2611 pr_debug("%s: FM Switch enable %ld\n", __func__,
2612 ucontrol->value.integer.value[0]);
2613 if (ucontrol->value.integer.value[0])
2614 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2615 update);
2616 else
2617 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2618 update);
2619 fm_pcmrx_switch_enable = ucontrol->value.integer.value[0];
2620 return 1;
2621}
2622
2623static int msm_routing_lsm_port_get(struct snd_kcontrol *kcontrol,
2624 struct snd_ctl_elem_value *ucontrol)
2625{
2626 ucontrol->value.integer.value[0] = lsm_port_index;
2627 return 0;
2628}
2629
2630static int msm_routing_lsm_port_put(struct snd_kcontrol *kcontrol,
2631 struct snd_ctl_elem_value *ucontrol)
2632{
2633 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
2634 int mux = ucontrol->value.enumerated.item[0];
2635 int lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2636
2637 if (mux >= e->items) {
2638 pr_err("%s: Invalid mux value %d\n", __func__, mux);
2639 return -EINVAL;
2640 }
2641
2642 pr_debug("%s: LSM enable %ld\n", __func__,
2643 ucontrol->value.integer.value[0]);
2644 switch (ucontrol->value.integer.value[0]) {
2645 case 1:
2646 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_0_TX;
2647 break;
2648 case 2:
2649 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_1_TX;
2650 break;
2651 case 3:
2652 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_2_TX;
2653 break;
2654 case 4:
2655 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_3_TX;
2656 break;
2657 case 5:
2658 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_4_TX;
2659 break;
2660 case 6:
2661 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2662 break;
2663 case 7:
2664 lsm_port = AFE_PORT_ID_TERTIARY_MI2S_TX;
2665 break;
2666 case 8:
2667 lsm_port = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2668 break;
2669 case 9:
2670 lsm_port = ADM_LSM_PORT_ID;
2671 break;
2672 case 10:
2673 lsm_port = AFE_PORT_ID_INT3_MI2S_TX;
2674 break;
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +05302675 case 11:
2676 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
2677 break;
2678 case 12:
2679 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_1;
2680 break;
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302681 case 13:
2682 lsm_port = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
2683 break;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05302684 case 14:
2685 lsm_port = AFE_PORT_ID_QUINARY_TDM_TX;
2686 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302687 default:
2688 pr_err("Default lsm port");
2689 break;
2690 }
2691 set_lsm_port(lsm_port);
2692 lsm_port_index = ucontrol->value.integer.value[0];
2693
2694 return 0;
2695}
2696
2697static int msm_routing_lsm_func_get(struct snd_kcontrol *kcontrol,
2698 struct snd_ctl_elem_value *ucontrol)
2699{
2700 int i;
2701 u16 port_id;
2702 enum afe_mad_type mad_type;
2703
2704 pr_debug("%s: enter\n", __func__);
2705 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
2706 if (!strnstr(kcontrol->id.name, lsm_port_text[i],
2707 strlen(lsm_port_text[i])))
2708 break;
2709
2710 if (i-- == ARRAY_SIZE(lsm_port_text)) {
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07002711 pr_warn("%s: Invalid id name %s\n", __func__,
2712 kcontrol->id.name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302713 return -EINVAL;
2714 }
2715
2716 port_id = i * 2 + 1 + SLIMBUS_0_RX;
2717
2718 /*Check for Tertiary/Quaternary/INT3 TX port*/
2719 if (strnstr(kcontrol->id.name, lsm_port_text[7],
2720 strlen(lsm_port_text[7])))
2721 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
2722
2723 if (strnstr(kcontrol->id.name, lsm_port_text[8],
2724 strlen(lsm_port_text[8])))
2725 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2726
2727 if (strnstr(kcontrol->id.name, lsm_port_text[10],
2728 strlen(lsm_port_text[10])))
2729 port_id = AFE_PORT_ID_INT3_MI2S_TX;
2730
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302731 if (strnstr(kcontrol->id.name, lsm_port_text[13],
2732 strlen(lsm_port_text[13])))
2733 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
2734
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05302735 if (strnstr(kcontrol->id.name, lsm_port_text[14],
2736 strlen(lsm_port_text[14])))
2737 port_id = AFE_PORT_ID_QUINARY_TDM_TX;
2738
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302739 mad_type = afe_port_get_mad_type(port_id);
2740 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
2741 mad_type);
2742 switch (mad_type) {
2743 case MAD_HW_NONE:
2744 ucontrol->value.integer.value[0] = MADNONE;
2745 break;
2746 case MAD_HW_AUDIO:
2747 ucontrol->value.integer.value[0] = MADAUDIO;
2748 break;
2749 case MAD_HW_BEACON:
2750 ucontrol->value.integer.value[0] = MADBEACON;
2751 break;
2752 case MAD_HW_ULTRASOUND:
2753 ucontrol->value.integer.value[0] = MADULTRASOUND;
2754 break;
2755 case MAD_SW_AUDIO:
2756 ucontrol->value.integer.value[0] = MADSWAUDIO;
2757 break;
2758 default:
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07002759 pr_warn("%s: Unknown\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302760 return -EINVAL;
2761 }
2762 return 0;
2763}
2764
2765static int msm_routing_lsm_func_put(struct snd_kcontrol *kcontrol,
2766 struct snd_ctl_elem_value *ucontrol)
2767{
2768 int i;
2769 u16 port_id;
2770 enum afe_mad_type mad_type;
2771
2772 pr_debug("%s: enter\n", __func__);
2773 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
2774 if (strnstr(kcontrol->id.name, lsm_port_text[i],
2775 strlen(lsm_port_text[i])))
2776 break;
2777
2778 if (i-- == ARRAY_SIZE(lsm_port_text)) {
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07002779 pr_warn("%s: Invalid id name %s\n", __func__,
2780 kcontrol->id.name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302781 return -EINVAL;
2782 }
2783
2784 port_id = i * 2 + 1 + SLIMBUS_0_RX;
2785 switch (ucontrol->value.integer.value[0]) {
2786 case MADNONE:
2787 mad_type = MAD_HW_NONE;
2788 break;
2789 case MADAUDIO:
2790 mad_type = MAD_HW_AUDIO;
2791 break;
2792 case MADBEACON:
2793 mad_type = MAD_HW_BEACON;
2794 break;
2795 case MADULTRASOUND:
2796 mad_type = MAD_HW_ULTRASOUND;
2797 break;
2798 case MADSWAUDIO:
2799 mad_type = MAD_SW_AUDIO;
2800 break;
2801 default:
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07002802 pr_warn("%s: Unknown\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302803 return -EINVAL;
2804 }
2805
2806 /*Check for Tertiary/Quaternary/INT3 TX port*/
2807 if (strnstr(kcontrol->id.name, lsm_port_text[7],
2808 strlen(lsm_port_text[7])))
2809 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
2810
2811 if (strnstr(kcontrol->id.name, lsm_port_text[8],
2812 strlen(lsm_port_text[8])))
2813 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2814
2815 if (strnstr(kcontrol->id.name, lsm_port_text[10],
2816 strlen(lsm_port_text[10])))
2817 port_id = AFE_PORT_ID_INT3_MI2S_TX;
2818
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302819 if (strnstr(kcontrol->id.name, lsm_port_text[13],
2820 strlen(lsm_port_text[13])))
2821 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
2822
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05302823 if (strnstr(kcontrol->id.name, lsm_port_text[14],
2824 strlen(lsm_port_text[14])))
2825 port_id = AFE_PORT_ID_QUINARY_TDM_TX;
2826
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302827 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
2828 mad_type);
2829 return afe_port_set_mad_type(port_id, mad_type);
2830}
2831
2832static const char *const adm_override_chs_text[] = {"Zero", "One", "Two"};
2833
2834static SOC_ENUM_SINGLE_EXT_DECL(slim_7_rx_adm_override_chs,
2835 adm_override_chs_text);
2836
2837static int msm_routing_adm_get_backend_idx(struct snd_kcontrol *kcontrol)
2838{
2839 int backend_id;
2840
2841 if (strnstr(kcontrol->id.name, "SLIM7_RX", sizeof("SLIM7_RX"))) {
2842 backend_id = MSM_BACKEND_DAI_SLIMBUS_7_RX;
2843 } else {
2844 pr_err("%s: unsupported backend id: %s",
2845 __func__, kcontrol->id.name);
2846 return -EINVAL;
2847 }
2848
2849 return backend_id;
2850}
2851static int msm_routing_adm_channel_config_get(
2852 struct snd_kcontrol *kcontrol,
2853 struct snd_ctl_elem_value *ucontrol)
2854{
2855 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
2856
2857 if (backend_id >= 0) {
2858 mutex_lock(&routing_lock);
2859 ucontrol->value.integer.value[0] =
2860 msm_bedais[backend_id].adm_override_ch;
2861 pr_debug("%s: adm channel count %ld for BE:%d\n", __func__,
2862 ucontrol->value.integer.value[0], backend_id);
2863 mutex_unlock(&routing_lock);
2864 }
2865
2866 return 0;
2867}
2868
2869static int msm_routing_adm_channel_config_put(
2870 struct snd_kcontrol *kcontrol,
2871 struct snd_ctl_elem_value *ucontrol)
2872{
2873 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
2874
2875 if (backend_id >= 0) {
2876 mutex_lock(&routing_lock);
2877 msm_bedais[backend_id].adm_override_ch =
2878 ucontrol->value.integer.value[0];
2879 pr_debug("%s:updating BE :%d adm channels: %d\n",
2880 __func__, backend_id,
2881 msm_bedais[backend_id].adm_override_ch);
2882 mutex_unlock(&routing_lock);
2883 }
2884
2885 return 0;
2886}
2887
2888static const struct snd_kcontrol_new adm_channel_config_controls[] = {
2889 SOC_ENUM_EXT("SLIM7_RX ADM Channels", slim_7_rx_adm_override_chs,
2890 msm_routing_adm_channel_config_get,
2891 msm_routing_adm_channel_config_put),
2892};
2893
2894static int msm_routing_slim_0_rx_aanc_mux_get(struct snd_kcontrol *kcontrol,
2895 struct snd_ctl_elem_value *ucontrol)
2896{
2897
2898 mutex_lock(&routing_lock);
2899 ucontrol->value.integer.value[0] = slim0_rx_aanc_fb_port;
2900 mutex_unlock(&routing_lock);
2901 pr_debug("%s: AANC Mux Port %ld\n", __func__,
2902 ucontrol->value.integer.value[0]);
2903 return 0;
2904};
2905
2906static int msm_routing_slim_0_rx_aanc_mux_put(struct snd_kcontrol *kcontrol,
2907 struct snd_ctl_elem_value *ucontrol)
2908{
2909 struct aanc_data aanc_info;
2910
2911 mutex_lock(&routing_lock);
2912 memset(&aanc_info, 0x00, sizeof(aanc_info));
2913 pr_debug("%s: AANC Mux Port %ld\n", __func__,
2914 ucontrol->value.integer.value[0]);
2915 slim0_rx_aanc_fb_port = ucontrol->value.integer.value[0];
2916 if (ucontrol->value.integer.value[0] == 0) {
2917 aanc_info.aanc_active = false;
2918 aanc_info.aanc_tx_port = 0;
2919 aanc_info.aanc_rx_port = 0;
2920 } else {
2921 aanc_info.aanc_active = true;
2922 aanc_info.aanc_rx_port = SLIMBUS_0_RX;
2923 aanc_info.aanc_tx_port =
2924 (SLIMBUS_0_RX - 1 + (slim0_rx_aanc_fb_port * 2));
2925 }
2926 afe_set_aanc_info(&aanc_info);
2927 mutex_unlock(&routing_lock);
2928 return 0;
2929};
2930static int msm_routing_get_port_mixer(struct snd_kcontrol *kcontrol,
2931 struct snd_ctl_elem_value *ucontrol)
2932{
2933 int idx = 0, shift = 0;
2934 struct soc_mixer_control *mc =
2935 (struct soc_mixer_control *)kcontrol->private_value;
2936
Meng Wang05d5e9a2018-03-28 16:45:03 +08002937 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
2938 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302939
2940 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
2941 pr_err("%s: Invalid idx = %d\n", __func__, idx);
2942 return -EINVAL;
2943 }
2944
2945 if (test_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08002946 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302947 ucontrol->value.integer.value[0] = 1;
2948 else
2949 ucontrol->value.integer.value[0] = 0;
2950
Meng Wang05d5e9a2018-03-28 16:45:03 +08002951 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302952 ucontrol->value.integer.value[0]);
2953
2954 return 0;
2955}
2956
2957static int msm_routing_put_port_mixer(struct snd_kcontrol *kcontrol,
2958 struct snd_ctl_elem_value *ucontrol)
2959{
2960 int idx = 0, shift = 0;
2961 struct soc_mixer_control *mc =
2962 (struct soc_mixer_control *)kcontrol->private_value;
2963
Meng Wang05d5e9a2018-03-28 16:45:03 +08002964 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
2965 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302966
2967 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
2968 pr_err("%s: Invalid idx = %d\n", __func__, idx);
2969 return -EINVAL;
2970 }
2971
Meng Wang05d5e9a2018-03-28 16:45:03 +08002972 pr_debug("%s: shift 0x%x rshift 0x%x val %ld idx %d reminder shift %d\n",
2973 __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302974 ucontrol->value.integer.value[0], idx, shift);
2975
2976 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002977 afe_loopback(1, msm_bedais[mc->shift].port_id,
2978 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302979 set_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08002980 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302981 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002982 afe_loopback(0, msm_bedais[mc->shift].port_id,
2983 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302984 clear_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08002985 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302986 }
2987
2988 return 1;
2989}
2990
2991static int msm_pcm_get_channel_rule_index(struct snd_kcontrol *kcontrol,
2992 struct snd_ctl_elem_value *ucontrol)
2993{
2994 u16 fe_id = 0;
2995
2996 fe_id = ((struct soc_mixer_control *)
2997 kcontrol->private_value)->shift;
2998 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
2999 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3000 return -EINVAL;
3001 }
3002
3003 ucontrol->value.integer.value[0] = channel_mixer[fe_id].rule;
3004
3005 return 0;
3006}
3007
3008static int msm_pcm_put_channel_rule_index(struct snd_kcontrol *kcontrol,
3009 struct snd_ctl_elem_value *ucontrol)
3010{
3011 u16 fe_id = 0;
3012
3013 fe_id = ((struct soc_mixer_control *)
3014 kcontrol->private_value)->shift;
3015 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3016 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3017 return -EINVAL;
3018 }
3019
3020 channel_mixer[fe_id].rule = ucontrol->value.integer.value[0];
3021
3022 return 1;
3023}
3024
3025static int msm_pcm_get_out_chs(struct snd_kcontrol *kcontrol,
3026 struct snd_ctl_elem_value *ucontrol)
3027{
3028 u16 fe_id = 0;
3029
3030 fe_id = ((struct soc_multi_mixer_control *)
3031 kcontrol->private_value)->shift;
3032 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3033 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3034 return -EINVAL;
3035 }
3036
3037 ucontrol->value.integer.value[0] =
3038 channel_mixer[fe_id].output_channel;
3039 return 0;
3040}
3041
3042static int msm_pcm_put_out_chs(struct snd_kcontrol *kcontrol,
3043 struct snd_ctl_elem_value *ucontrol)
3044{
3045 u16 fe_id = 0;
3046
3047 fe_id = ((struct soc_multi_mixer_control *)
3048 kcontrol->private_value)->shift;
3049 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3050 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3051 return -EINVAL;
3052 }
3053
3054 pr_debug("%s: fe_id is %d, output channels = %d\n", __func__,
3055 fe_id,
3056 (unsigned int)(ucontrol->value.integer.value[0]));
3057 channel_mixer[fe_id].output_channel =
3058 (unsigned int)(ucontrol->value.integer.value[0]);
3059
3060 return 1;
3061}
3062
3063static const char *const ch_mixer[] = {"Disable", "Enable"};
3064
3065/* If new backend is added, need update this array */
3066static const char *const be_name[] = {
3067"ZERO", "PRI_I2S_RX", "PRI_I2S_TX", "SLIM_0_RX",
3068"SLIM_0_TX", "HDMI_RX", "INT_BT_SCO_RX", "INT_BT_SCO_TX",
3069"INT_FM_RX", "INT_FM_TX", "AFE_PCM_RX", "AFE_PCM_TX",
3070"AUXPCM_RX", "AUXPCM_TX", "VOICE_PLAYBACK_TX", "VOICE2_PLAYBACK_TX",
3071"INCALL_RECORD_RX", "INCALL_RECORD_TX", "MI2S_RX", "MI2S_TX",
3072"SEC_I2S_RX", "SLIM_1_RX", "SLIM_1_TX", "SLIM_2_RX",
3073"SLIM_2_TX", "SLIM_3_RX", "SLIM_3_TX", "SLIM_4_RX",
3074"SLIM_4_TX", "SLIM_5_RX", "SLIM_5_TX", "SLIM_6_RX",
3075"SLIM_6_TX", "SLIM_7_RX", "SLIM_7_TX", "SLIM_8_RX",
3076"SLIM_8_TX", "EXTPROC_RX", "EXTPROC_TX", "EXPROC_EC_TX",
3077"QUAT_MI2S_RX", "QUAT_MI2S_TX", "SECOND_MI2S_RX", "SECOND_MI2S_TX",
3078"PRI_MI2S_RX", "PRI_MI2S_TX", "TERT_MI2S_RX", "TERT_MI2S_TX",
Ralf Herzc8701f72018-06-20 11:37:35 +02003079"AUDIO_I2S_RX", "SEC_AUXPCM_RX", "SEC_AUXPCM_TX", "PRI_SPDIF_RX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303080"SECOND_MI2S_RX_SD1", "QUIN_MI2S_RX", "QUIN_MI2S_TX", "SENARY_MI2S_TX",
3081"PRI_TDM_RX_0", "PRI_TDM_TX_0", "PRI_TDM_RX_1", "PRI_TDM_TX_1",
3082"PRI_TDM_RX_2", "PRI_TDM_TX_2", "PRI_TDM_RX_3", "PRI_TDM_TX_3",
3083"PRI_TDM_RX_4", "PRI_TDM_TX_4", "PRI_TDM_RX_5", "PRI_TDM_TX_5",
3084"PRI_TDM_RX_6", "PRI_TDM_TX_6", "PRI_TDM_RX_7", "PRI_TDM_TX_7",
3085"SEC_TDM_RX_0", "SEC_TDM_TX_0", "SEC_TDM_RX_1", "SEC_TDM_TX_1",
3086"SEC_TDM_RX_2", "SEC_TDM_TX_2", "SEC_TDM_RX_3", "SEC_TDM_TX_3",
3087"SEC_TDM_RX_4", "SEC_TDM_TX_4", "SEC_TDM_RX_5", "SEC_TDM_TX_5",
3088"SEC_TDM_RX_6", "SEC_TDM_TX_6", "SEC_TDM_RX_7", "SEC_TDM_TX_7",
3089"TERT_TDM_RX_0", "TERT_TDM_TX_0", "TERT_TDM_RX_1", "TERT_TDM_TX_1",
3090"TERT_TDM_RX_2", "TERT_TDM_TX_2", "TERT_TDM_RX_3", "TERT_TDM_TX_3",
3091"TERT_TDM_RX_4", "TERT_TDM_TX_4", "TERT_TDM_RX_5", "TERT_TDM_TX_5",
3092"TERT_TDM_RX_6", "TERT_TDM_TX_6", "TERT_TDM_RX_7", "TERT_TDM_TX_7",
3093"QUAT_TDM_RX_0", "QUAT_TDM_TX_0", "QUAT_TDM_RX_1", "QUAT_TDM_TX_1",
3094"QUAT_TDM_RX_2", "QUAT_TDM_TX_2", "QUAT_TDM_RX_3", "QUAT_TDM_TX_3",
3095"QUAT_TDM_RX_4", "QUAT_TDM_TX_4", "QUAT_TDM_RX_5", "QUAT_TDM_TX_5",
3096"QUAT_TDM_RX_6", "QUAT_TDM_TX_6", "QUAT_TDM_RX_7", "QUAT_TDM_TX_7",
Rohit Kumara5077932017-09-10 22:05:05 +05303097"QUIN_TDM_RX_0", "QUIN_TDM_TX_0", "QUIN_TDM_RX_1", "QUIN_TDM_TX_1",
3098"QUIN_TDM_RX_2", "QUIN_TDM_TX_2", "QUIN_TDM_RX_3", "QUIN_TDM_TX_3",
3099"QUIN_TDM_RX_4", "QUIN_TDM_TX_4", "QUIN_TDM_RX_5", "QUIN_TDM_TX_5",
3100"QUIN_TDM_RX_6", "QUIN_TDM_TX_6", "QUIN_TDM_RX_7", "QUIN_TDM_TX_7",
Karthikeyan Mani57550082018-05-03 18:43:58 -07003101"INT_BT_A2DP_RX", "USB_RX", "USB_TX", "DISPLAY_PORT_RX", "DISPLAY_PORT_RX1",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303102"TERT_AUXPCM_RX", "TERT_AUXPCM_TX", "QUAT_AUXPCM_RX", "QUAT_AUXPCM_TX",
Rohit Kumara5077932017-09-10 22:05:05 +05303103"QUIN_AUXPCM_RX", "QUIN_AUXPCM_TX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303104"INT0_MI2S_RX", "INT0_MI2S_TX", "INT1_MI2S_RX", "INT1_MI2S_TX",
3105"INT2_MI2S_RX", "INT2_MI2S_TX", "INT3_MI2S_RX", "INT3_MI2S_TX",
3106"INT4_MI2S_RX", "INT4_MI2S_TX", "INT5_MI2S_RX", "INT5_MI2S_TX",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303107"INT6_MI2S_RX", "INT6_MI2S_TX", "WSA_CDC_DMA_RX_0",
3108"WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_RX_1", "WSA_CDC_DMA_TX_1",
Ralf Herzc8701f72018-06-20 11:37:35 +02003109"WSA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_1",
Aditya Bavanari1e84a932018-06-18 19:40:08 +05303110"RX_CDC_DMA_RX_0", "TX_CDC_DMA_TX_0", "RX_CDC_DMA_RX_1", "TX_CDC_DMA_TX_1",
3111"RX_CDC_DMA_RX_2", "TX_CDC_DMA_TX_2", "RX_CDC_DMA_RX_3", "TX_CDC_DMA_TX_3",
3112"RX_CDC_DMA_RX_4", "TX_CDC_DMA_TX_4", "RX_CDC_DMA_RX_5", "TX_CDC_DMA_TX_5",
3113"RX_CDC_DMA_RX_6", "RX_CDC_DMA_RX_7",
3114"PRI_SPDIF_TX", "SEC_SPDIF_RX", "SEC_SPDIF_TX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303115};
3116
3117static SOC_ENUM_SINGLE_DECL(mm1_channel_mux,
3118 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, ch_mixer);
3119static SOC_ENUM_SINGLE_DECL(mm2_channel_mux,
3120 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA2, ch_mixer);
3121static SOC_ENUM_SINGLE_DECL(mm3_channel_mux,
3122 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA3, ch_mixer);
3123static SOC_ENUM_SINGLE_DECL(mm4_channel_mux,
3124 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA4, ch_mixer);
3125
3126static SOC_ENUM_DOUBLE_DECL(mm1_ch1_enum,
3127 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 0, be_name);
3128static SOC_ENUM_DOUBLE_DECL(mm1_ch2_enum,
3129 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 1, be_name);
3130static SOC_ENUM_DOUBLE_DECL(mm1_ch3_enum,
3131 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 2, be_name);
3132static SOC_ENUM_DOUBLE_DECL(mm1_ch4_enum,
3133 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 3, be_name);
3134static SOC_ENUM_DOUBLE_DECL(mm1_ch5_enum,
3135 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 4, be_name);
3136static SOC_ENUM_DOUBLE_DECL(mm1_ch6_enum,
3137 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 5, be_name);
3138static SOC_ENUM_DOUBLE_DECL(mm1_ch7_enum,
3139 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 6, be_name);
3140static SOC_ENUM_DOUBLE_DECL(mm1_ch8_enum,
3141 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 7, be_name);
3142
3143static int msm_pcm_get_ctl_enum_info(struct snd_ctl_elem_info *uinfo,
3144 unsigned int channels,
3145 unsigned int items, const char *const names[])
3146{
3147 if (uinfo->value.enumerated.item >= items)
3148 uinfo->value.enumerated.item = items - 1;
3149
3150 WARN(strlen(names[uinfo->value.enumerated.item]) >=
3151 sizeof(uinfo->value.enumerated.name),
3152 "ALSA: too long item name '%s'\n",
3153 names[uinfo->value.enumerated.item]);
3154 strlcpy(uinfo->value.enumerated.name,
3155 names[uinfo->value.enumerated.item],
3156 sizeof(uinfo->value.enumerated.name));
3157 return 0;
3158}
3159
3160static int msm_pcm_channel_mixer_info(struct snd_kcontrol *kcontrol,
3161 struct snd_ctl_elem_info *uinfo)
3162{
3163 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3164
3165 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3166 uinfo->count = 1;
3167
3168 uinfo->value.enumerated.items = ARRAY_SIZE(ch_mixer);
3169 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3170
3171 return 0;
3172}
3173static int msm_pcm_channel_mixer_get(struct snd_kcontrol *kcontrol,
3174 struct snd_ctl_elem_value *ucontrol)
3175{
3176 u16 fe_id = 0;
3177
3178 fe_id = ((struct soc_enum *)
3179 kcontrol->private_value)->shift_l;
3180 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3181 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3182 return -EINVAL;
3183 }
3184
3185 pr_debug("%s: FE %d %s\n", __func__,
3186 fe_id,
3187 channel_mixer[fe_id].enable ? "Enabled" : "Disabled");
3188 ucontrol->value.enumerated.item[0] = channel_mixer[fe_id].enable;
3189 return 0;
3190}
3191
3192static int msm_pcm_channel_mixer_put(struct snd_kcontrol *kcontrol,
3193 struct snd_ctl_elem_value *ucontrol)
3194{
3195 u16 fe_id = 0;
3196
3197 fe_id = ((struct soc_enum *)
3198 kcontrol->private_value)->shift_l;
3199 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3200 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3201 return -EINVAL;
3202 }
3203
3204 channel_mixer[fe_id].enable = ucontrol->value.enumerated.item[0];
3205 pr_debug("%s: %s FE %d\n", __func__,
3206 channel_mixer[fe_id].enable ? "Enable" : "Disable",
3207 fe_id);
3208 return 0;
3209}
3210
3211static int msm_pcm_channel_input_be_info(struct snd_kcontrol *kcontrol,
3212 struct snd_ctl_elem_info *uinfo)
3213{
3214 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3215
3216 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3217 uinfo->count = 1;
3218
3219 uinfo->value.enumerated.items = ARRAY_SIZE(be_name);
3220 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3221
3222 return 0;
3223}
3224
3225static int msm_pcm_channel_input_be_put(struct snd_kcontrol *kcontrol,
3226 struct snd_ctl_elem_value *ucontrol)
3227{
3228 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3229 u16 fe_id = 0, in_ch = 0;
3230
3231 fe_id = e->shift_l;
3232 in_ch = e->shift_r;
3233 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3234 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3235 return -EINVAL;
3236 }
3237 if (in_ch >= ADM_MAX_CHANNELS) {
3238 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3239 return -EINVAL;
3240 }
3241
3242 channel_input[fe_id][in_ch] = ucontrol->value.enumerated.item[0];
3243 return 1;
3244}
3245
3246static int msm_pcm_channel_input_be_get(struct snd_kcontrol *kcontrol,
3247 struct snd_ctl_elem_value *ucontrol)
3248{
3249 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3250 u16 fe_id = 0, in_ch = 0;
3251
3252 fe_id = e->shift_l;
3253 in_ch = e->shift_r;
3254 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3255 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3256 return -EINVAL;
3257 }
3258 if (in_ch >= ADM_MAX_CHANNELS) {
3259 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3260 return -EINVAL;
3261 }
3262
3263 ucontrol->value.enumerated.item[0] = channel_input[fe_id][in_ch];
3264 return 1;
3265}
3266
3267
3268static int msm_pcm_channel_weight_info(struct snd_kcontrol *kcontrol,
3269 struct snd_ctl_elem_info *uinfo)
3270{
3271 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
3272 uinfo->count = ADM_MAX_CHANNELS;
3273 uinfo->value.integer.min = 0;
3274 uinfo->value.integer.max = WEIGHT_0_DB;
3275
3276 return 0;
3277}
3278
3279static int msm_pcm_channel_weight_put(struct snd_kcontrol *kcontrol,
3280 struct snd_ctl_elem_value *ucontrol)
3281{
3282 u16 fe_id = 0, out_ch = 0;
3283 int i, weight;
3284
3285 fe_id = ((struct soc_multi_mixer_control *)
3286 kcontrol->private_value)->shift;
3287 out_ch = ((struct soc_multi_mixer_control *)
3288 kcontrol->private_value)->rshift;
3289 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3290 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3291 return -EINVAL;
3292 }
3293 if (out_ch >= ADM_MAX_CHANNELS) {
3294 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3295 return -EINVAL;
3296 }
3297
3298 pr_debug("%s: FE_ID: %d, channel weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld\n",
3299 __func__, fe_id,
3300 ucontrol->value.integer.value[0],
3301 ucontrol->value.integer.value[1],
3302 ucontrol->value.integer.value[2],
3303 ucontrol->value.integer.value[3],
3304 ucontrol->value.integer.value[4],
3305 ucontrol->value.integer.value[5],
3306 ucontrol->value.integer.value[6],
3307 ucontrol->value.integer.value[7]);
3308
3309 for (i = 0; i < ADM_MAX_CHANNELS; ++i) {
3310 weight = ucontrol->value.integer.value[i];
3311 channel_mixer[fe_id].channel_weight[out_ch][i] = weight;
3312 pr_debug("%s: FE_ID %d, output %d input %d weight %d\n",
3313 __func__, fe_id, out_ch, i,
3314 channel_mixer[fe_id].channel_weight[out_ch][i]);
3315 }
3316
3317 return 0;
3318}
3319
3320static int msm_pcm_channel_weight_get(struct snd_kcontrol *kcontrol,
3321 struct snd_ctl_elem_value *ucontrol)
3322{
3323 u16 fe_id = 0, out_ch = 0;
3324 int i;
3325
3326 fe_id = ((struct soc_multi_mixer_control *)
3327 kcontrol->private_value)->shift;
3328 out_ch = ((struct soc_multi_mixer_control *)
3329 kcontrol->private_value)->rshift;
3330 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3331 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3332 return -EINVAL;
3333 }
3334 if (out_ch >= ADM_MAX_CHANNELS) {
3335 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3336 return -EINVAL;
3337 }
3338
3339 for (i = 0; i < ADM_MAX_CHANNELS; ++i)
3340 ucontrol->value.integer.value[i] =
3341 channel_mixer[fe_id].channel_weight[out_ch][i];
3342
3343 pr_debug("%s: FE_ID: %d, weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld",
3344 __func__, fe_id,
3345 ucontrol->value.integer.value[0],
3346 ucontrol->value.integer.value[1],
3347 ucontrol->value.integer.value[2],
3348 ucontrol->value.integer.value[3],
3349 ucontrol->value.integer.value[4],
3350 ucontrol->value.integer.value[5],
3351 ucontrol->value.integer.value[6],
3352 ucontrol->value.integer.value[7]);
3353
3354 return 0;
3355}
3356
3357static const struct snd_kcontrol_new channel_mixer_controls[] = {
3358 SOC_SINGLE_EXT("MultiMedia1 Channel Rule", SND_SOC_NOPM,
3359 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3360 msm_pcm_get_channel_rule_index,
3361 msm_pcm_put_channel_rule_index),
3362 SOC_SINGLE_EXT("MultiMedia2 Channel Rule", SND_SOC_NOPM,
3363 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3364 msm_pcm_get_channel_rule_index,
3365 msm_pcm_put_channel_rule_index),
3366 SOC_SINGLE_EXT("MultiMedia3 Channel Rule", SND_SOC_NOPM,
3367 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3368 msm_pcm_get_channel_rule_index,
3369 msm_pcm_put_channel_rule_index),
3370 SOC_SINGLE_EXT("MultiMedia4 Channel Rule", SND_SOC_NOPM,
3371 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3372 msm_pcm_get_channel_rule_index,
3373 msm_pcm_put_channel_rule_index),
3374 SOC_SINGLE_EXT("MultiMedia5 Channel Rule", SND_SOC_NOPM,
3375 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3376 msm_pcm_get_channel_rule_index,
3377 msm_pcm_put_channel_rule_index),
3378 SOC_SINGLE_EXT("MultiMedia6 Channel Rule", SND_SOC_NOPM,
3379 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3380 msm_pcm_get_channel_rule_index,
3381 msm_pcm_put_channel_rule_index),
3382
3383 SOC_SINGLE_EXT("MultiMedia1 Channels", SND_SOC_NOPM,
3384 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3385 msm_pcm_get_out_chs,
3386 msm_pcm_put_out_chs),
3387 SOC_SINGLE_EXT("MultiMedia2 Channels", SND_SOC_NOPM,
3388 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3389 msm_pcm_get_out_chs,
3390 msm_pcm_put_out_chs),
3391 SOC_SINGLE_EXT("MultiMedia3 Channels", SND_SOC_NOPM,
3392 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3393 msm_pcm_get_out_chs,
3394 msm_pcm_put_out_chs),
3395 SOC_SINGLE_EXT("MultiMedia4 Channels", SND_SOC_NOPM,
3396 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3397 msm_pcm_get_out_chs,
3398 msm_pcm_put_out_chs),
3399 SOC_SINGLE_EXT("MultiMedia5 Channels", SND_SOC_NOPM,
3400 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3401 msm_pcm_get_out_chs,
3402 msm_pcm_put_out_chs),
3403 SOC_SINGLE_EXT("MultiMedia6 Channels", SND_SOC_NOPM,
3404 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3405 msm_pcm_get_out_chs,
3406 msm_pcm_put_out_chs),
3407 {
3408 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3409 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3410 .name = "MultiMedia1 Channel Mixer",
3411 .info = msm_pcm_channel_mixer_info,
3412 .get = msm_pcm_channel_mixer_get,
3413 .put = msm_pcm_channel_mixer_put,
3414 .private_value = (unsigned long)&(mm1_channel_mux)
3415 },
3416 {
3417 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3418 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3419 .name = "MultiMedia2 Channel Mixer",
3420 .info = msm_pcm_channel_mixer_info,
3421 .get = msm_pcm_channel_mixer_get,
3422 .put = msm_pcm_channel_mixer_put,
3423 .private_value = (unsigned long)&(mm2_channel_mux)
3424 },
3425 {
3426 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3427 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3428 .name = "MultiMedia3 Channel Mixer",
3429 .info = msm_pcm_channel_mixer_info,
3430 .get = msm_pcm_channel_mixer_get,
3431 .put = msm_pcm_channel_mixer_put,
3432 .private_value = (unsigned long)&(mm3_channel_mux)
3433 },
3434 {
3435 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3436 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3437 .name = "MultiMedia4 Channel Mixer",
3438 .info = msm_pcm_channel_mixer_info,
3439 .get = msm_pcm_channel_mixer_get,
3440 .put = msm_pcm_channel_mixer_put,
3441 .private_value = (unsigned long)&(mm4_channel_mux)
3442 },
3443 {
3444 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3445 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3446 .name = "MultiMedia1 Output Channel1",
3447 .info = msm_pcm_channel_weight_info,
3448 .get = msm_pcm_channel_weight_get,
3449 .put = msm_pcm_channel_weight_put,
3450 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3451 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 0,}
3452 },
3453 {
3454 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3455 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3456 .name = "MultiMedia1 Output Channel2",
3457 .info = msm_pcm_channel_weight_info,
3458 .get = msm_pcm_channel_weight_get,
3459 .put = msm_pcm_channel_weight_put,
3460 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3461 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 1, }
3462 },
3463 {
3464 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3465 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3466 .name = "MultiMedia1 Output Channel3",
3467 .info = msm_pcm_channel_weight_info,
3468 .get = msm_pcm_channel_weight_get,
3469 .put = msm_pcm_channel_weight_put,
3470 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3471 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 2,}
3472 },
3473 {
3474 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3475 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3476 .name = "MultiMedia1 Output Channel4",
3477 .info = msm_pcm_channel_weight_info,
3478 .get = msm_pcm_channel_weight_get,
3479 .put = msm_pcm_channel_weight_put,
3480 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3481 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 3,}
3482 },
3483 {
3484 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3485 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3486 .name = "MultiMedia1 Output Channel5",
3487 .info = msm_pcm_channel_weight_info,
3488 .get = msm_pcm_channel_weight_get,
3489 .put = msm_pcm_channel_weight_put,
3490 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3491 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 4,}
3492 },
3493 {
3494 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3495 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3496 .name = "MultiMedia1 Output Channel6",
3497 .info = msm_pcm_channel_weight_info,
3498 .get = msm_pcm_channel_weight_get,
3499 .put = msm_pcm_channel_weight_put,
3500 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3501 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 5,}
3502 },
3503 {
3504 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3505 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3506 .name = "MultiMedia1 Output Channel7",
3507 .info = msm_pcm_channel_weight_info,
3508 .get = msm_pcm_channel_weight_get,
3509 .put = msm_pcm_channel_weight_put,
3510 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3511 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 6,}
3512 },
3513 {
3514 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3515 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3516 .name = "MultiMedia1 Output Channel8",
3517 .info = msm_pcm_channel_weight_info,
3518 .get = msm_pcm_channel_weight_get,
3519 .put = msm_pcm_channel_weight_put,
3520 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3521 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 7,}
3522 },
3523 {
3524 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3525 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3526 .name = "MultiMedia2 Output Channel1",
3527 .info = msm_pcm_channel_weight_info,
3528 .get = msm_pcm_channel_weight_get,
3529 .put = msm_pcm_channel_weight_put,
3530 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3531 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 0,}
3532 },
3533 {
3534 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3535 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3536 .name = "MultiMedia2 Output Channel2",
3537 .info = msm_pcm_channel_weight_info,
3538 .get = msm_pcm_channel_weight_get,
3539 .put = msm_pcm_channel_weight_put,
3540 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3541 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 1,}
3542 },
3543 {
3544 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3545 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3546 .name = "MultiMedia2 Output Channel3",
3547 .info = msm_pcm_channel_weight_info,
3548 .get = msm_pcm_channel_weight_get,
3549 .put = msm_pcm_channel_weight_put,
3550 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3551 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 2,}
3552 },
3553 {
3554 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3555 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3556 .name = "MultiMedia3 Output Channel1",
3557 .info = msm_pcm_channel_weight_info,
3558 .get = msm_pcm_channel_weight_get,
3559 .put = msm_pcm_channel_weight_put,
3560 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3561 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 0,}
3562 },
3563 {
3564 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3565 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3566 .name = "MultiMedia3 Output Channel2",
3567 .info = msm_pcm_channel_weight_info,
3568 .get = msm_pcm_channel_weight_get,
3569 .put = msm_pcm_channel_weight_put,
3570 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3571 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 1,}
3572 },
3573 {
3574 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3575 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3576 .name = "MultiMedia1 Channel1",
3577 .info = msm_pcm_channel_input_be_info,
3578 .get = msm_pcm_channel_input_be_get,
3579 .put = msm_pcm_channel_input_be_put,
3580 .private_value = (unsigned long)&(mm1_ch1_enum)
3581 },
3582 {
3583 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3584 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3585 .name = "MultiMedia1 Channel2",
3586 .info = msm_pcm_channel_input_be_info,
3587 .get = msm_pcm_channel_input_be_get,
3588 .put = msm_pcm_channel_input_be_put,
3589 .private_value = (unsigned long)&(mm1_ch2_enum)
3590 },
3591 {
3592 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3593 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3594 .name = "MultiMedia1 Channel3",
3595 .info = msm_pcm_channel_input_be_info,
3596 .get = msm_pcm_channel_input_be_get,
3597 .put = msm_pcm_channel_input_be_put,
3598 .private_value = (unsigned long)&(mm1_ch3_enum)
3599 },
3600 {
3601 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3602 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3603 .name = "MultiMedia1 Channel4",
3604 .info = msm_pcm_channel_input_be_info,
3605 .get = msm_pcm_channel_input_be_get,
3606 .put = msm_pcm_channel_input_be_put,
3607 .private_value = (unsigned long)&(mm1_ch4_enum)
3608 },
3609 {
3610 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3611 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3612 .name = "MultiMedia1 Channel5",
3613 .info = msm_pcm_channel_input_be_info,
3614 .get = msm_pcm_channel_input_be_get,
3615 .put = msm_pcm_channel_input_be_put,
3616 .private_value = (unsigned long)&(mm1_ch5_enum)
3617 },
3618 {
3619 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3620 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3621 .name = "MultiMedia1 Channel6",
3622 .info = msm_pcm_channel_input_be_info,
3623 .get = msm_pcm_channel_input_be_get,
3624 .put = msm_pcm_channel_input_be_put,
3625 .private_value = (unsigned long)&(mm1_ch6_enum)
3626 },
3627 {
3628 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3629 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3630 .name = "MultiMedia1 Channel7",
3631 .info = msm_pcm_channel_input_be_info,
3632 .get = msm_pcm_channel_input_be_get,
3633 .put = msm_pcm_channel_input_be_put,
3634 .private_value = (unsigned long)&(mm1_ch7_enum)
3635 },
3636 {
3637 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3638 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3639 .name = "MultiMedia1 Channel8",
3640 .info = msm_pcm_channel_input_be_info,
3641 .get = msm_pcm_channel_input_be_get,
3642 .put = msm_pcm_channel_input_be_put,
3643 .private_value = (unsigned long)&(mm1_ch8_enum)
3644 },
3645};
3646static int msm_ec_ref_ch_get(struct snd_kcontrol *kcontrol,
3647 struct snd_ctl_elem_value *ucontrol)
3648{
3649 ucontrol->value.integer.value[0] = msm_ec_ref_ch;
3650 pr_debug("%s: msm_ec_ref_ch = %ld\n", __func__,
3651 ucontrol->value.integer.value[0]);
3652 return 0;
3653}
3654
3655static int msm_ec_ref_ch_put(struct snd_kcontrol *kcontrol,
3656 struct snd_ctl_elem_value *ucontrol)
3657{
3658 msm_ec_ref_ch = ucontrol->value.integer.value[0];
3659 pr_debug("%s: msm_ec_ref_ch = %d\n", __func__, msm_ec_ref_ch);
3660 adm_num_ec_ref_rx_chans(msm_ec_ref_ch);
3661 return 0;
3662}
3663
3664static const char *const ec_ref_ch_text[] = {"Zero", "One", "Two", "Three",
3665 "Four", "Five", "Six", "Seven", "Eight"};
3666
3667static int msm_ec_ref_bit_format_get(struct snd_kcontrol *kcontrol,
3668 struct snd_ctl_elem_value *ucontrol)
3669{
3670 switch (msm_ec_ref_bit_format) {
3671 case SNDRV_PCM_FORMAT_S24_LE:
3672 ucontrol->value.integer.value[0] = 2;
3673 break;
3674 case SNDRV_PCM_FORMAT_S16_LE:
3675 ucontrol->value.integer.value[0] = 1;
3676 break;
3677 default:
3678 ucontrol->value.integer.value[0] = 0;
3679 break;
3680 }
3681 pr_debug("%s: msm_ec_ref_bit_format = %ld\n",
3682 __func__, ucontrol->value.integer.value[0]);
3683 return 0;
3684}
3685
3686static int msm_ec_ref_bit_format_put(struct snd_kcontrol *kcontrol,
3687 struct snd_ctl_elem_value *ucontrol)
3688{
3689 u16 bit_width = 0;
3690
3691 switch (ucontrol->value.integer.value[0]) {
3692 case 2:
3693 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S24_LE;
3694 break;
3695 case 1:
3696 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
3697 break;
3698 default:
3699 msm_ec_ref_bit_format = 0;
3700 break;
3701 }
3702
3703 if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S16_LE)
3704 bit_width = 16;
3705 else if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S24_LE)
3706 bit_width = 24;
3707
3708 pr_debug("%s: msm_ec_ref_bit_format = %d\n",
3709 __func__, msm_ec_ref_bit_format);
3710 adm_ec_ref_rx_bit_width(bit_width);
3711 return 0;
3712}
3713
3714static char const *ec_ref_bit_format_text[] = {"0", "S16_LE", "S24_LE"};
3715
3716static int msm_ec_ref_rate_get(struct snd_kcontrol *kcontrol,
3717 struct snd_ctl_elem_value *ucontrol)
3718{
3719 ucontrol->value.integer.value[0] = msm_ec_ref_sampling_rate;
3720 pr_debug("%s: msm_ec_ref_sampling_rate = %ld\n",
3721 __func__, ucontrol->value.integer.value[0]);
3722 return 0;
3723}
3724
3725static int msm_ec_ref_rate_put(struct snd_kcontrol *kcontrol,
3726 struct snd_ctl_elem_value *ucontrol)
3727{
3728 switch (ucontrol->value.integer.value[0]) {
3729 case 0:
3730 msm_ec_ref_sampling_rate = 0;
3731 break;
3732 case 1:
3733 msm_ec_ref_sampling_rate = 8000;
3734 break;
3735 case 2:
3736 msm_ec_ref_sampling_rate = 16000;
3737 break;
3738 case 3:
3739 msm_ec_ref_sampling_rate = 32000;
3740 break;
3741 case 4:
3742 msm_ec_ref_sampling_rate = 44100;
3743 break;
3744 case 5:
3745 msm_ec_ref_sampling_rate = 48000;
3746 break;
3747 case 6:
3748 msm_ec_ref_sampling_rate = 96000;
3749 break;
3750 case 7:
3751 msm_ec_ref_sampling_rate = 192000;
3752 break;
3753 case 8:
3754 msm_ec_ref_sampling_rate = 384000;
3755 break;
3756 default:
3757 msm_ec_ref_sampling_rate = 48000;
3758 break;
3759 }
3760 pr_debug("%s: msm_ec_ref_sampling_rate = %d\n",
3761 __func__, msm_ec_ref_sampling_rate);
3762 adm_ec_ref_rx_sampling_rate(msm_ec_ref_sampling_rate);
3763 return 0;
3764}
3765
3766static const char *const ec_ref_rate_text[] = {"0", "8000", "16000",
3767 "32000", "44100", "48000", "96000", "192000", "384000"};
3768
3769static const struct soc_enum msm_route_ec_ref_params_enum[] = {
3770 SOC_ENUM_SINGLE_EXT(9, ec_ref_ch_text),
3771 SOC_ENUM_SINGLE_EXT(3, ec_ref_bit_format_text),
3772 SOC_ENUM_SINGLE_EXT(9, ec_ref_rate_text),
3773};
3774
3775static const struct snd_kcontrol_new ec_ref_param_controls[] = {
3776 SOC_ENUM_EXT("EC Reference Channels", msm_route_ec_ref_params_enum[0],
3777 msm_ec_ref_ch_get, msm_ec_ref_ch_put),
3778 SOC_ENUM_EXT("EC Reference Bit Format", msm_route_ec_ref_params_enum[1],
3779 msm_ec_ref_bit_format_get, msm_ec_ref_bit_format_put),
3780 SOC_ENUM_EXT("EC Reference SampleRate", msm_route_ec_ref_params_enum[2],
3781 msm_ec_ref_rate_get, msm_ec_ref_rate_put),
3782};
3783
3784static int msm_routing_ec_ref_rx_get(struct snd_kcontrol *kcontrol,
3785 struct snd_ctl_elem_value *ucontrol)
3786{
3787 pr_debug("%s: ec_ref_rx = %d", __func__, msm_route_ec_ref_rx);
3788 mutex_lock(&routing_lock);
3789 ucontrol->value.integer.value[0] = msm_route_ec_ref_rx;
3790 mutex_unlock(&routing_lock);
3791 return 0;
3792}
3793
3794static int msm_routing_ec_ref_rx_put(struct snd_kcontrol *kcontrol,
3795 struct snd_ctl_elem_value *ucontrol)
3796{
3797 int ec_ref_port_id;
Asish Bhattacharya34504582017-08-08 12:55:01 +05303798 struct snd_soc_dapm_widget *widget =
3799 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303800 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3801 struct snd_soc_dapm_update *update = NULL;
3802
3803
3804 mutex_lock(&routing_lock);
3805 switch (ucontrol->value.integer.value[0]) {
3806 case 0:
3807 msm_route_ec_ref_rx = 0;
3808 ec_ref_port_id = AFE_PORT_INVALID;
3809 break;
3810 case 1:
3811 msm_route_ec_ref_rx = 1;
3812 ec_ref_port_id = SLIMBUS_0_RX;
3813 break;
3814 case 2:
3815 msm_route_ec_ref_rx = 2;
3816 ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_RX;
3817 break;
3818 case 3:
3819 msm_route_ec_ref_rx = 3;
3820 ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
3821 break;
3822 case 4:
3823 msm_route_ec_ref_rx = 4;
3824 ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
3825 break;
3826 case 5:
3827 msm_route_ec_ref_rx = 5;
3828 ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
3829 break;
3830 case 6:
3831 msm_route_ec_ref_rx = 6;
3832 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
3833 break;
3834 case 7:
3835 msm_route_ec_ref_rx = 7;
3836 ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_RX;
3837 break;
3838 case 9:
3839 msm_route_ec_ref_rx = 9;
3840 ec_ref_port_id = SLIMBUS_5_RX;
3841 break;
3842 case 10:
3843 msm_route_ec_ref_rx = 10;
3844 ec_ref_port_id = SLIMBUS_1_TX;
3845 break;
3846 case 11:
3847 msm_route_ec_ref_rx = 11;
3848 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_TX_1;
3849 break;
3850 case 12:
3851 msm_route_ec_ref_rx = 12;
3852 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX;
3853 break;
3854 case 13:
3855 msm_route_ec_ref_rx = 13;
3856 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_1;
3857 break;
3858 case 14:
3859 msm_route_ec_ref_rx = 14;
3860 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_2;
3861 break;
3862 case 15:
3863 msm_route_ec_ref_rx = 15;
3864 ec_ref_port_id = SLIMBUS_6_RX;
3865 break;
3866 case 16:
3867 msm_route_ec_ref_rx = 16;
3868 ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_RX;
3869 break;
3870 case 17:
3871 msm_route_ec_ref_rx = 17;
3872 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_RX;
3873 break;
3874 case 18:
3875 msm_route_ec_ref_rx = 18;
3876 ec_ref_port_id = AFE_PORT_ID_TERTIARY_TDM_TX;
3877 break;
3878 case 19:
3879 msm_route_ec_ref_rx = 19;
3880 ec_ref_port_id = AFE_PORT_ID_USB_RX;
3881 break;
3882 case 20:
3883 msm_route_ec_ref_rx = 20;
3884 ec_ref_port_id = AFE_PORT_ID_INT0_MI2S_RX;
3885 break;
3886 case 21:
3887 msm_route_ec_ref_rx = 21;
3888 ec_ref_port_id = AFE_PORT_ID_INT4_MI2S_RX;
3889 break;
3890 case 22:
3891 msm_route_ec_ref_rx = 22;
3892 ec_ref_port_id = AFE_PORT_ID_INT3_MI2S_TX;
3893 break;
Aalique Grahamee4fd7d52017-11-28 13:24:13 -08003894 case 23:
3895 msm_route_ec_ref_rx = 23;
3896 ec_ref_port_id = AFE_PORT_ID_HDMI_OVER_DP_RX;
3897 break;
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303898 case 24:
3899 msm_route_ec_ref_rx = 24;
3900 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_0;
3901 break;
3902 case 25:
3903 msm_route_ec_ref_rx = 25;
3904 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_1;
3905 break;
3906 case 26:
3907 msm_route_ec_ref_rx = 26;
3908 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_0;
3909 break;
3910 case 27:
3911 msm_route_ec_ref_rx = 27;
3912 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_1;
3913 break;
3914 case 28:
3915 msm_route_ec_ref_rx = 28;
3916 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_2;
3917 break;
Zhou Songb167db12018-07-02 17:14:00 +08003918 case 29:
3919 msm_route_ec_ref_rx = 29;
3920 ec_ref_port_id = SLIMBUS_7_RX;
3921 break;
Aditya Bavanari1e84a932018-06-18 19:40:08 +05303922 case 30:
3923 msm_route_ec_ref_rx = 30;
3924 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_0;
3925 break;
3926 case 31:
3927 msm_route_ec_ref_rx = 31;
3928 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_1;
3929 break;
3930 case 32:
3931 msm_route_ec_ref_rx = 32;
3932 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_2;
3933 break;
3934 case 33:
3935 msm_route_ec_ref_rx = 33;
3936 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_3;
3937 break;
3938 case 34:
3939 msm_route_ec_ref_rx = 34;
3940 ec_ref_port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_0;
3941 break;
Derek Chen2bb55772018-10-24 00:17:15 -07003942 case 35:
3943 msm_route_ec_ref_rx = 35;
3944 ec_ref_port_id = AFE_PORT_ID_TERTIARY_TDM_RX_2;
3945 break;
3946 case 36:
3947 msm_route_ec_ref_rx = 36;
3948 ec_ref_port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
3949 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303950 default:
3951 msm_route_ec_ref_rx = 0; /* NONE */
3952 pr_err("%s EC ref rx %ld not valid\n",
3953 __func__, ucontrol->value.integer.value[0]);
3954 ec_ref_port_id = AFE_PORT_INVALID;
3955 break;
3956 }
Surendar Karkae7507512018-07-20 15:46:54 +05303957 msm_ec_ref_port_id = ec_ref_port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303958 adm_ec_ref_rx_id(ec_ref_port_id);
3959 pr_debug("%s: msm_route_ec_ref_rx = %d\n",
3960 __func__, msm_route_ec_ref_rx);
3961 mutex_unlock(&routing_lock);
3962 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol,
3963 msm_route_ec_ref_rx, e, update);
3964 return 0;
3965}
3966
3967static const char *const ec_ref_rx[] = { "None", "SLIM_RX", "I2S_RX",
3968 "PRI_MI2S_TX", "SEC_MI2S_TX",
3969 "TERT_MI2S_TX", "QUAT_MI2S_TX", "SEC_I2S_RX", "PROXY_RX",
3970 "SLIM_5_RX", "SLIM_1_TX", "QUAT_TDM_TX_1",
3971 "QUAT_TDM_RX_0", "QUAT_TDM_RX_1", "QUAT_TDM_RX_2", "SLIM_6_RX",
3972 "TERT_MI2S_RX", "QUAT_MI2S_RX", "TERT_TDM_TX_0", "USB_AUDIO_RX",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303973 "INT0_MI2S_RX", "INT4_MI2S_RX", "INT3_MI2S_TX", "DISPLAY_PORT",
3974 "WSA_CDC_DMA_RX_0", "WSA_CDC_DMA_RX_1",
Zhou Songb167db12018-07-02 17:14:00 +08003975 "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_2",
Aditya Bavanari1e84a932018-06-18 19:40:08 +05303976 "SLIM_7_RX", "RX_CDC_DMA_RX_0", "RX_CDC_DMA_RX_1", "RX_CDC_DMA_RX_2",
Derek Chen2bb55772018-10-24 00:17:15 -07003977 "RX_CDC_DMA_RX_3", "TX_CDC_DMA_TX_0", "TERT_TDM_RX_2", "SEC_TDM_TX_0",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303978};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303979
3980static const struct soc_enum msm_route_ec_ref_rx_enum[] = {
3981 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_rx), ec_ref_rx),
3982};
3983
3984static const struct snd_kcontrol_new ext_ec_ref_mux_ul1 =
3985 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL1 MUX Mux",
3986 msm_route_ec_ref_rx_enum[0],
3987 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3988
3989static const struct snd_kcontrol_new ext_ec_ref_mux_ul2 =
3990 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL2 MUX Mux",
3991 msm_route_ec_ref_rx_enum[0],
3992 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3993
3994static const struct snd_kcontrol_new ext_ec_ref_mux_ul3 =
3995 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL3 MUX Mux",
3996 msm_route_ec_ref_rx_enum[0],
3997 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3998
3999static const struct snd_kcontrol_new ext_ec_ref_mux_ul4 =
4000 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL4 MUX Mux",
4001 msm_route_ec_ref_rx_enum[0],
4002 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4003
4004static const struct snd_kcontrol_new ext_ec_ref_mux_ul5 =
4005 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL5 MUX Mux",
4006 msm_route_ec_ref_rx_enum[0],
4007 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4008
4009static const struct snd_kcontrol_new ext_ec_ref_mux_ul6 =
4010 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL6 MUX Mux",
4011 msm_route_ec_ref_rx_enum[0],
4012 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4013
4014static const struct snd_kcontrol_new ext_ec_ref_mux_ul8 =
4015 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL8 MUX Mux",
4016 msm_route_ec_ref_rx_enum[0],
4017 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4018
4019static const struct snd_kcontrol_new ext_ec_ref_mux_ul9 =
4020 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL9 MUX Mux",
4021 msm_route_ec_ref_rx_enum[0],
4022 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4023
Asish Bhattacharya34504582017-08-08 12:55:01 +05304024static const struct snd_kcontrol_new ext_ec_ref_mux_ul16 =
4025 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL16 MUX Mux",
4026 msm_route_ec_ref_rx_enum[0],
4027 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4028
Laxminath Kasam38070be2017-08-17 18:21:59 +05304029static const struct snd_kcontrol_new ext_ec_ref_mux_ul10 =
4030 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL10 MUX Mux",
4031 msm_route_ec_ref_rx_enum[0],
4032 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4033
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304034static const struct snd_kcontrol_new ext_ec_ref_mux_ul17 =
4035 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL17 MUX Mux",
4036 msm_route_ec_ref_rx_enum[0],
4037 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4038
4039static const struct snd_kcontrol_new ext_ec_ref_mux_ul18 =
4040 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL18 MUX Mux",
4041 msm_route_ec_ref_rx_enum[0],
4042 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4043
4044static const struct snd_kcontrol_new ext_ec_ref_mux_ul19 =
4045 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL19 MUX Mux",
4046 msm_route_ec_ref_rx_enum[0],
4047 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4048
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304049static const struct snd_kcontrol_new ext_ec_ref_mux_ul28 =
4050 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL28 MUX Mux",
4051 msm_route_ec_ref_rx_enum[0],
4052 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4053
4054static const struct snd_kcontrol_new ext_ec_ref_mux_ul29 =
4055 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL29 MUX Mux",
4056 msm_route_ec_ref_rx_enum[0],
4057 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4058
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304059static int msm_routing_ext_ec_get(struct snd_kcontrol *kcontrol,
4060 struct snd_ctl_elem_value *ucontrol)
4061{
4062 pr_debug("%s: ext_ec_ref_rx = %x\n", __func__, msm_route_ext_ec_ref);
4063
4064 mutex_lock(&routing_lock);
4065 ucontrol->value.integer.value[0] = msm_route_ext_ec_ref;
4066 mutex_unlock(&routing_lock);
4067 return 0;
4068}
4069
4070static int msm_routing_ext_ec_put(struct snd_kcontrol *kcontrol,
4071 struct snd_ctl_elem_value *ucontrol)
4072{
Asish Bhattacharya34504582017-08-08 12:55:01 +05304073 struct snd_soc_dapm_widget *widget =
4074 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304075 int mux = ucontrol->value.enumerated.item[0];
4076 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
4077 int ret = 1;
4078 bool state = true;
4079 uint16_t ext_ec_ref_port_id;
4080 struct snd_soc_dapm_update *update = NULL;
4081
4082 if (mux >= e->items) {
4083 pr_err("%s: Invalid mux value %d\n", __func__, mux);
4084 return -EINVAL;
4085 }
4086
4087 mutex_lock(&routing_lock);
4088 msm_route_ext_ec_ref = ucontrol->value.integer.value[0];
4089
4090 switch (msm_route_ext_ec_ref) {
4091 case EXT_EC_REF_PRI_MI2S_TX:
4092 ext_ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
4093 break;
4094 case EXT_EC_REF_SEC_MI2S_TX:
4095 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
4096 break;
4097 case EXT_EC_REF_TERT_MI2S_TX:
4098 ext_ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
4099 break;
4100 case EXT_EC_REF_QUAT_MI2S_TX:
4101 ext_ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
4102 break;
4103 case EXT_EC_REF_QUIN_MI2S_TX:
4104 ext_ec_ref_port_id = AFE_PORT_ID_QUINARY_MI2S_TX;
4105 break;
4106 case EXT_EC_REF_SLIM_1_TX:
4107 ext_ec_ref_port_id = SLIMBUS_1_TX;
4108 break;
Karthikeyan Manibfba0542018-06-20 15:20:28 -07004109 case EXT_EC_REF_SEC_TDM_TX:
4110 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
4111 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304112 case EXT_EC_REF_NONE:
4113 default:
4114 ext_ec_ref_port_id = AFE_PORT_INVALID;
4115 state = false;
4116 break;
4117 }
4118
4119 pr_debug("%s: val = %d ext_ec_ref_port_id = 0x%0x state = %d\n",
4120 __func__, msm_route_ext_ec_ref, ext_ec_ref_port_id, state);
4121
4122 if (!voc_set_ext_ec_ref_port_id(ext_ec_ref_port_id, state)) {
4123 mutex_unlock(&routing_lock);
4124 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol, mux, e,
4125 update);
4126 } else {
4127 ret = -EINVAL;
4128 mutex_unlock(&routing_lock);
4129 }
4130 return ret;
4131}
4132
4133static const char * const ext_ec_ref_rx[] = {"NONE", "PRI_MI2S_TX",
4134 "SEC_MI2S_TX", "TERT_MI2S_TX",
4135 "QUAT_MI2S_TX", "QUIN_MI2S_TX",
Karthikeyan Manibfba0542018-06-20 15:20:28 -07004136 "SLIM_1_TX", "SEC_TDM_TX"};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304137
4138static const struct soc_enum msm_route_ext_ec_ref_rx_enum[] = {
4139 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ext_ec_ref_rx), ext_ec_ref_rx),
4140};
4141
4142static const struct snd_kcontrol_new voc_ext_ec_mux =
4143 SOC_DAPM_ENUM_EXT("VOC_EXT_EC MUX Mux", msm_route_ext_ec_ref_rx_enum[0],
4144 msm_routing_ext_ec_get, msm_routing_ext_ec_put);
4145
4146
4147static const struct snd_kcontrol_new pri_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004148 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4149 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304150 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4151 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004152 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4153 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304154 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4155 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004156 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4157 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304158 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4159 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004160 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4161 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304162 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4163 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004164 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4165 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304166 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4167 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004168 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4169 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304170 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4171 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004172 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4173 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304174 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4175 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004176 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4177 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304178 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4179 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004180 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4181 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304182 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4183 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004184 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4185 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304186 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4187 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004188 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4189 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304190 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4191 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004192 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4193 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304194 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4195 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004196 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4197 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304198 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4199 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004200 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4201 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304202 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4203 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004204 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4205 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304206 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4207 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004208 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4209 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304210 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4211 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004212 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4213 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304214 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4215 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004216 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4217 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304218 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4219 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004220 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4221 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304222 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4223 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304224 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4225 MSM_BACKEND_DAI_PRI_I2S_RX,
4226 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4227 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004228 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4229 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304230 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4231 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004232 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4233 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304234 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4235 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304236};
4237
4238static const struct snd_kcontrol_new sec_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004239 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4240 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304241 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4242 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004243 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4244 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304245 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4246 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004247 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4248 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304249 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4250 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004251 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4252 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304253 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4254 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004255 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4256 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304257 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4258 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004259 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4260 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304261 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4262 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004263 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4264 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304265 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4266 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004267 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4268 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304269 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4270 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004271 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4272 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304273 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4274 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004275 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4276 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304277 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4278 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004279 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4280 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304281 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4282 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004283 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4284 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304285 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4286 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004287 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4288 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304289 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4290 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004291 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4292 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304293 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4294 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004295 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4296 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304297 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4298 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004299 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4300 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304301 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4302 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004303 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4304 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304305 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4306 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004307 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4308 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304309 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4310 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004311 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4312 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304313 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4314 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304315 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4316 MSM_BACKEND_DAI_SEC_I2S_RX,
4317 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4318 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004319 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4320 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304321 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4322 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004323 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4324 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304325 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4326 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304327};
4328
Ralf Herzc8701f72018-06-20 11:37:35 +02004329static const struct snd_kcontrol_new pri_spdif_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004330 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004331 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304332 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4333 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004334 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004335 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304336 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4337 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004338 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004339 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304340 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4341 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004342 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004343 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304344 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4345 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004346 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004347 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304348 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4349 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004350 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004351 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304352 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4353 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004354 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004355 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304356 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4357 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004358 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004359 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304360 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4361 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004362 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004363 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304364 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4365 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004366 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004367 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304368 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4369 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004370 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004371 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304372 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4373 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004374 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004375 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304376 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4377 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004378 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004379 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304380 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4381 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004382 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004383 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304384 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4385 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004386 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004387 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304388 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4389 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004390 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004391 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304392 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4393 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004394 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004395 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304396 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4397 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004398 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004399 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304400 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4401 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004402 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004403 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304404 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4405 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304406 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4407 MSM_BACKEND_DAI_PRI_SPDIF_RX,
4408 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4409 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004410 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004411 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304412 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4413 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004414 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004415 MSM_BACKEND_DAI_PRI_SPDIF_RX,
4416 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4417 msm_routing_put_audio_mixer),
4418};
4419
4420static const struct snd_kcontrol_new sec_spdif_rx_mixer_controls[] = {
4421 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4422 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4423 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4424 msm_routing_put_audio_mixer),
4425 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4426 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4427 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4428 msm_routing_put_audio_mixer),
4429 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4430 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4431 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4432 msm_routing_put_audio_mixer),
4433 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4434 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4435 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4436 msm_routing_put_audio_mixer),
4437 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4438 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4439 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4440 msm_routing_put_audio_mixer),
4441 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4442 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4443 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4444 msm_routing_put_audio_mixer),
4445 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4446 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4447 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4448 msm_routing_put_audio_mixer),
4449 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4450 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4451 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4452 msm_routing_put_audio_mixer),
4453 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4454 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4455 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4456 msm_routing_put_audio_mixer),
4457 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4458 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4459 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4460 msm_routing_put_audio_mixer),
4461 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4462 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4463 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4464 msm_routing_put_audio_mixer),
4465 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4466 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4467 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4468 msm_routing_put_audio_mixer),
4469 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4470 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4471 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4472 msm_routing_put_audio_mixer),
4473 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4474 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4475 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4476 msm_routing_put_audio_mixer),
4477 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4478 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4479 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4480 msm_routing_put_audio_mixer),
4481 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4482 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4483 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4484 msm_routing_put_audio_mixer),
4485 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4486 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4487 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4488 msm_routing_put_audio_mixer),
4489 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4490 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4491 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4492 msm_routing_put_audio_mixer),
4493 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4494 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4495 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4496 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304497 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4498 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4499 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4500 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02004501 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4502 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4503 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4504 msm_routing_put_audio_mixer),
4505 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4506 MSM_BACKEND_DAI_SEC_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304507 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4508 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304509};
4510
4511static const struct snd_kcontrol_new slimbus_2_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004512 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4513 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304514 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4515 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004516 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4517 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304518 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4519 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004520 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4521 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304522 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4523 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004524 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4525 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304526 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4527 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004528 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4529 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304530 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4531 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004532 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4533 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304534 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4535 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004536 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4537 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304538 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4539 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004540 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4541 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304542 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4543 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004544 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4545 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304546 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4547 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004548 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4549 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304550 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4551 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004552 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4553 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304554 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4555 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004556 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4557 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304558 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4559 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004560 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4561 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304562 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4563 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004564 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4565 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304566 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4567 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004568 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4569 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304570 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4571 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004572 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4573 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304574 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4575 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304576 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4577 MSM_BACKEND_DAI_SLIMBUS_2_RX,
4578 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4579 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304580};
4581
4582static const struct snd_kcontrol_new slimbus_5_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004583 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4584 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304585 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4586 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004587 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4588 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304589 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4590 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004591 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4592 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304593 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4594 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004595 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4596 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304597 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4598 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004599 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4600 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304601 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4602 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004603 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4604 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304605 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4606 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004607 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4608 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304609 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4610 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004611 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4612 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304613 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4614 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004615 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4616 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304617 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4618 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004619 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4620 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304621 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4622 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004623 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4624 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304625 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4626 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004627 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4628 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304629 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4630 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004631 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4632 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304633 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4634 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004635 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4636 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304637 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4638 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004639 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4640 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304641 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4642 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004643 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4644 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304645 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4646 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004647 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4648 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304649 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4650 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004651 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4652 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304653 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4654 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004655 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4656 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304657 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4658 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304659 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4660 MSM_BACKEND_DAI_SLIMBUS_5_RX,
4661 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4662 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004663 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4664 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304665 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4666 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004667 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4668 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304669 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4670 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304671};
4672
4673static const struct snd_kcontrol_new slimbus_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004674 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4675 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304676 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4677 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004678 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4679 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304680 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4681 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004682 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4683 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304684 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4685 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004686 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4687 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304688 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4689 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004690 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4691 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304692 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4693 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004694 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4695 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304696 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4697 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004698 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4699 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304700 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4701 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004702 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4703 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304704 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4705 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004706 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4707 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304708 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4709 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004710 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4711 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304712 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4713 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004714 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4715 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304716 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4717 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004718 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4719 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304720 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4721 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004722 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4723 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304724 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4725 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004726 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4727 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304728 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4729 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004730 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4731 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304732 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4733 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004734 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4735 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304736 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4737 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004738 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4739 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304740 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4741 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004742 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4743 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304744 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4745 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004746 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4747 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304748 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4749 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304750 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4751 MSM_BACKEND_DAI_SLIMBUS_0_RX,
4752 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004754 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4755 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304756 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4757 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004758 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4759 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304760 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4761 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304762};
4763
4764static const struct snd_kcontrol_new mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004765 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4766 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304767 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4768 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004769 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4770 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304771 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4772 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004773 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4774 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304775 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4776 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004777 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4778 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304779 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4780 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004781 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4782 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304783 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4784 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004785 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4786 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304787 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4788 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004789 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4790 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304791 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4792 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004793 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4794 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304795 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4796 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004797 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4798 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304799 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4800 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004801 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4802 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304803 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4804 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004805 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4806 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304807 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4808 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004809 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4810 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304811 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4812 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004813 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4814 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304815 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4816 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004817 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4818 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304819 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4820 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004821 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4822 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304823 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4824 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004825 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4826 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304827 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4828 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004829 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4830 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304831 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4832 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004833 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4834 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304835 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4836 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004837 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4838 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304839 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4840 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304841 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4842 MSM_BACKEND_DAI_MI2S_RX,
4843 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4844 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004845 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4846 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304847 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4848 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004849 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4850 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304851 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4852 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304853};
4854
4855static const struct snd_kcontrol_new quaternary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004856 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4857 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304858 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4859 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004860 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4861 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304862 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4863 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004864 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4865 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304866 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4867 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004868 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4869 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304870 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4871 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004872 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4873 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304874 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4875 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004876 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4877 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304878 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4879 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004880 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4881 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304882 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4883 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004884 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4885 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304886 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4887 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004888 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4889 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304890 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4891 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004892 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4893 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304894 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4895 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004896 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4897 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304898 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4899 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004900 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4901 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304902 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4903 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004904 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4905 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304906 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4907 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004908 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4909 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304910 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4911 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004912 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4913 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304914 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4915 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004916 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4917 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304918 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4919 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004920 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4921 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304922 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4923 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004924 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4925 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304926 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4927 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004928 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4929 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304930 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4931 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304932 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4933 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
4934 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4935 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004936 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4937 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304938 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4939 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004940 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4941 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304942 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4943 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304944};
4945
4946static const struct snd_kcontrol_new quinary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004947 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4948 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304949 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4950 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004951 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4952 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304953 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4954 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004955 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4956 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304957 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4958 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004959 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4960 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304961 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4962 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004963 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4964 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304965 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4966 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004967 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4968 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304969 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4970 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004971 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4972 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304973 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4974 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004975 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4976 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304977 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4978 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004979 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4980 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304981 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4982 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004983 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4984 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304985 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4986 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004987 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4988 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304989 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4990 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004991 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4992 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304993 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4994 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004995 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4996 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304997 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4998 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004999 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5000 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305001 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5002 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005003 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5004 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305005 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5006 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005007 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5008 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305009 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5010 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005011 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5012 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305013 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5014 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005015 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5016 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305017 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5018 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005019 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5020 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305021 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5022 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305023 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5024 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
5025 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5026 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005027 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5028 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305029 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5030 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005031 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5032 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305033 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5034 msm_routing_put_audio_mixer),
5035
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305036};
5037
5038static const struct snd_kcontrol_new tertiary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005039 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5040 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305041 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5042 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005043 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5044 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305045 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5046 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005047 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5048 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305049 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5050 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005051 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5052 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305053 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5054 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005055 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5056 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305057 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5058 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005059 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5060 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305061 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5062 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005063 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5064 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305065 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5066 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005067 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5068 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305069 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5070 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005071 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5072 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305073 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5074 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005075 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5076 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305077 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5078 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005079 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5080 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305081 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5082 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005083 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5084 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305085 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5086 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005087 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5088 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305089 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5090 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005091 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5092 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305093 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5094 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005095 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5096 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305097 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5098 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005099 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5100 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305101 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5102 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005103 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5104 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305105 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5106 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305107 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5108 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
5109 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5110 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005111 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5112 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305113 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5114 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005115 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5116 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305117 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5118 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305119};
5120
5121static const struct snd_kcontrol_new secondary_mi2s_rx2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005122 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5123 MSM_BACKEND_DAI_SECONDARY_MI2S_RX_SD1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305124 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5125 msm_routing_put_audio_mixer),
5126};
5127
5128static const struct snd_kcontrol_new secondary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005129 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5130 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305131 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5132 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005133 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5134 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305135 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5136 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005137 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5138 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305139 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5140 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005141 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5142 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305143 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5144 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005145 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5146 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305147 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5148 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005149 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5150 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305151 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5152 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005153 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5154 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305155 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5156 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005157 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5158 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305159 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005161 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5162 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305163 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5164 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005165 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5166 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305167 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005169 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5170 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305171 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5172 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005173 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5174 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305175 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5176 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005177 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5178 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305179 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5180 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005181 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5182 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305183 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5184 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005185 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5186 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305187 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5188 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005189 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5190 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305191 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5192 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005193 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5194 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305195 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5196 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005197 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5198 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305199 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5200 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005201 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5202 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305203 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5204 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305205 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5206 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
5207 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5208 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005209 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5210 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305211 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5212 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005213 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5214 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305215 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5216 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305217};
5218
5219static const struct snd_kcontrol_new primary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005220 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5221 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305222 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5223 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005224 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5225 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305226 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5227 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005228 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5229 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305230 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5231 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005232 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5233 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305234 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5235 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005236 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5237 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305238 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5239 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005240 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5241 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305242 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5243 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005244 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5245 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305246 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5247 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005248 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5249 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305250 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5251 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005252 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5253 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305254 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5255 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005256 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5257 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305258 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5259 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005260 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5261 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305262 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5263 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005264 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5265 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305266 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5267 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005268 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5269 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305270 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5271 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005272 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5273 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305274 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5275 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005276 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5277 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305278 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5279 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005280 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5281 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305282 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5283 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005284 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5285 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305286 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5287 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005288 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5289 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305290 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5291 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005292 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5293 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305294 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5295 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305296 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5297 MSM_BACKEND_DAI_PRI_MI2S_RX,
5298 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5299 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005300 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5301 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305302 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5303 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005304 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5305 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305306 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5307 msm_routing_put_audio_mixer),
5308
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305309};
5310
5311static const struct snd_kcontrol_new int0_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005312 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5313 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305314 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5315 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005316 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5317 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305318 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5319 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005320 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5321 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305322 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5323 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005324 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5325 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305326 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5327 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005328 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5329 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305330 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5331 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005332 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5333 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305334 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5335 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005336 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5337 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305338 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5339 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005340 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5341 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305342 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5343 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005344 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5345 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305346 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5347 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005348 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5349 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305350 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5351 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005352 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5353 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305354 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5355 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005356 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5357 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305358 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5359 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005360 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5361 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305362 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5363 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005364 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5365 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305366 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5367 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005368 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5369 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305370 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5371 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005372 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5373 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305374 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5375 msm_routing_put_audio_mixer),
5376};
5377
5378static const struct snd_kcontrol_new int4_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005379 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5380 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305381 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5382 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005383 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5384 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305385 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5386 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005387 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5388 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305389 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5390 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005391 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5392 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305393 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5394 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005395 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5396 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305397 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5398 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005399 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5400 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305401 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5402 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005403 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5404 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305405 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5406 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005407 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5408 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305409 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5410 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005411 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5412 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305413 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5414 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005415 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5416 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305417 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5418 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005419 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5420 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305421 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5422 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005423 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5424 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305425 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5426 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005427 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5428 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305429 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5430 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005431 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5432 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305433 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5434 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005435 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5436 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305437 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5438 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005439 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5440 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305441 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5442 msm_routing_put_audio_mixer),
5443};
5444
5445static const struct snd_kcontrol_new hdmi_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005446 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5447 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305448 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5449 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005450 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5451 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305452 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5453 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005454 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5455 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305456 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5457 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005458 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5459 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305460 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5461 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005462 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5463 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305464 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5465 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005466 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5467 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305468 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5469 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005470 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5471 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305472 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5473 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005474 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5475 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305476 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5477 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005478 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5479 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305480 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5481 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005482 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5483 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305484 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5485 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005486 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5487 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305488 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5489 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005490 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5491 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305492 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5493 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005494 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5495 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305496 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5497 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005498 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5499 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305500 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5501 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005502 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5503 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305504 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5505 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005506 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5507 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305508 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5509 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005510 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5511 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305512 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5513 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005514 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5515 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305516 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5517 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005518 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5519 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305520 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5521 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305522 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5523 MSM_BACKEND_DAI_HDMI_RX,
5524 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5525 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005526 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5527 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305528 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5529 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005530 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5531 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305532 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5533 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305534};
5535
5536static const struct snd_kcontrol_new display_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005537 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5538 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305539 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005541 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5542 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305543 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005545 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5546 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305547 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005549 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5550 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305551 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005553 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5554 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305555 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5556 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005557 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5558 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305559 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5560 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005561 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5562 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305563 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5564 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005565 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5566 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305567 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5568 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005569 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5570 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305571 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5572 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005573 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5574 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305575 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5576 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005577 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5578 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305579 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5580 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005581 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5582 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305583 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5584 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005585 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5586 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305587 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5588 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005589 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5590 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305591 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5592 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005593 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5594 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305595 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5596 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005597 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5598 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305599 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5600 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305601 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5602 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
5603 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5604 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305605};
5606
Karthikeyan Mani57550082018-05-03 18:43:58 -07005607static const struct snd_kcontrol_new display_port1_mixer_controls[] = {
5608 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5609 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5610 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5611 msm_routing_put_audio_mixer),
5612 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5613 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5614 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5615 msm_routing_put_audio_mixer),
5616 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5617 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5618 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5619 msm_routing_put_audio_mixer),
5620 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5621 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5622 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5623 msm_routing_put_audio_mixer),
5624 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5625 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5626 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5627 msm_routing_put_audio_mixer),
5628 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5629 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5630 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5631 msm_routing_put_audio_mixer),
5632 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5633 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5634 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5635 msm_routing_put_audio_mixer),
5636 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5637 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5638 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5639 msm_routing_put_audio_mixer),
5640 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5641 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5642 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5643 msm_routing_put_audio_mixer),
5644 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5645 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5646 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5647 msm_routing_put_audio_mixer),
5648 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5649 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5650 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5651 msm_routing_put_audio_mixer),
5652 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5653 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5654 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5655 msm_routing_put_audio_mixer),
5656 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5657 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5658 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5659 msm_routing_put_audio_mixer),
5660 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5661 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5662 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5663 msm_routing_put_audio_mixer),
5664 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5665 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5666 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5667 msm_routing_put_audio_mixer),
5668 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5669 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5670 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5671 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305672 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5673 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5674 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5675 msm_routing_put_audio_mixer),
Karthikeyan Mani57550082018-05-03 18:43:58 -07005676};
5677
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305678 /* incall music delivery mixer */
5679static const struct snd_kcontrol_new incall_music_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005680 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5681 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305682 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5683 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005684 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5685 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305686 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5687 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005688 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5689 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305690 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5691 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005692 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5693 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305694 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5695 msm_routing_put_audio_mixer),
5696};
5697
5698static const struct snd_kcontrol_new incall_music2_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005699 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5700 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305701 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5702 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005703 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5704 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305705 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5706 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005707 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5708 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305709 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5710 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005711 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5712 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305713 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5714 msm_routing_put_audio_mixer),
5715};
5716
5717static const struct snd_kcontrol_new slimbus_4_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005718 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5719 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305720 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5721 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005722 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5723 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305724 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5725 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005726 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5727 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305728 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5729 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005730 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5731 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305732 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5733 msm_routing_put_audio_mixer),
5734};
5735
5736static const struct snd_kcontrol_new slimbus_6_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005737 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5738 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305739 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5740 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005741 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5742 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305743 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5744 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005745 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5746 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305747 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5748 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005749 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5750 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305751 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5752 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005753 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5754 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305755 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5756 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005757 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5758 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305759 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5760 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005761 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5762 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305763 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5764 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005765 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5766 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305767 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5768 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005769 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5770 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305771 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5772 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005773 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5774 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305775 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5776 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005777 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5778 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305779 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5780 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005781 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5782 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305783 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5784 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005785 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5786 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305787 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5788 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005789 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5790 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305791 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5792 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005793 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5794 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305795 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5796 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005797 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5798 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305799 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5800 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305801 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5802 MSM_BACKEND_DAI_SLIMBUS_6_RX,
5803 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5804 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305805};
5806
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305807static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_mixer_controls[] = {
5808 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5809 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5810 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5811 msm_routing_put_audio_mixer),
5812 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5813 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5814 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5815 msm_routing_put_audio_mixer),
5816 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5817 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5818 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5819 msm_routing_put_audio_mixer),
5820 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5821 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5822 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5823 msm_routing_put_audio_mixer),
5824 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5825 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5826 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5827 msm_routing_put_audio_mixer),
5828 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5829 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5830 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5831 msm_routing_put_audio_mixer),
5832 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5833 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5834 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5835 msm_routing_put_audio_mixer),
5836 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5837 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5838 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5839 msm_routing_put_audio_mixer),
5840 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5841 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5842 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5843 msm_routing_put_audio_mixer),
5844 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5845 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5846 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5847 msm_routing_put_audio_mixer),
5848 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5849 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5850 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5851 msm_routing_put_audio_mixer),
5852 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5853 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5854 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5855 msm_routing_put_audio_mixer),
5856 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5857 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5858 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5859 msm_routing_put_audio_mixer),
5860 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5861 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5862 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5863 msm_routing_put_audio_mixer),
5864 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5865 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5866 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5867 msm_routing_put_audio_mixer),
5868 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5869 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5870 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5871 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305872 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5873 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5874 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5875 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305876};
5877
5878static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_mixer_controls[] = {
5879 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5880 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5881 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5882 msm_routing_put_audio_mixer),
5883 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5884 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5885 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5886 msm_routing_put_audio_mixer),
5887 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5888 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5889 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5890 msm_routing_put_audio_mixer),
5891 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5892 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5893 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5894 msm_routing_put_audio_mixer),
5895 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5896 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5897 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5898 msm_routing_put_audio_mixer),
5899 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5900 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5901 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5902 msm_routing_put_audio_mixer),
5903 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5904 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5905 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5906 msm_routing_put_audio_mixer),
5907 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5908 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5909 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5910 msm_routing_put_audio_mixer),
5911 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5912 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5913 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5914 msm_routing_put_audio_mixer),
5915 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5916 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5917 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5918 msm_routing_put_audio_mixer),
5919 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5920 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5921 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5922 msm_routing_put_audio_mixer),
5923 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5924 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5925 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5926 msm_routing_put_audio_mixer),
5927 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5928 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5929 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5930 msm_routing_put_audio_mixer),
5931 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5932 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5933 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5934 msm_routing_put_audio_mixer),
5935 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5936 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5937 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5938 msm_routing_put_audio_mixer),
5939 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5940 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5941 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5942 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305943 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5944 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5945 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5946 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305947};
5948
Aditya Bavanari1e84a932018-06-18 19:40:08 +05305949static const struct snd_kcontrol_new rx_cdc_dma_rx_0_mixer_controls[] = {
5950 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5951 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5952 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5953 msm_routing_put_audio_mixer),
5954 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5955 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5956 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5957 msm_routing_put_audio_mixer),
5958 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5959 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5960 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5961 msm_routing_put_audio_mixer),
5962 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5963 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5964 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5965 msm_routing_put_audio_mixer),
5966 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5967 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5968 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5969 msm_routing_put_audio_mixer),
5970 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5971 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5972 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5973 msm_routing_put_audio_mixer),
5974 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5975 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5976 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5977 msm_routing_put_audio_mixer),
5978 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5979 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5980 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5981 msm_routing_put_audio_mixer),
5982 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5983 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5984 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5985 msm_routing_put_audio_mixer),
5986 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5987 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5988 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5989 msm_routing_put_audio_mixer),
5990 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5991 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5992 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5993 msm_routing_put_audio_mixer),
5994 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5995 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5996 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5997 msm_routing_put_audio_mixer),
5998 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5999 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6000 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6001 msm_routing_put_audio_mixer),
6002 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6003 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6004 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6005 msm_routing_put_audio_mixer),
6006 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6007 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6008 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6009 msm_routing_put_audio_mixer),
6010 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6011 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6012 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6013 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306014 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6015 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6016 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6017 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306018};
6019
6020static const struct snd_kcontrol_new rx_cdc_dma_rx_1_mixer_controls[] = {
6021 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6022 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6023 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6024 msm_routing_put_audio_mixer),
6025 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6026 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6027 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6028 msm_routing_put_audio_mixer),
6029 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6030 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6031 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6032 msm_routing_put_audio_mixer),
6033 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6034 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6035 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6036 msm_routing_put_audio_mixer),
6037 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6038 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6039 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6040 msm_routing_put_audio_mixer),
6041 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6042 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6043 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6044 msm_routing_put_audio_mixer),
6045 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6046 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6047 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6048 msm_routing_put_audio_mixer),
6049 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6050 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6051 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6052 msm_routing_put_audio_mixer),
6053 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6054 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6055 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6056 msm_routing_put_audio_mixer),
6057 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6058 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6059 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6060 msm_routing_put_audio_mixer),
6061 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6062 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6063 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6064 msm_routing_put_audio_mixer),
6065 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6066 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6067 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6068 msm_routing_put_audio_mixer),
6069 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6070 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6071 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6072 msm_routing_put_audio_mixer),
6073 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6074 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6075 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6076 msm_routing_put_audio_mixer),
6077 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6078 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6079 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6080 msm_routing_put_audio_mixer),
6081 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6082 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6083 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6084 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306085 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6086 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6087 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6088 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306089};
6090
6091static const struct snd_kcontrol_new rx_cdc_dma_rx_2_mixer_controls[] = {
6092 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6093 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6094 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6095 msm_routing_put_audio_mixer),
6096 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6097 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6098 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6099 msm_routing_put_audio_mixer),
6100 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6101 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6102 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6103 msm_routing_put_audio_mixer),
6104 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6105 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6106 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6107 msm_routing_put_audio_mixer),
6108 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6109 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6110 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6111 msm_routing_put_audio_mixer),
6112 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6113 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6114 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6115 msm_routing_put_audio_mixer),
6116 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6117 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6118 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6119 msm_routing_put_audio_mixer),
6120 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6121 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6122 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6123 msm_routing_put_audio_mixer),
6124 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6125 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6126 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6127 msm_routing_put_audio_mixer),
6128 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6129 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6130 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6131 msm_routing_put_audio_mixer),
6132 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6133 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6134 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6135 msm_routing_put_audio_mixer),
6136 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6137 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6138 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6139 msm_routing_put_audio_mixer),
6140 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6141 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6142 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6143 msm_routing_put_audio_mixer),
6144 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6145 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6146 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6147 msm_routing_put_audio_mixer),
6148 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6149 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6150 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6151 msm_routing_put_audio_mixer),
6152 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6153 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6154 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6155 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306156 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6157 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6158 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6159 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306160};
6161
6162static const struct snd_kcontrol_new rx_cdc_dma_rx_3_mixer_controls[] = {
6163 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6164 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6165 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6166 msm_routing_put_audio_mixer),
6167 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6168 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6169 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6170 msm_routing_put_audio_mixer),
6171 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6172 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6173 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6174 msm_routing_put_audio_mixer),
6175 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6176 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6177 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6178 msm_routing_put_audio_mixer),
6179 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6180 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6181 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6182 msm_routing_put_audio_mixer),
6183 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6184 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6185 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6186 msm_routing_put_audio_mixer),
6187 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6188 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6189 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6190 msm_routing_put_audio_mixer),
6191 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6192 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6193 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6194 msm_routing_put_audio_mixer),
6195 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6196 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6197 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6198 msm_routing_put_audio_mixer),
6199 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6200 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6201 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6202 msm_routing_put_audio_mixer),
6203 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6204 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6205 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6206 msm_routing_put_audio_mixer),
6207 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6208 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6209 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6210 msm_routing_put_audio_mixer),
6211 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6212 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6213 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6214 msm_routing_put_audio_mixer),
6215 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6216 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6217 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6218 msm_routing_put_audio_mixer),
6219 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6220 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6221 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6222 msm_routing_put_audio_mixer),
6223 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6224 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6225 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6226 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306227 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6228 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6229 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6230 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306231};
6232
6233static const struct snd_kcontrol_new rx_cdc_dma_rx_4_mixer_controls[] = {
6234 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6235 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6236 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6237 msm_routing_put_audio_mixer),
6238 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6239 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6240 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6241 msm_routing_put_audio_mixer),
6242 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6243 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6244 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6245 msm_routing_put_audio_mixer),
6246 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6247 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6248 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6249 msm_routing_put_audio_mixer),
6250 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6251 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6252 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6253 msm_routing_put_audio_mixer),
6254 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6255 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6256 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6257 msm_routing_put_audio_mixer),
6258 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6259 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6260 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6261 msm_routing_put_audio_mixer),
6262 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6263 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6264 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6265 msm_routing_put_audio_mixer),
6266 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6267 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6268 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6269 msm_routing_put_audio_mixer),
6270 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6271 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6272 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6273 msm_routing_put_audio_mixer),
6274 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6275 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6276 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6277 msm_routing_put_audio_mixer),
6278 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6279 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6280 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6281 msm_routing_put_audio_mixer),
6282 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6283 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6284 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6285 msm_routing_put_audio_mixer),
6286 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6287 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6288 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6289 msm_routing_put_audio_mixer),
6290 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6291 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6292 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6293 msm_routing_put_audio_mixer),
6294 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6295 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6296 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6297 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306298 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6299 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6300 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6301 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306302};
6303
6304static const struct snd_kcontrol_new rx_cdc_dma_rx_5_mixer_controls[] = {
6305 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6306 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6307 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6308 msm_routing_put_audio_mixer),
6309 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6310 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6311 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6312 msm_routing_put_audio_mixer),
6313 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6314 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6315 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6316 msm_routing_put_audio_mixer),
6317 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6318 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6319 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6320 msm_routing_put_audio_mixer),
6321 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6322 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6323 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6324 msm_routing_put_audio_mixer),
6325 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6326 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6327 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6328 msm_routing_put_audio_mixer),
6329 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6330 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6331 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6332 msm_routing_put_audio_mixer),
6333 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6334 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6335 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6336 msm_routing_put_audio_mixer),
6337 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6338 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6339 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6340 msm_routing_put_audio_mixer),
6341 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6342 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6343 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6344 msm_routing_put_audio_mixer),
6345 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6346 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6347 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6348 msm_routing_put_audio_mixer),
6349 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6350 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6351 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6352 msm_routing_put_audio_mixer),
6353 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6354 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6355 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6356 msm_routing_put_audio_mixer),
6357 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6358 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6359 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6360 msm_routing_put_audio_mixer),
6361 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6362 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6363 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6364 msm_routing_put_audio_mixer),
6365 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6366 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6367 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6368 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306369 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6370 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6371 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6372 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306373};
6374
6375static const struct snd_kcontrol_new rx_cdc_dma_rx_6_mixer_controls[] = {
6376 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6377 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6378 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6379 msm_routing_put_audio_mixer),
6380 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6381 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6382 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6383 msm_routing_put_audio_mixer),
6384 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6385 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6386 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6387 msm_routing_put_audio_mixer),
6388 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6389 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6390 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6391 msm_routing_put_audio_mixer),
6392 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6393 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6394 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6395 msm_routing_put_audio_mixer),
6396 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6397 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6398 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6399 msm_routing_put_audio_mixer),
6400 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6401 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6402 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6403 msm_routing_put_audio_mixer),
6404 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6405 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6406 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6407 msm_routing_put_audio_mixer),
6408 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6409 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6410 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6411 msm_routing_put_audio_mixer),
6412 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6413 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6414 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6415 msm_routing_put_audio_mixer),
6416 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6417 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6418 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6419 msm_routing_put_audio_mixer),
6420 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6421 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6422 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6423 msm_routing_put_audio_mixer),
6424 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6425 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6426 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6427 msm_routing_put_audio_mixer),
6428 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6429 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6430 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6431 msm_routing_put_audio_mixer),
6432 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6433 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6434 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6435 msm_routing_put_audio_mixer),
6436 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6437 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6438 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6439 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306440 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6441 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6442 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6443 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306444};
6445
6446static const struct snd_kcontrol_new rx_cdc_dma_rx_7_mixer_controls[] = {
6447 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6448 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6449 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6450 msm_routing_put_audio_mixer),
6451 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6452 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6453 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6454 msm_routing_put_audio_mixer),
6455 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6456 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6457 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6458 msm_routing_put_audio_mixer),
6459 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6460 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6461 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6462 msm_routing_put_audio_mixer),
6463 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6464 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6465 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6466 msm_routing_put_audio_mixer),
6467 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6468 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6469 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6470 msm_routing_put_audio_mixer),
6471 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6472 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6473 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6474 msm_routing_put_audio_mixer),
6475 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6476 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6477 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6478 msm_routing_put_audio_mixer),
6479 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6480 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6481 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6482 msm_routing_put_audio_mixer),
6483 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6484 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6485 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6486 msm_routing_put_audio_mixer),
6487 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6488 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6489 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6490 msm_routing_put_audio_mixer),
6491 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6492 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6493 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6494 msm_routing_put_audio_mixer),
6495 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6496 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6497 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6498 msm_routing_put_audio_mixer),
6499 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6500 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6501 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6502 msm_routing_put_audio_mixer),
6503 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6504 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6505 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6506 msm_routing_put_audio_mixer),
6507 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6508 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6509 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6510 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306511 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6512 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6513 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6514 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306515};
6516
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306517static const struct snd_kcontrol_new slimbus_7_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006518 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6519 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306520 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6521 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006522 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6523 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306524 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6525 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006526 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6527 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306528 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6529 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006530 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6531 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306532 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6533 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006534 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6535 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306536 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6537 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006538 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6539 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306540 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6541 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006542 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6543 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306544 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6545 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006546 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6547 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306548 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6549 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006550 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6551 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306552 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6553 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006554 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6555 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306556 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6557 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006558 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6559 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306560 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6561 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006562 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6563 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306564 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6565 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006566 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6567 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306568 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6569 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006570 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6571 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306572 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6573 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006574 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6575 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306576 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6577 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006578 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6579 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306580 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6581 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306582 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6583 MSM_BACKEND_DAI_SLIMBUS_7_RX,
6584 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6585 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306586};
6587
Surendar Karka3ef3d812018-09-28 18:52:35 +05306588static const struct snd_kcontrol_new slimbus_9_rx_mixer_controls[] = {
6589 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6590 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6591 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6592 msm_routing_put_audio_mixer),
6593 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6594 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6595 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6596 msm_routing_put_audio_mixer),
6597 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6598 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6599 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6600 msm_routing_put_audio_mixer),
6601 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6602 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6603 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6604 msm_routing_put_audio_mixer),
6605 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6606 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6607 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6608 msm_routing_put_audio_mixer),
6609 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6610 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6611 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6612 msm_routing_put_audio_mixer),
6613 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6614 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6615 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6616 msm_routing_put_audio_mixer),
6617 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6618 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6619 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6620 msm_routing_put_audio_mixer),
6621 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6622 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6623 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6624 msm_routing_put_audio_mixer),
6625 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6626 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6627 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6628 msm_routing_put_audio_mixer),
6629 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6630 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6631 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6632 msm_routing_put_audio_mixer),
6633 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6634 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6635 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6636 msm_routing_put_audio_mixer),
6637 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6638 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6639 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6640 msm_routing_put_audio_mixer),
6641 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6642 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6643 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6644 msm_routing_put_audio_mixer),
6645 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6646 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6647 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6648 msm_routing_put_audio_mixer),
6649 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6650 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6651 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6652 msm_routing_put_audio_mixer),
6653 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6654 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6655 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6656 msm_routing_put_audio_mixer),
6657};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306658static const struct snd_kcontrol_new usb_audio_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006659 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6660 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306661 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6662 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006663 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6664 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306665 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6666 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006667 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6668 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306669 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6670 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006671 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6672 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306673 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6674 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006675 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6676 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306677 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6678 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006679 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6680 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306681 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6682 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006683 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6684 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306685 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6686 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006687 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6688 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306689 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6690 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006691 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6692 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306693 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6694 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006695 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6696 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306697 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6698 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006699 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6700 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306701 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6702 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006703 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6704 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306705 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6706 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006707 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6708 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306709 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6710 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006711 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6712 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306713 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6714 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006715 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6716 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306717 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6718 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006719 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6720 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306721 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6722 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306723 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6724 MSM_BACKEND_DAI_USB_RX,
6725 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6726 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306727};
6728
6729static const struct snd_kcontrol_new int_bt_sco_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006730 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6731 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306732 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6733 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006734 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6735 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306736 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6737 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006738 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6739 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306740 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6741 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006742 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6743 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306744 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6745 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006746 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6747 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306748 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6749 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006750 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6751 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306752 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006754 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6755 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306756 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6757 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006758 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6759 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306760 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6761 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006762 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6763 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306764 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6765 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006766 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6767 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306768 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6769 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006770 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6771 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306772 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6773 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006774 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6775 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306776 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6777 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006778 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6779 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306780 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6781 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006782 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6783 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306784 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6785 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006786 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6787 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306788 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6789 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006790 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6791 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306792 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6793 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006794 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6795 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306796 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6797 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006798 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6799 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306800 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6801 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006802 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6803 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306804 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6805 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306806 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6807 MSM_BACKEND_DAI_INT_BT_SCO_RX,
6808 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6809 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006810 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6811 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306812 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6813 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006814 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6815 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306816 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6817 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306818};
6819
6820static const struct snd_kcontrol_new int_bt_a2dp_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006821 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6822 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306823 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6824 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006825 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6826 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306827 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6828 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006829 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6830 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306831 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6832 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006833 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6834 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306835 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6836 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006837 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6838 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306839 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6840 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006841 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6842 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306843 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6844 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006845 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6846 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306847 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6848 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006849 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6850 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306851 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6852 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006853 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6854 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306855 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6856 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006857 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6858 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306859 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6860 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006861 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6862 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306863 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6864 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006865 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6866 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306867 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6868 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006869 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6870 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306871 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6872 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006873 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6874 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306875 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6876 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006877 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6878 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306879 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6880 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006881 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6882 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306883 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6884 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306885 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6886 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
6887 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6888 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306889};
6890
6891static const struct snd_kcontrol_new int_fm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006892 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6893 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306894 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6895 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006896 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6897 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306898 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6899 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006900 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6901 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306902 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6903 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006904 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6905 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306906 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6907 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006908 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6909 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306910 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6911 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006912 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6913 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306914 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6915 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006916 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6917 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306918 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6919 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006920 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6921 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306922 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6923 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006924 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6925 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306926 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6927 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006928 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6929 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306930 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6931 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006932 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6933 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306934 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6935 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006936 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6937 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306938 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6939 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006940 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6941 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306942 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6943 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006944 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6945 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306946 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6947 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006948 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6949 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306950 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6951 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006952 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6953 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306954 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6955 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006956 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6957 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306958 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6959 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006960 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6961 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306962 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6963 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006964 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6965 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306966 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6967 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306968 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6969 MSM_BACKEND_DAI_INT_FM_RX,
6970 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6971 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006972 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6973 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306974 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6975 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006976 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6977 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306978 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6979 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306980};
6981
6982static const struct snd_kcontrol_new afe_pcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006983 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6984 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306985 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6986 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006987 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6988 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306989 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6990 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006991 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6992 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306993 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6994 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006995 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6996 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306997 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6998 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006999 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7000 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307001 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7002 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007003 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7004 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307005 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7006 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007007 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7008 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307009 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7010 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007011 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7012 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307013 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7014 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007015 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7016 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307017 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7018 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007019 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7020 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307021 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7022 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007023 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7024 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307025 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7026 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007027 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7028 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307029 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7030 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007031 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7032 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307033 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7034 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007035 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7036 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307037 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7038 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007039 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7040 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307041 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7042 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007043 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7044 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307045 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7046 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007047 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7048 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307049 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7050 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007051 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7052 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307053 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7054 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007055 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7056 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307057 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7058 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307059 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7060 MSM_BACKEND_DAI_AFE_PCM_RX,
7061 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7062 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007063 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7064 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307065 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7066 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007067 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7068 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307069 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7070 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307071};
7072
7073static const struct snd_kcontrol_new auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007074 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7075 MSM_BACKEND_DAI_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007138 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7139 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307140 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7141 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007142 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7143 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307144 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7145 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007146 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7147 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307148 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7149 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007150 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7151 MSM_BACKEND_DAI_AUXPCM_RX,
7152 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7153 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307154 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7155 MSM_BACKEND_DAI_AUXPCM_RX,
7156 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7157 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007158 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7159 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307160 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7161 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007162 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7163 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307164 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7165 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307166};
7167
7168static const struct snd_kcontrol_new sec_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007169 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7170 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307171 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7172 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007173 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7174 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307175 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7176 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007177 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7178 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307179 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7180 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007181 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7182 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307183 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7184 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007185 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7186 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307187 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7188 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007189 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7190 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307191 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7192 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007193 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7194 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307195 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7196 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007197 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7198 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307199 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7200 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007201 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7202 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307203 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7204 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007205 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7206 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307207 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7208 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007209 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7210 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307211 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7212 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007213 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7214 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307215 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7216 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007217 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7218 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307219 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7220 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007221 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7222 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307223 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7224 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007225 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7226 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307227 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7228 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007229 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7230 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307231 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7232 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007233 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7234 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307235 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7236 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007237 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7238 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307239 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7240 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007241 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7242 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307243 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7244 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007245 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7246 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
7247 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7248 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307249 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7250 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
7251 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7252 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007253 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7254 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307255 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7256 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007257 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7258 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307259 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7260 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307261};
7262
7263static const struct snd_kcontrol_new tert_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007264 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7265 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307266 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7267 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007268 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7269 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307270 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7271 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007272 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7273 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307274 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7275 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007276 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7277 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307278 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7279 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007280 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7281 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307282 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7283 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007284 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7285 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307286 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7287 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007288 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7289 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307290 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7291 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007292 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7293 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307294 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7295 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007296 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7297 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307298 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7299 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007300 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7301 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307302 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7303 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007304 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7305 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307306 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7307 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007308 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7309 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307310 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7311 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007312 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7313 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307314 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7315 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007316 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7317 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307318 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7319 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007320 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7321 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307322 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7323 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007324 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7325 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307326 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7327 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307328 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7329 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
7330 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7331 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307332};
7333
7334static const struct snd_kcontrol_new quat_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007335 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7336 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307337 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7338 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007339 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7340 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307341 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7342 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007343 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7344 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307345 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7346 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007347 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7348 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307349 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7350 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007351 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7352 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307353 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7354 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007355 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7356 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307357 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7358 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007359 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7360 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307361 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7362 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007363 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7364 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307365 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7366 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007367 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7368 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307369 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7370 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007371 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7372 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307373 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7374 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007375 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7376 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307377 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7378 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007379 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7380 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307381 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7382 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007383 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7384 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307385 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7386 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007387 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7388 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307389 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7390 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007391 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7392 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307393 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7394 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007395 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7396 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307397 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7398 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307399 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7400 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
7401 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7402 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307403};
7404
Rohit Kumara5077932017-09-10 22:05:05 +05307405static const struct snd_kcontrol_new quin_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007406 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7407 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307408 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7409 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007410 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7411 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307412 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7413 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007414 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7415 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307416 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7417 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007418 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7419 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307420 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7421 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007422 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7423 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307424 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7425 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007426 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7427 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307428 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7429 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007430 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7431 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307432 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7433 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007434 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7435 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307436 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7437 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007438 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7439 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307440 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7441 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007442 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7443 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307444 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7445 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007446 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7447 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307448 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7449 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007450 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7451 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307452 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7453 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007454 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7455 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307456 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7457 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007458 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7459 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307460 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7461 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007462 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7463 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307464 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7465 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007466 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7467 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307468 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7469 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307470 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7471 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
7472 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7473 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05307474};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307475static const struct snd_kcontrol_new pri_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007476 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7477 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307478 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7479 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007480 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7481 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307482 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7483 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007484 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7485 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307486 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7487 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007488 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7489 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307490 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7491 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007492 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7493 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307494 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7495 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007496 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7497 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307498 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7499 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007500 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7501 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307502 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7503 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007504 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7505 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307506 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7507 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007508 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7509 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307510 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7511 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007512 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7513 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307514 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7515 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007516 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7517 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307518 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7519 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007520 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7521 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307522 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7523 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007524 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7525 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307526 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7527 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007528 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7529 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307530 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7531 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007532 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7533 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307534 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7535 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007536 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7537 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307538 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7539 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007540 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7541 MSM_BACKEND_DAI_PRI_TDM_RX_0,
7542 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7543 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307544};
7545
7546static const struct snd_kcontrol_new pri_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007547 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7548 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307549 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7550 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007551 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7552 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307553 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7554 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007555 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7556 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307557 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7558 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007559 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7560 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307561 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7562 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007563 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7564 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307565 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7566 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007567 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7568 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307569 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7570 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007571 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7572 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307573 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7574 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007575 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7576 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307577 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7578 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007579 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7580 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307581 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7582 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007583 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7584 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307585 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7586 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007587 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7588 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307589 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7590 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007591 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7592 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307593 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7594 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007595 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7596 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307597 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7598 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007599 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7600 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307601 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7602 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007603 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7604 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307605 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7606 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007607 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7608 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307609 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7610 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007611 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7612 MSM_BACKEND_DAI_PRI_TDM_RX_1,
7613 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7614 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307615};
7616
7617static const struct snd_kcontrol_new pri_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007618 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7619 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307620 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7621 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007622 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7623 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307624 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7625 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007626 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7627 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307628 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7629 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007630 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7631 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307632 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7633 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007634 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7635 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307636 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7637 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007638 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7639 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307640 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7641 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007642 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7643 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307644 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7645 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007646 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7647 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307648 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7649 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007650 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7651 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307652 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7653 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007654 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7655 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307656 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7657 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007658 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7659 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307660 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7661 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007662 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7663 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307664 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7665 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007666 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7667 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307668 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7669 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007670 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7671 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307672 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7673 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007674 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7675 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307676 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7677 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007678 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7679 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307680 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7681 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007682 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7683 MSM_BACKEND_DAI_PRI_TDM_RX_2,
7684 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7685 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307686};
7687
7688static const struct snd_kcontrol_new pri_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007689 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7690 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307691 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7692 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007693 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7694 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307695 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7696 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007697 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7698 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307699 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7700 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007701 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7702 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307703 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7704 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007705 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7706 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307707 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7708 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007709 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7710 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307711 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7712 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007713 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7714 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307715 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7716 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007717 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7718 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307719 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7720 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007721 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7722 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307723 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7724 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007725 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7726 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307727 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7728 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007729 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7730 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307731 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7732 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007733 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7734 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307735 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7736 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007737 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7738 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307739 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7740 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007741 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7742 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307743 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7744 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007745 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7746 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307747 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7748 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007749 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7750 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307751 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7752 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007753 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7754 MSM_BACKEND_DAI_PRI_TDM_RX_3,
7755 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7756 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307757};
7758
7759static const struct snd_kcontrol_new pri_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007760 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7761 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307762 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7763 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007764 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7765 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307766 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7767 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007768 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7769 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307770 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7771 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007772 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7773 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307774 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7775 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007776 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7777 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307778 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7779 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007780 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7781 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307782 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7783 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007784 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7785 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307786 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7787 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007788 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7789 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307790 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7791 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007792 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7793 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307794 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7795 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007796 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7797 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307798 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7799 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007800 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7801 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307802 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7803 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007804 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7805 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307806 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7807 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007808 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7809 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307810 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7811 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007812 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7813 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307814 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7815 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007816 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7817 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307818 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7819 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007820 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7821 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307822 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7823 msm_routing_put_audio_mixer),
7824};
7825
7826static const struct snd_kcontrol_new sec_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007827 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7828 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307829 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7830 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007831 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7832 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307833 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7834 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007835 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7836 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307837 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7838 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007839 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7840 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307841 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7842 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007843 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7844 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307845 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7846 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007847 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7848 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307849 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7850 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007851 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7852 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307853 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7854 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007855 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7856 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307857 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7858 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007859 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7860 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307861 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7862 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007863 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7864 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307865 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7866 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007867 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7868 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307869 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7870 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007871 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7872 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307873 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7874 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007875 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7876 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307877 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7878 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007879 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7880 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307881 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7882 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007883 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7884 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307885 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7886 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007887 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7888 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307889 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7890 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007891 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7892 MSM_BACKEND_DAI_SEC_TDM_RX_0,
7893 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7894 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307895};
7896
7897static const struct snd_kcontrol_new sec_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007898 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7899 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307900 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7901 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007902 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7903 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307904 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7905 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007906 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7907 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307908 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7909 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007910 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7911 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307912 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7913 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007914 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7915 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307916 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7917 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007918 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7919 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307920 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7921 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007922 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7923 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307924 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7925 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007926 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7927 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307928 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7929 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007930 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7931 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307932 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7933 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007934 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7935 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307936 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7937 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007938 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7939 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307940 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7941 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007942 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7943 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307944 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7945 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007946 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7947 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307948 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7949 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007950 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7951 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307952 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7953 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007954 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7955 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307956 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7957 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007958 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7959 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307960 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7961 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007962 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7963 MSM_BACKEND_DAI_SEC_TDM_RX_1,
7964 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7965 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307966};
7967
7968static const struct snd_kcontrol_new sec_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007969 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7970 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307971 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7972 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007973 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7974 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307975 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7976 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007977 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7978 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307979 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7980 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007981 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7982 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307983 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7984 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007985 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7986 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307987 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7988 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007989 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7990 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307991 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7992 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007993 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7994 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307995 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7996 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007997 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7998 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307999 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8000 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008001 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8002 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308003 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8004 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008005 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8006 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308007 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8008 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008009 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8010 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308011 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8012 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008013 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8014 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308015 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8016 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008017 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8018 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308019 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8020 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008021 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8022 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308023 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8024 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008025 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8026 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308027 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8028 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008029 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8030 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308031 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8032 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008033 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8034 MSM_BACKEND_DAI_SEC_TDM_RX_2,
8035 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8036 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308037};
8038
8039static const struct snd_kcontrol_new sec_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008040 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8041 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308042 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8043 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008044 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8045 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308046 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8047 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008048 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8049 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308050 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8051 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008052 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8053 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308054 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8055 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008056 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8057 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308058 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8059 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008060 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8061 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308062 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8063 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008064 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8065 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308066 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8067 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008068 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8069 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308070 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8071 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008072 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8073 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308074 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8075 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008076 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8077 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308078 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8079 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008080 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8081 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308082 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8083 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008084 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8085 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308086 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8087 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008088 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8089 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308090 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8091 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008092 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8093 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308094 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8095 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008096 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8097 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308098 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8099 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008100 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8101 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308102 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8103 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008104 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8105 MSM_BACKEND_DAI_SEC_TDM_RX_3,
8106 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8107 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308108};
8109
8110static const struct snd_kcontrol_new sec_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008111 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8112 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308113 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8114 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008115 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8116 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308117 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8118 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008119 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8120 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308121 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8122 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008123 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8124 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308125 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8126 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008127 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8128 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308129 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8130 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008131 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8132 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308133 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8134 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008135 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8136 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308137 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8138 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008139 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8140 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308141 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8142 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008143 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8144 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308145 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8146 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008147 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8148 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308149 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8150 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008151 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8152 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308153 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8154 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008155 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8156 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308157 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8158 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008159 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8160 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308161 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8162 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008163 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8164 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308165 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8166 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008167 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8168 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308169 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8170 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008171 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8172 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308173 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8174 msm_routing_put_audio_mixer),
8175};
8176
8177static const struct snd_kcontrol_new tert_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008178 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8179 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308180 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8181 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008182 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8183 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308184 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8185 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008186 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8187 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308188 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8189 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008190 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8191 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308192 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8193 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008194 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8195 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308196 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8197 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008198 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8199 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308200 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8201 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008202 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8203 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308204 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8205 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008206 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8207 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308208 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8209 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008210 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8211 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308212 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8213 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008214 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8215 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308216 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8217 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008218 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8219 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308220 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8221 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008222 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8223 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308224 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8225 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008226 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8227 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308228 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8229 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008230 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8231 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308232 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8233 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008234 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8235 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308236 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8237 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008238 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8239 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308240 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8241 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008242 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8243 MSM_BACKEND_DAI_TERT_TDM_RX_0,
8244 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8245 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308246};
8247
8248static const struct snd_kcontrol_new tert_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008249 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8250 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308251 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8252 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008253 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8254 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308255 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8256 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008257 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8258 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308259 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8260 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008261 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8262 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308263 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8264 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008265 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8266 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308267 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8268 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008269 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8270 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308271 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8272 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008273 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8274 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308275 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8276 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008277 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8278 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308279 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8280 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008281 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8282 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308283 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8284 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008285 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8286 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308287 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8288 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008289 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8290 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308291 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8292 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008293 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8294 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308295 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8296 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008297 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8298 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308299 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8300 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008301 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8302 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308303 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8304 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008305 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8306 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308307 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8308 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008309 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8310 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308311 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8312 msm_routing_put_audio_mixer),
8313};
8314
8315static const struct snd_kcontrol_new tert_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008316 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8317 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308318 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8319 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008320 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8321 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308322 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8323 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008324 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8325 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308326 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8327 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008328 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8329 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308330 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8331 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008332 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8333 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308334 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8335 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008336 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8337 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308338 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8339 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008340 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8341 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308342 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8343 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008344 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8345 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308346 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8347 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008348 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8349 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308350 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8351 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008352 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8353 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308354 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8355 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008356 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8357 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308358 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8359 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008360 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8361 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308362 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8363 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008364 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8365 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308366 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8367 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008368 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8369 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308370 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8371 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008372 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8373 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308374 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8375 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008376 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8377 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308378 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8379 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008380 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8381 MSM_BACKEND_DAI_TERT_TDM_RX_1,
8382 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8383 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308384};
8385
8386static const struct snd_kcontrol_new tert_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008387 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8388 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308389 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8390 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008391 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8392 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308393 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8394 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008395 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8396 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308397 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8398 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008399 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8400 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308401 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8402 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008403 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8404 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308405 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8406 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008407 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8408 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308409 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8410 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008411 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8412 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308413 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8414 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008415 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8416 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308417 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8418 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008419 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8420 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308421 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8422 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008423 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8424 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308425 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8426 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008427 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8428 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308429 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8430 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008431 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8432 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308433 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8434 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008435 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8436 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308437 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8438 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008439 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8440 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308441 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8442 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008443 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8444 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308445 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8446 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008447 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8448 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308449 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8450 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008451 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8452 MSM_BACKEND_DAI_TERT_TDM_RX_2,
8453 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8454 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308455};
8456
8457static const struct snd_kcontrol_new tert_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008458 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8459 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308460 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8461 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008462 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8463 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308464 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8465 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008466 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8467 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308468 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8469 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008470 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8471 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308472 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8473 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008474 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8475 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308476 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8477 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008478 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8479 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308480 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8481 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008482 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8483 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308484 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8485 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008486 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8487 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308488 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8489 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008490 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8491 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308492 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8493 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008494 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8495 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308496 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8497 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008498 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8499 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308500 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8501 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008502 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8503 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308504 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8505 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008506 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8507 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308508 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8509 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008510 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8511 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308512 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8513 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008514 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8515 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308516 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8517 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008518 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8519 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308520 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8521 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008522 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8523 MSM_BACKEND_DAI_TERT_TDM_RX_3,
8524 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8525 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308526};
8527
8528static const struct snd_kcontrol_new tert_tdm_rx_4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008529 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8530 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308531 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008533 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8534 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308535 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008537 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8538 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308539 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008541 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8542 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308543 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008545 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8546 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308547 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008549 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8550 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308551 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008553 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8554 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308555 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8556 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008557 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8558 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308559 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8560 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008561 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8562 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308563 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8564 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008565 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8566 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308567 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8568 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008569 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8570 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308571 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8572 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008573 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8574 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308575 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8576 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008577 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8578 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308579 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8580 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008581 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8582 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308583 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8584 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008585 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8586 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308587 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8588 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008589 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8590 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308591 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8592 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008593 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8594 MSM_BACKEND_DAI_TERT_TDM_RX_4,
8595 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8596 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308597};
8598
8599static const struct snd_kcontrol_new quat_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008600 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8601 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308602 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8603 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008604 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8605 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308606 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8607 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008608 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8609 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308610 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8611 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008612 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8613 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308614 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8615 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008616 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8617 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308618 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8619 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008620 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8621 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308622 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8623 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008624 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8625 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308626 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8627 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008628 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8629 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308630 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8631 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008632 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8633 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308634 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8635 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008636 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8637 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308638 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8639 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008640 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8641 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308642 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8643 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008644 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8645 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308646 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8647 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008648 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8649 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308650 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8651 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008652 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8653 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308654 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8655 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008656 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8657 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308658 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8659 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008660 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8661 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308662 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8663 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008664 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8665 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308666 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8667 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008668 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8669 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
8670 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8671 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308672};
8673
8674static const struct snd_kcontrol_new quat_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008675 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8676 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308677 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8678 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008679 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8680 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308681 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8682 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008683 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8684 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308685 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8686 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008687 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8688 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308689 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8690 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008691 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8692 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308693 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8694 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008695 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8696 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308697 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8698 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008699 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8700 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308701 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8702 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008703 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8704 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308705 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8706 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008707 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8708 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308709 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8710 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008711 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8712 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308713 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8714 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008715 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8716 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308717 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8718 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008719 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8720 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308721 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8722 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008723 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8724 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308725 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8726 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008727 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8728 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308729 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8730 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008731 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8732 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308733 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8734 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008735 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8736 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308737 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8738 msm_routing_put_audio_mixer),
8739};
8740
8741static const struct snd_kcontrol_new quat_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008742 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8743 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308744 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8745 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008746 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8747 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308748 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8749 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008750 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8751 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308752 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008754 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8755 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308756 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8757 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008758 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8759 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308760 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8761 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008762 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8763 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308764 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8765 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008766 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8767 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308768 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8769 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008770 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8771 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308772 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8773 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008774 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8775 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308776 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8777 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008778 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8779 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308780 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8781 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008782 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8783 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308784 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8785 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008786 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8787 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308788 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8789 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008790 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8791 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308792 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8793 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008794 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8795 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308796 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8797 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008798 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8799 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308800 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8801 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008802 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8803 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308804 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8805 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008806 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8807 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308808 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8809 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008810 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8811 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
8812 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8813 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308814};
8815
8816static const struct snd_kcontrol_new quat_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008817 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8818 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308819 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8820 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008821 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8822 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308823 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8824 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008825 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8826 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308827 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8828 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008829 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8830 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308831 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8832 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008833 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8834 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308835 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8836 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008837 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8838 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308839 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8840 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008841 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8842 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308843 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8844 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008845 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8846 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308847 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8848 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008849 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8850 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308851 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8852 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008853 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8854 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308855 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8856 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008857 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8858 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308859 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8860 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008861 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8862 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308863 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8864 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008865 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8866 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308867 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8868 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008869 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8870 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308871 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8872 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008873 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8874 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308875 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8876 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008877 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8878 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308879 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8880 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008881 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8882 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308883 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8884 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008885 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8886 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
8887 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8888 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308889};
8890
8891static const struct snd_kcontrol_new quat_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008892 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8893 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308894 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8895 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008896 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8897 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308898 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8899 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008900 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8901 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308902 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8903 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008904 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8905 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308906 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8907 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008908 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8909 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308910 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8911 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008912 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8913 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308914 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8915 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008916 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8917 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308918 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8919 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008920 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8921 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308922 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8923 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008924 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8925 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308926 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8927 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008928 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8929 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308930 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8931 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008932 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8933 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308934 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8935 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008936 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8937 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308938 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8939 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008940 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8941 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308942 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8943 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008944 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8945 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308946 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8947 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008948 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8949 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308950 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8951 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008952 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8953 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308954 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8955 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008956 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8957 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308958 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8959 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008960 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8961 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
8962 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8963 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308964};
8965
Rohit Kumara5077932017-09-10 22:05:05 +05308966static const struct snd_kcontrol_new quin_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008967 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8968 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308969 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8970 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008971 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8972 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308973 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8974 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008975 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8976 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308977 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8978 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008979 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8980 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308981 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8982 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008983 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8984 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308985 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8986 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008987 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8988 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308989 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8990 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008991 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8992 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308993 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8994 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008995 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8996 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308997 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8998 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008999 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9000 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309001 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9002 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009003 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9004 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309005 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9006 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009007 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9008 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309009 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9010 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009011 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9012 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309013 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9014 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009015 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9016 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309017 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9018 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009019 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9020 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309021 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9022 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009023 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9024 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309025 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9026 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009027 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9028 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309029 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9030 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009031 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9032 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309033 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9034 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009035 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9036 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
9037 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9038 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309039};
9040
9041static const struct snd_kcontrol_new quin_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009042 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9043 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309044 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9045 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009046 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9047 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309048 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9049 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009050 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9051 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309052 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9053 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009054 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9055 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309056 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9057 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009058 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9059 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309060 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9061 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009062 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9063 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309064 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9065 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009066 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9067 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309068 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9069 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009070 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9071 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309072 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9073 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009074 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9075 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309076 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9077 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009078 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9079 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309080 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9081 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009082 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9083 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309084 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9085 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009086 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9087 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309088 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9089 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009090 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9091 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309092 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9093 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009094 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9095 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309096 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9097 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009098 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9099 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309100 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9101 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009102 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9103 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309104 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9105 msm_routing_put_audio_mixer),
9106};
9107
9108static const struct snd_kcontrol_new quin_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009109 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9110 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +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("MultiMedia2", SND_SOC_NOPM,
9114 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309115 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9116 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009117 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9118 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309119 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9120 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009121 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9122 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309123 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9124 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009125 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9126 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309127 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9128 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009129 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9130 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309131 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9132 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009133 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9134 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309135 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9136 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009137 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9138 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309139 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9140 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009141 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9142 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309143 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9144 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009145 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9146 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309147 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9148 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009149 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9150 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309151 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9152 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009153 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9154 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309155 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9156 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009157 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9158 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309159 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009161 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9162 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309163 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9164 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009165 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9166 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309167 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009169 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9170 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309171 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9172 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009173 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9174 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309175 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9176 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009177 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9178 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
9179 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9180 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309181};
9182
9183static const struct snd_kcontrol_new quin_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009184 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9185 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309186 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9187 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009188 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9189 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309190 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9191 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009192 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9193 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309194 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9195 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009196 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9197 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309198 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9199 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009200 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9201 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309202 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9203 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009204 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9205 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309206 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9207 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009208 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9209 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309210 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9211 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009212 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9213 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309214 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9215 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009216 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9217 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309218 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9219 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009220 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9221 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309222 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9223 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009224 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9225 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309226 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9227 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009228 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9229 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309230 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9231 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009232 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9233 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309234 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9235 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009236 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9237 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309238 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9239 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009240 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9241 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309242 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9243 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009244 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9245 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309246 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9247 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009248 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9249 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309250 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9251 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009252 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9253 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
9254 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9255 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309256};
9257
9258static const struct snd_kcontrol_new quin_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009259 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9260 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309261 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9262 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009263 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9264 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309265 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9266 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009267 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9268 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309269 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9270 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009271 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9272 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309273 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9274 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009275 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9276 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309277 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9278 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009279 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9280 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309281 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9282 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009283 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9284 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309285 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9286 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009287 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9288 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309289 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9290 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009291 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9292 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309293 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9294 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009295 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9296 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309297 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9298 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009299 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9300 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309301 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9302 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009303 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9304 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309305 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9306 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009307 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9308 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309309 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9310 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009311 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9312 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309313 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9314 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009315 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9316 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309317 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9318 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009319 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9320 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309321 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9322 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009323 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9324 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309325 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9326 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009327 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9328 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
9329 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9330 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309331};
9332
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309333static const struct snd_kcontrol_new mmul1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009334 SOC_DOUBLE_EXT("PRI_TX", SND_SOC_NOPM,
9335 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309336 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9337 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009338 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9339 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309340 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9341 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009342 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9343 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309344 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9345 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009346 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9347 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309348 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9349 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009350 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9351 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309352 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9353 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009354 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9355 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309356 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9357 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009358 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9359 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309360 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9361 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009362 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9363 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309364 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9365 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009366 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9367 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309368 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9369 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009370 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
9371 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309372 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9373 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009374 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
9375 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309376 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9377 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009378 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
9379 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309380 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9381 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009382 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
9383 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309384 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9385 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009386 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
9387 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05309388 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9389 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009390 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9391 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309392 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9393 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009394 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9395 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309396 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9397 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009398 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9399 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309400 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9401 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009402 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9403 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309404 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9405 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009406 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9407 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309408 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9409 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009410 SOC_DOUBLE_EXT("SLIM_4_TX", SND_SOC_NOPM,
9411 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309412 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9413 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009414 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9415 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309416 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9417 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009418 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
9419 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309420 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9421 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009422 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9423 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309424 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9425 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009426 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9427 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309428 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9429 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009430 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9431 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309432 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9433 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009434 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9435 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309436 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9437 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009438 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9439 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309440 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9441 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009442 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9443 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309444 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9445 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009446 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9447 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309448 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9449 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009450 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9451 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309452 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9453 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009454 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9455 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309456 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9457 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009458 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9459 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309460 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9461 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009462 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9463 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309464 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9465 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009466 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9467 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309468 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9469 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009470 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9471 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309472 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9473 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009474 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9475 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309476 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9477 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009478 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9479 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309480 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9481 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009482 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9483 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309484 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9485 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009486 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9487 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309488 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9489 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009490 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9491 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309492 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9493 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009494 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9495 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309496 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9497 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009498 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9499 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309500 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9501 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009502 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
9503 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309504 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9505 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009506 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
9507 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309508 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9509 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009510 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9511 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309512 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9513 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309514 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9515 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9516 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9517 msm_routing_put_audio_mixer),
9518 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9519 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9520 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9521 msm_routing_put_audio_mixer),
9522 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9523 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9524 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9525 msm_routing_put_audio_mixer),
9526 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9527 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9528 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9529 msm_routing_put_audio_mixer),
9530 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9531 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9532 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9533 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309534 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9535 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9536 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9537 msm_routing_put_audio_mixer),
9538 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9539 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9540 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9541 msm_routing_put_audio_mixer),
9542 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9543 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9544 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9545 msm_routing_put_audio_mixer),
9546 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9547 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9548 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9549 msm_routing_put_audio_mixer),
9550 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9551 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9552 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9553 msm_routing_put_audio_mixer),
9554 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9555 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9556 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9557 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009558 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9559 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9560 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9561 msm_routing_put_audio_mixer),
9562 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9563 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9564 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9565 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +05309566 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
9567 MSM_BACKEND_DAI_SLIMBUS_9_TX,
9568 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9569 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +05309570 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
9571 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
9572 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9573 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309574};
9575
9576static const struct snd_kcontrol_new mmul2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009577 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9578 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309579 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9580 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009581 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9582 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309583 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9584 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009585 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9586 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309587 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9588 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009589 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9590 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309591 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9592 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009593 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9594 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309595 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9596 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009597 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9598 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309599 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9600 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009601 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9602 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309603 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9604 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009605 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9606 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309607 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9608 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009609 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9610 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309611 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9612 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009613 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9614 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309615 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9616 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009617 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
9618 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309619 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9620 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009621 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
9622 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309623 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9624 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009625 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9626 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309627 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9628 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009629 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9630 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309631 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9632 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009633 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9634 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309635 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9636 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009637 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9638 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309639 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9640 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009641 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9642 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309643 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9644 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009645 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9646 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309647 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9648 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009649 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9650 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309651 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9652 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009653 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9654 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309655 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9656 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009657 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9658 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309659 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9660 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009661 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9662 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309663 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9664 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009665 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9666 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309667 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9668 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009669 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9670 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309671 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9672 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009673 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9674 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309675 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9676 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009677 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9678 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309679 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9680 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009681 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9682 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309683 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9684 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009685 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9686 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309687 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9688 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009689 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9690 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309691 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9692 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009693 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9694 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309695 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9696 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009697 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9698 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309699 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9700 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009701 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9702 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309703 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9704 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009705 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
9706 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309707 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9708 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009709 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9710 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309711 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9712 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309713 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9714 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9715 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9716 msm_routing_put_audio_mixer),
9717 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9718 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9719 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9720 msm_routing_put_audio_mixer),
9721 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9722 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9723 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9724 msm_routing_put_audio_mixer),
9725 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9726 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9727 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9728 msm_routing_put_audio_mixer),
9729 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9730 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9731 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9732 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309733 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9734 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9735 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9736 msm_routing_put_audio_mixer),
9737 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9738 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9739 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9740 msm_routing_put_audio_mixer),
9741 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9742 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9743 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9744 msm_routing_put_audio_mixer),
9745 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9746 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9747 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9748 msm_routing_put_audio_mixer),
9749 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9750 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9751 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9752 msm_routing_put_audio_mixer),
9753 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9754 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9755 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9756 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009757 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9758 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9759 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9760 msm_routing_put_audio_mixer),
9761 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9762 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9763 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9764 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +05309765 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
9766 MSM_BACKEND_DAI_SLIMBUS_9_TX,
9767 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9768 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +05309769 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
9770 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
9771 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9772 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309773};
9774
9775static const struct snd_kcontrol_new mmul3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009776 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9777 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309778 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9779 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009780 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9781 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309782 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9783 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009784 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9785 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309786 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9787 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009788 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9789 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309790 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9791 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009792 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9793 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309794 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9795 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009796 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
9797 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309798 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9799 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009800 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
9801 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309802 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9803 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009804 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
9805 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309806 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9807 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009808 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
9809 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309810 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9811 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009812 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
9813 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05309814 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9815 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009816 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9817 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309818 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9819 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009820 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9821 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309822 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9823 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009824 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9825 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309826 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9827 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009828 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9829 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309830 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9831 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009832 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9833 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309834 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9835 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009836 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9837 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309838 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9839 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009840 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9841 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309842 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9843 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009844 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9845 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309846 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9847 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009848 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9849 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309850 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9851 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009852 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9853 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309854 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9855 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009856 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9857 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309858 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9859 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009860 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9861 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309862 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9863 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009864 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9865 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309866 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9867 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009868 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9869 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309870 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9871 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009872 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9873 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309874 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9875 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009876 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9877 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309878 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9879 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009880 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9881 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309882 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9883 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009884 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9885 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309886 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9887 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009888 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9889 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309890 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9891 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009892 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9893 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309894 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9895 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009896 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9897 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309898 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9899 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009900 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9901 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309902 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9903 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009904 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9905 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309906 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9907 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009908 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9909 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309910 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9911 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309912 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9913 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9914 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9915 msm_routing_put_audio_mixer),
9916 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9917 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9918 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9919 msm_routing_put_audio_mixer),
9920 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9921 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9922 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9923 msm_routing_put_audio_mixer),
9924 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9925 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9926 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9927 msm_routing_put_audio_mixer),
9928 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9929 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9930 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9931 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309932 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9933 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9934 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9935 msm_routing_put_audio_mixer),
9936 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9937 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9938 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9939 msm_routing_put_audio_mixer),
9940 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9941 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9942 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9943 msm_routing_put_audio_mixer),
9944 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9945 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9946 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9947 msm_routing_put_audio_mixer),
9948 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9949 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9950 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9951 msm_routing_put_audio_mixer),
9952 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9953 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9954 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9955 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009956 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9957 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9958 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9959 msm_routing_put_audio_mixer),
9960 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9961 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9962 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9963 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +05309964 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
9965 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
9966 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9967 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309968};
9969
9970static const struct snd_kcontrol_new mmul4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009971 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9972 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309973 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9974 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009975 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9976 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309977 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9978 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009979 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9980 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309981 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9982 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009983 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9984 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309985 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9986 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009987 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9988 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309989 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9990 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009991 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9992 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309993 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9994 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009995 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9996 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309997 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9998 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009999 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10000 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010001 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10002 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010003 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10004 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010005 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10006 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010007 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10008 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010009 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10010 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010011 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10012 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010013 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10014 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010015 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10016 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010017 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10018 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010019 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10020 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010021 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10022 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010023 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10024 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010025 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10026 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010027 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10028 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010029 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10030 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010031 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10032 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010033 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10034 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010035 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10036 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010037 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10038 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010039 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10040 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010041 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10042 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010043 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10044 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010045 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10046 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010047 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10048 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010049 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10050 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010051 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10052 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010053 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10054 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010055 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10056 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010057 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10058 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010059 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10060 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010061 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10062 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010063 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10064 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010065 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10066 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010067 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10068 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010069 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10070 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010071 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10072 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010073 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10074 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010075 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10076 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010077 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10078 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010079 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10080 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010081 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10082 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010083 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10084 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010085 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10086 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010087 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10088 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010089 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10090 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010091 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10092 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010093 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10094 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010095 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10096 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010097 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10098 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010099 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10100 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010101 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10102 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010103 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10104 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10105 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10106 msm_routing_put_audio_mixer),
10107 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10108 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10109 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10110 msm_routing_put_audio_mixer),
10111 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10112 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10113 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10114 msm_routing_put_audio_mixer),
10115 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10116 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10117 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10118 msm_routing_put_audio_mixer),
10119 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10120 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10121 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10122 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010123 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10124 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10125 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10126 msm_routing_put_audio_mixer),
10127 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10128 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10129 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10130 msm_routing_put_audio_mixer),
10131 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10132 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10133 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10134 msm_routing_put_audio_mixer),
10135 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10136 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10137 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10138 msm_routing_put_audio_mixer),
10139 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10140 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10141 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10142 msm_routing_put_audio_mixer),
10143 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10144 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10145 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10146 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010147 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10148 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10149 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10150 msm_routing_put_audio_mixer),
10151 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10152 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10153 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10154 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010155 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10156 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10157 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10158 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010159};
10160
10161static const struct snd_kcontrol_new mmul5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010162 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10163 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010164 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10165 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010166 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10167 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010168 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10169 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010170 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
10171 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010172 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10173 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010174 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10175 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010176 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10177 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010178 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10179 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010180 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10181 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010182 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
10183 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010184 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10185 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010186 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
10187 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010188 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10189 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010190 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
10191 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010192 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10193 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010194 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
10195 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010196 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10197 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010198 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
10199 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010200 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10201 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010202 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10203 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010204 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10205 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010206 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10207 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010208 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10209 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010210 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10211 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010212 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10213 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010214 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10215 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010216 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10217 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010218 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10219 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010220 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10221 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010222 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10223 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010224 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10225 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010226 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10227 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010228 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10229 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010230 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10231 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010232 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10233 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010234 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10235 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010236 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10237 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010238 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10239 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010240 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10241 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010242 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10243 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010244 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10245 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010246 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10247 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010248 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10249 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010250 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10251 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010252 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10253 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010254 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10255 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010256 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10257 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010258 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10259 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010260 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10261 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010262 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10263 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010264 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10265 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010266 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10267 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010268 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10269 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010270 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10271 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010272 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10273 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010274 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10275 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010276 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10277 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010278 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10279 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010280 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10281 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010282 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10283 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010284 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10285 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010286 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10287 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010288 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10289 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010290 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10291 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010292 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10293 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010294 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10295 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010296 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10297 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010298 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10299 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010300 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10301 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010302 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10303 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010304 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10305 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010306 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10307 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010308 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10309 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010310 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
10311 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010312 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10313 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010314 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10315 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010316 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10317 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010318 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10319 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10320 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10321 msm_routing_put_audio_mixer),
10322 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10323 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10324 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10325 msm_routing_put_audio_mixer),
10326 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10327 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10328 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10329 msm_routing_put_audio_mixer),
10330 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10331 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10332 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10333 msm_routing_put_audio_mixer),
10334 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10335 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10336 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10337 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010338 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10339 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10340 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10341 msm_routing_put_audio_mixer),
10342 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10343 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10344 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10345 msm_routing_put_audio_mixer),
10346 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10347 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10348 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10349 msm_routing_put_audio_mixer),
10350 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10351 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10352 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10353 msm_routing_put_audio_mixer),
10354 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10355 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10356 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10357 msm_routing_put_audio_mixer),
10358 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10359 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10360 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10361 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010362 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10363 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10364 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10365 msm_routing_put_audio_mixer),
10366 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10367 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10368 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10369 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053010370 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
10371 MSM_BACKEND_DAI_SLIMBUS_9_TX,
10372 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10373 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010374 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10375 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10376 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10377 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010378};
10379
10380static const struct snd_kcontrol_new mmul6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010381 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10382 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010383 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10384 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010385 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10386 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010387 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10388 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010389 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10390 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010391 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10392 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010393 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10394 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010395 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10396 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010397 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10398 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010399 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10400 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010401 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10402 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010403 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10404 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010405 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10406 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010407 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10408 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010409 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10410 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010411 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10412 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010413 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
10414 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010415 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10416 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010417 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
10418 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010419 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10420 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010421 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
10422 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010423 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10424 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010425 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
10426 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010427 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10428 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010429 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
10430 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010431 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10432 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010433 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10434 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010435 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10436 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010437 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10438 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010439 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10440 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010441 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10442 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010443 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10444 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010445 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10446 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010447 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10448 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010449 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10450 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010451 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10452 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010453 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10454 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010455 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10456 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010457 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10458 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010459 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10460 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010461 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10462 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010463 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10464 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010465 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10466 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010467 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10468 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010469 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10470 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010471 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10472 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010473 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10474 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010475 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10476 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010477 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10478 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010479 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10480 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010481 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10482 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010483 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10484 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010485 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10486 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010487 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10488 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010489 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10490 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010491 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10492 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010493 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10494 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010495 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10496 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010497 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10498 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010499 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10500 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010501 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10502 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010503 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10504 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010505 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10506 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010507 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10508 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010509 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10510 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010511 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10512 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010513 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10514 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010515 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10516 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010517 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10518 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10519 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10520 msm_routing_put_audio_mixer),
10521 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10522 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10523 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10524 msm_routing_put_audio_mixer),
10525 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10526 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10527 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10528 msm_routing_put_audio_mixer),
10529 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10530 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10531 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10532 msm_routing_put_audio_mixer),
10533 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10534 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10535 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10536 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010537 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10538 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10539 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10540 msm_routing_put_audio_mixer),
10541 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10542 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10543 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10544 msm_routing_put_audio_mixer),
10545 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10546 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10547 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10548 msm_routing_put_audio_mixer),
10549 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10550 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10551 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10552 msm_routing_put_audio_mixer),
10553 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10554 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10555 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10556 msm_routing_put_audio_mixer),
10557 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10558 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10559 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10560 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010561 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10562 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10563 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10564 msm_routing_put_audio_mixer),
10565 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10566 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10567 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10568 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010569 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10570 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10571 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10572 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010573};
10574
10575static const struct snd_kcontrol_new mmul8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010576 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10577 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010578 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10579 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010580 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10581 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010582 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10583 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010584 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10585 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010586 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10587 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010588 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10589 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010590 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010592 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10593 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010594 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10595 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010596 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10597 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010598 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10599 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010600 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10601 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010602 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10603 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010604 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10605 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010606 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10607 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010608 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10609 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010610 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10611 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010612 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10613 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010614 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10615 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010616 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10617 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010618 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10619 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010620 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10621 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010622 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10623 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010624 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
10625 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010626 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10627 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010628 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10629 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010630 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10631 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010632 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10633 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010634 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10635 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010636 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10637 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010638 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10639 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010640 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10641 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010642 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10643 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010644 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10645 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010646 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10647 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010648 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10649 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010650 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10651 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010652 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10653 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010654 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10655 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010656 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10657 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010658 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10659 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010660 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10661 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010662 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10663 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010664 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10665 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010666 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10667 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010668 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10669 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010670 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10671 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010672 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10673 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010674 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10675 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010676 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10677 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010678 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10679 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010680 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10681 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010682 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10683 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010684 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10685 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010686 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10687 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010688 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10689 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010690 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10691 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010692 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10693 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010694 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10695 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010696 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10697 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010698 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10699 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010700 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10701 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010702 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10703 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010704 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10705 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010706 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10707 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010708 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10709 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010710 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10711 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010712 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10713 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010714 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10715 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010716 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10717 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10718 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10719 msm_routing_put_audio_mixer),
10720 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10721 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10722 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10723 msm_routing_put_audio_mixer),
10724 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10725 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10726 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10727 msm_routing_put_audio_mixer),
10728 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10729 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10730 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10731 msm_routing_put_audio_mixer),
10732 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10733 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10734 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10735 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010736 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10737 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10738 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10739 msm_routing_put_audio_mixer),
10740 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10741 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10742 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10743 msm_routing_put_audio_mixer),
10744 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10745 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10746 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10747 msm_routing_put_audio_mixer),
10748 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10749 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10750 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10751 msm_routing_put_audio_mixer),
10752 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10753 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10754 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10755 msm_routing_put_audio_mixer),
10756 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10757 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10758 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10759 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010760 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10761 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10762 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10763 msm_routing_put_audio_mixer),
10764 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10765 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10766 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10767 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053010768 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
10769 MSM_BACKEND_DAI_SLIMBUS_9_TX,
10770 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10771 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010772 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10773 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10774 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10775 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010776};
10777
Asish Bhattacharya34504582017-08-08 12:55:01 +053010778static const struct snd_kcontrol_new mmul16_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010779 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10780 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010781 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10782 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010783 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10784 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010785 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10786 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010787 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10788 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010789 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10790 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010791 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10792 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010793 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10794 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010795 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10796 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010797 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10798 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010799 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10800 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010801 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10802 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010803 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10804 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010805 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10806 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010807 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10808 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010809 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10810 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010811 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10812 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010813 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10814 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010815 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10816 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010817 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10818 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010819 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10820 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010821 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10822 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010823 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10824 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010825 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10826 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010827 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
10828 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010829 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10830 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010831 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10832 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010833 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10834 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010835 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10836 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010837 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10838 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010839 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10840 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010841 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10842 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010843 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10844 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010845 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10846 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010847 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10848 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010849 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10850 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010851 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10852 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010853 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10854 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010855 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10856 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010857 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10858 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010859 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10860 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010861 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10862 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010863 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10864 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010865 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10866 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010867 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10868 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010869 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10870 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010871 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10872 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010873 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10874 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010875 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10876 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010877 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10878 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010879 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10880 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010881 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10882 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010883 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10884 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010885 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10886 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010887 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10888 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010889 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10890 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010891 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10892 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010893 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10894 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010895 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10896 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010897 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10898 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010899 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10900 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010901 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10902 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010903 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
10904 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010905 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10906 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010907 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
10908 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010909 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10910 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010911 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
10912 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010913 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10914 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010915 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
10916 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010917 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10918 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010919 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10920 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10921 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10922 msm_routing_put_audio_mixer),
10923 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10924 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10925 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10926 msm_routing_put_audio_mixer),
10927 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10928 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10929 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10930 msm_routing_put_audio_mixer),
10931 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10932 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10933 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10934 msm_routing_put_audio_mixer),
10935 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10936 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10937 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10938 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010939 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10940 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10941 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10942 msm_routing_get_audio_mixer,
10943 msm_routing_put_audio_mixer),
10944 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10945 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10946 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10947 msm_routing_get_audio_mixer,
10948 msm_routing_put_audio_mixer),
10949 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10950 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10951 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10952 msm_routing_get_audio_mixer,
10953 msm_routing_put_audio_mixer),
10954 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10955 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10956 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10957 msm_routing_get_audio_mixer,
10958 msm_routing_put_audio_mixer),
10959 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10960 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10961 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10962 msm_routing_get_audio_mixer,
10963 msm_routing_put_audio_mixer),
10964 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10965 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10966 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10967 msm_routing_get_audio_mixer,
10968 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010969 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10970 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10971 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10972 msm_routing_put_audio_mixer),
10973 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10974 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10975 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10976 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053010977 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
10978 MSM_BACKEND_DAI_SLIMBUS_9_TX,
10979 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10980 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010981 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10982 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10983 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10984 msm_routing_put_audio_mixer),
Asish Bhattacharya34504582017-08-08 12:55:01 +053010985};
10986
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010987static const struct snd_kcontrol_new mmul9_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010988 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10989 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010990 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10991 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010992 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10993 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010994 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10995 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010996 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10997 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010998 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10999 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011000 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11001 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011002 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11003 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011004 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11005 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011006 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11007 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011008 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11009 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011010 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11011 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011012 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11013 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011014 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11015 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011016 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11017 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011018 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11019 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011020 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11021 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011022 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011024 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11025 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011026 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11027 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011028 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11029 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011030 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11031 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011032 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11033 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011034 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11035 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011036 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11037 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011038 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11039 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011040 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11041 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011042 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11043 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011044 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11045 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011046 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11047 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011048 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11049 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011050 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11051 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011052 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11053 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011054 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11055 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011056 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11057 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011058 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11059 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011060 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11061 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011062 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11063 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011064 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11065 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011066 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11067 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011068 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11069 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11070 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11071 msm_routing_put_audio_mixer),
11072 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11073 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11074 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11075 msm_routing_put_audio_mixer),
11076 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11077 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11078 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11079 msm_routing_put_audio_mixer),
11080 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11081 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11082 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11083 msm_routing_put_audio_mixer),
11084 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11085 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11086 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11087 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011088 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11089 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11090 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11091 msm_routing_put_audio_mixer),
11092 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11093 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11094 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11095 msm_routing_put_audio_mixer),
11096 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11097 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11098 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11099 msm_routing_put_audio_mixer),
11100 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11101 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11102 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11103 msm_routing_put_audio_mixer),
11104 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11105 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11106 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11107 msm_routing_put_audio_mixer),
11108 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11109 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11110 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11111 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011112 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11113 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11114 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11115 msm_routing_put_audio_mixer),
11116 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11117 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11118 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11119 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011120 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11121 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11122 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11123 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011124};
11125
Laxminath Kasam38070be2017-08-17 18:21:59 +053011126static const struct snd_kcontrol_new mmul10_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011127 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11128 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011129 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11130 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011131 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11132 MSM_BACKEND_DAI_PRI_MI2S_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011133 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11134 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011135 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11136 MSM_BACKEND_DAI_INT_FM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011137 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11138 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011139 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11140 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011141 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11142 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011143 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11144 MSM_BACKEND_DAI_AFE_PCM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011145 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11146 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011147 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11148 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011149 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11150 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011151 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11152 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011153 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11154 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011155 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11156 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011157 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11158 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011159 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11160 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Vikram Panduranga72863152017-09-06 15:47:35 -070011161 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11162 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011163 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11164 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011165 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11166 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011167 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11168 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011169 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11170 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011171 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11172 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011173 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11174 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011175 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11176 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011177 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11178 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011179 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11180 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011181 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11182 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011183 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11184 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011185 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11186 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011187 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11188 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011189 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11190 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011191 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11192 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011193 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11194 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011195 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
11196 MSM_BACKEND_DAI_USB_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011197 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11198 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011199 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11200 MSM_BACKEND_DAI_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011201 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11202 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011203 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
11204 MSM_BACKEND_DAI_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011205 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11206 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011207 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
11208 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011209 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11210 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011211 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
11212 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011213 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11214 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011215 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
11216 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011217 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11218 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011219 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11220 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011221 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11222 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011223 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
11224 MSM_BACKEND_DAI_INT2_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011225 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11226 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011227 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11228 MSM_BACKEND_DAI_INT3_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011229 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11230 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011231 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11232 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11233 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11234 msm_routing_put_audio_mixer),
11235 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11236 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11237 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11238 msm_routing_put_audio_mixer),
11239 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11240 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11241 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11242 msm_routing_put_audio_mixer),
11243 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11244 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11245 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11246 msm_routing_put_audio_mixer),
11247 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11248 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11249 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11250 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011251 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11252 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11253 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11254 msm_routing_get_audio_mixer,
11255 msm_routing_put_audio_mixer),
11256 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11257 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11258 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11259 msm_routing_get_audio_mixer,
11260 msm_routing_put_audio_mixer),
11261 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11262 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11263 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11264 msm_routing_get_audio_mixer,
11265 msm_routing_put_audio_mixer),
11266 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11267 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11268 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11269 msm_routing_get_audio_mixer,
11270 msm_routing_put_audio_mixer),
11271 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11272 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11273 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11274 msm_routing_get_audio_mixer,
11275 msm_routing_put_audio_mixer),
11276 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11277 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11278 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11279 msm_routing_get_audio_mixer,
11280 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011281 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11282 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11283 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11284 msm_routing_put_audio_mixer),
11285 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11286 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11287 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11288 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053011289 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
11290 MSM_BACKEND_DAI_SLIMBUS_9_TX,
11291 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11292 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011293 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11294 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11295 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11296 msm_routing_put_audio_mixer),
Laxminath Kasam38070be2017-08-17 18:21:59 +053011297};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011298static const struct snd_kcontrol_new mmul17_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011299 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11300 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011301 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11302 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011303 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11304 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011305 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11306 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011307 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11308 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011309 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11310 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011311 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11312 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011313 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11314 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011315 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11316 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011317 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11318 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011319 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11320 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011321 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11322 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011323 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11324 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011325 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11326 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011327 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11328 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011329 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11330 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011331 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11332 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11333 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11334 msm_routing_put_audio_mixer),
11335 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11336 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11337 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11338 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011339 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11340 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11341 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11342 msm_routing_put_audio_mixer),
11343 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11344 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11345 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11346 msm_routing_put_audio_mixer),
11347 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11348 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11349 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11350 msm_routing_put_audio_mixer),
11351 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11352 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11353 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11354 msm_routing_put_audio_mixer),
11355 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11356 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11357 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11358 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011359 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11360 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11361 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11362 msm_routing_get_audio_mixer,
11363 msm_routing_put_audio_mixer),
11364 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11365 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11366 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11367 msm_routing_get_audio_mixer,
11368 msm_routing_put_audio_mixer),
11369 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11370 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11371 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11372 msm_routing_get_audio_mixer,
11373 msm_routing_put_audio_mixer),
11374 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11375 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11376 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11377 msm_routing_get_audio_mixer,
11378 msm_routing_put_audio_mixer),
11379 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11380 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11381 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11382 msm_routing_get_audio_mixer,
11383 msm_routing_put_audio_mixer),
11384 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11385 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11386 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11387 msm_routing_get_audio_mixer,
11388 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011389 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11390 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11391 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11392 msm_routing_put_audio_mixer),
11393 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11394 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11395 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11396 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011397 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11398 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11399 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11400 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011401};
11402
11403static const struct snd_kcontrol_new mmul18_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011404 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11405 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011406 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11407 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011408 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11409 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011410 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11411 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011412 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11413 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011414 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11415 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011416 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11417 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
11418 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11419 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011420 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11421 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11422 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11423 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011424 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11425 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011426 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11427 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011428 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11429 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011430 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11431 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011432 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11433 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011434 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11435 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011436 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11437 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011438 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11439 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011440 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11441 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011442 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11443 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011444 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11445 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011446 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11447 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011448 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11449 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11450 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11451 msm_routing_put_audio_mixer),
11452 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11453 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11454 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11455 msm_routing_put_audio_mixer),
11456 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11457 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11458 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11459 msm_routing_put_audio_mixer),
11460 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11461 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11462 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11463 msm_routing_put_audio_mixer),
11464 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11465 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11466 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11467 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011468 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11469 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11470 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11471 msm_routing_get_audio_mixer,
11472 msm_routing_put_audio_mixer),
11473 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11474 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11475 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11476 msm_routing_get_audio_mixer,
11477 msm_routing_put_audio_mixer),
11478 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11479 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11480 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11481 msm_routing_get_audio_mixer,
11482 msm_routing_put_audio_mixer),
11483 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11484 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11485 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11486 msm_routing_get_audio_mixer,
11487 msm_routing_put_audio_mixer),
11488 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11489 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11490 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11491 msm_routing_get_audio_mixer,
11492 msm_routing_put_audio_mixer),
11493 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11494 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11495 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11496 msm_routing_get_audio_mixer,
11497 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011498 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11499 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11500 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11501 msm_routing_put_audio_mixer),
11502 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11503 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11504 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11505 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011506 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11507 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11508 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11509 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011510};
11511
11512static const struct snd_kcontrol_new mmul19_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011513 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11514 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011515 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11516 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011517 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11518 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011519 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11520 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011521 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11522 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011523 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11524 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011525 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11526 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011527 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11528 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011529 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11530 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011531 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011533 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11534 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011535 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011537 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11538 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011539 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011541 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11542 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011543 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11544 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011545 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11546 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11547 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11548 msm_routing_put_audio_mixer),
11549 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11550 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11551 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11552 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011553 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11554 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11555 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11556 msm_routing_put_audio_mixer),
11557 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11558 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11559 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11560 msm_routing_put_audio_mixer),
11561 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11562 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11563 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11564 msm_routing_put_audio_mixer),
11565 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11566 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11567 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11568 msm_routing_put_audio_mixer),
11569 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11570 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11571 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11572 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011573 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11574 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11575 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11576 msm_routing_get_audio_mixer,
11577 msm_routing_put_audio_mixer),
11578 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11579 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11580 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11581 msm_routing_get_audio_mixer,
11582 msm_routing_put_audio_mixer),
11583 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11584 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11585 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11586 msm_routing_get_audio_mixer,
11587 msm_routing_put_audio_mixer),
11588 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11589 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11590 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11591 msm_routing_get_audio_mixer,
11592 msm_routing_put_audio_mixer),
11593 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11594 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11595 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11596 msm_routing_get_audio_mixer,
11597 msm_routing_put_audio_mixer),
11598 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11599 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11600 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11601 msm_routing_get_audio_mixer,
11602 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011603 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11604 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11605 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11606 msm_routing_put_audio_mixer),
11607 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11608 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11609 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11610 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011611 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11612 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11613 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11614 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011615};
11616
11617static const struct snd_kcontrol_new mmul20_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011618 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11619 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011620 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11621 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011622 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11623 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011624 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11625 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011626 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11627 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011628 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11629 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011630 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11631 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011632 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11633 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011634 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11635 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053011636 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11637 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011638 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11639 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011640 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11641 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011642 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11643 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011644 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11645 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011646 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11647 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011648 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11649 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011650 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11651 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011652 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11653 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011654 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11655 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011656 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11657 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011658 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11659 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011660 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11661 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011662 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11663 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011664 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11665 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011666 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11667 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011668 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11669 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011670 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11671 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011672 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11673 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011674 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11675 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011676 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11677 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011678 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11679 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011680 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11681 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011682 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11683 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011684 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11685 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011686 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11687 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011688 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11689 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011690 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11691 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011692 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11693 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011694 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11695 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011696 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11697 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011698 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11699 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011700 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11701 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011702 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11703 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011704 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11705 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011706 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11707 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011708 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11709 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011710 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11711 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011712 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11713 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011714 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11715 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011716 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11717 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011718 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11719 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11720 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11721 msm_routing_put_audio_mixer),
11722 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11723 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11724 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11725 msm_routing_put_audio_mixer),
11726 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11727 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11728 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11729 msm_routing_put_audio_mixer),
11730 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11731 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11732 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11733 msm_routing_put_audio_mixer),
11734 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11735 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11736 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11737 msm_routing_put_audio_mixer),
11738 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11739 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11740 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11741 msm_routing_put_audio_mixer),
11742 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11743 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11744 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11745 msm_routing_put_audio_mixer),
11746 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11747 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11748 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11749 msm_routing_put_audio_mixer),
11750 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11751 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11752 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11753 msm_routing_put_audio_mixer),
11754 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11755 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11756 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11757 msm_routing_put_audio_mixer),
11758 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11759 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11760 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11761 msm_routing_put_audio_mixer),
11762 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11763 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11764 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11765 msm_routing_put_audio_mixer),
11766 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11767 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11768 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11769 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011770 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11771 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11772 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11773 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011774};
11775
11776static const struct snd_kcontrol_new mmul21_mixer_controls[] = {
11777 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11778 MSM_BACKEND_DAI_AUXPCM_TX,
11779 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11780 msm_routing_put_audio_mixer),
11781 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11782 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
11783 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11784 msm_routing_put_audio_mixer),
11785 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11786 MSM_BACKEND_DAI_PRI_TDM_TX_0,
11787 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11788 msm_routing_put_audio_mixer),
11789 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11790 MSM_BACKEND_DAI_PRI_TDM_TX_1,
11791 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11792 msm_routing_put_audio_mixer),
11793 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11794 MSM_BACKEND_DAI_PRI_TDM_TX_2,
11795 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11796 msm_routing_put_audio_mixer),
11797 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11798 MSM_BACKEND_DAI_PRI_TDM_TX_3,
11799 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11800 msm_routing_put_audio_mixer),
11801 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11802 MSM_BACKEND_DAI_SEC_TDM_TX_0,
11803 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11804 msm_routing_put_audio_mixer),
11805 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11806 MSM_BACKEND_DAI_SEC_TDM_TX_1,
11807 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11808 msm_routing_put_audio_mixer),
11809 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11810 MSM_BACKEND_DAI_SEC_TDM_TX_2,
11811 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11812 msm_routing_put_audio_mixer),
11813 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11814 MSM_BACKEND_DAI_SEC_TDM_TX_3,
11815 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11816 msm_routing_put_audio_mixer),
11817 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11818 MSM_BACKEND_DAI_TERT_TDM_TX_0,
11819 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11820 msm_routing_put_audio_mixer),
11821 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11822 MSM_BACKEND_DAI_TERT_TDM_TX_1,
11823 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11824 msm_routing_put_audio_mixer),
11825 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11826 MSM_BACKEND_DAI_TERT_TDM_TX_2,
11827 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11828 msm_routing_put_audio_mixer),
11829 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11830 MSM_BACKEND_DAI_TERT_TDM_TX_3,
11831 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11832 msm_routing_put_audio_mixer),
11833 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11834 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
11835 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11836 msm_routing_put_audio_mixer),
11837 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11838 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
11839 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11840 msm_routing_put_audio_mixer),
11841 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11842 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
11843 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11844 msm_routing_put_audio_mixer),
11845 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11846 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
11847 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11848 msm_routing_put_audio_mixer),
11849 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11850 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
11851 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11852 msm_routing_put_audio_mixer),
11853 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11854 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11855 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11856 msm_routing_put_audio_mixer),
11857 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11858 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11859 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11860 msm_routing_put_audio_mixer),
11861 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11862 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11863 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11864 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011865 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011866 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11867 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011868 msm_routing_put_audio_mixer),
11869 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011870 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11871 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011872 msm_routing_put_audio_mixer),
11873 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011874 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11875 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011876 msm_routing_put_audio_mixer),
11877 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011878 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11879 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011880 msm_routing_put_audio_mixer),
11881 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011882 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11883 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011884 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011885 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011886 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11887 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11888 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011889 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011890 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11891 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11892 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011893 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011894 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11895 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11896 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011897 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011898 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11899 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11900 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011901 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011902 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11903 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11904 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011905 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011906 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11907 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11908 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011909 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11910 MSM_BACKEND_DAI_PRI_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011911 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020011912 msm_routing_put_audio_mixer),
11913 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11914 MSM_BACKEND_DAI_SEC_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011915 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020011916 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011917 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11918 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11919 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11920 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011921};
11922
Surendar Karkac1cde372018-08-14 18:56:24 +053011923static const struct snd_kcontrol_new mmul27_mixer_controls[] = {
11924 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11925 MSM_BACKEND_DAI_SLIMBUS_0_TX,
11926 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11927 msm_routing_put_audio_mixer),
11928 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11929 MSM_BACKEND_DAI_SLIMBUS_6_TX,
11930 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11931 msm_routing_put_audio_mixer),
11932 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11933 MSM_BACKEND_DAI_SLIMBUS_7_TX,
11934 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11935 msm_routing_put_audio_mixer),
11936 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11937 MSM_BACKEND_DAI_PRI_MI2S_TX,
11938 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11939 msm_routing_put_audio_mixer),
11940 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11941 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
11942 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11943 msm_routing_put_audio_mixer),
11944 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11945 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11946 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11947 msm_routing_put_audio_mixer),
11948 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11949 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11950 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11951 msm_routing_put_audio_mixer),
11952 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11953 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
11954 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11955 msm_routing_put_audio_mixer),
11956 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11957 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11958 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11959 msm_routing_put_audio_mixer),
11960 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11961 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11962 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11963 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053011964 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
11965 MSM_BACKEND_DAI_SLIMBUS_9_TX,
11966 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11967 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011968 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11969 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11970 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11971 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053011972};
11973
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011974static const struct snd_kcontrol_new mmul28_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011975 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11976 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011977 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11978 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011979 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11980 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011981 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11982 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011983 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11984 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011985 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11986 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011987 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11988 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011989 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11990 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011991 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11992 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011993 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11994 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011995 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11996 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011997 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11998 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011999 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
12000 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012001 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12002 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012003 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
12004 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012005 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12006 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080012007 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12008 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
12009 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12010 msm_routing_put_audio_mixer),
12011 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12012 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
12013 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12014 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012015 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12016 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12017 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12018 msm_routing_put_audio_mixer),
12019 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12020 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12021 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12022 msm_routing_put_audio_mixer),
12023 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12024 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12025 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12026 msm_routing_put_audio_mixer),
12027 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12028 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12029 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12030 msm_routing_put_audio_mixer),
12031 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12032 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12033 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12034 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012035 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12036 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12037 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12038 msm_routing_get_audio_mixer,
12039 msm_routing_put_audio_mixer),
12040 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12041 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12042 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12043 msm_routing_get_audio_mixer,
12044 msm_routing_put_audio_mixer),
12045 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12046 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12047 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12048 msm_routing_get_audio_mixer,
12049 msm_routing_put_audio_mixer),
12050 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12051 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12052 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12053 msm_routing_get_audio_mixer,
12054 msm_routing_put_audio_mixer),
12055 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12056 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12057 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12058 msm_routing_get_audio_mixer,
12059 msm_routing_put_audio_mixer),
12060 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12061 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12062 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12063 msm_routing_get_audio_mixer,
12064 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012065 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12066 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12067 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12068 msm_routing_put_audio_mixer),
12069 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12070 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12071 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12072 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012073 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12074 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12075 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12076 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012077};
12078
12079static const struct snd_kcontrol_new mmul29_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012080 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12081 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012082 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12083 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012084 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12085 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012086 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12087 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012088 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12089 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012090 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12091 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012092 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12093 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012094 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12095 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012096 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12097 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012098 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12099 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012100 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12101 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012102 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12103 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012104 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
12105 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012106 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12107 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012108 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
12109 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012110 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12111 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080012112 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12113 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
12114 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12115 msm_routing_put_audio_mixer),
12116 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12117 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
12118 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12119 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012120 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12121 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12122 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12123 msm_routing_put_audio_mixer),
12124 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12125 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12126 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12127 msm_routing_put_audio_mixer),
12128 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12129 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12130 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12131 msm_routing_put_audio_mixer),
12132 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12133 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12134 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12135 msm_routing_put_audio_mixer),
12136 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12137 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12138 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12139 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012140 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12141 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12142 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12143 msm_routing_get_audio_mixer,
12144 msm_routing_put_audio_mixer),
12145 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12146 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12147 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12148 msm_routing_get_audio_mixer,
12149 msm_routing_put_audio_mixer),
12150 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12151 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12152 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12153 msm_routing_get_audio_mixer,
12154 msm_routing_put_audio_mixer),
12155 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12156 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12157 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12158 msm_routing_get_audio_mixer,
12159 msm_routing_put_audio_mixer),
12160 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12161 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12162 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12163 msm_routing_get_audio_mixer,
12164 msm_routing_put_audio_mixer),
12165 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12166 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12167 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12168 msm_routing_get_audio_mixer,
12169 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012170 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12171 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12172 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12173 msm_routing_put_audio_mixer),
12174 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12175 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12176 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12177 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012178 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12179 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12180 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12181 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012182};
12183
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012184static const struct snd_kcontrol_new pri_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012185 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12186 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012187 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12188 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012189 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12190 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012191 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12192 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012193 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12194 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012195 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12196 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012197 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12198 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012199 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12200 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012201 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12202 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012203 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12204 msm_routing_put_voice_mixer),
12205};
12206
12207static const struct snd_kcontrol_new sec_i2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012208 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12209 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012210 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12211 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012212 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12213 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012214 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12215 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012216 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12217 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012218 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12219 msm_routing_put_voice_mixer),
12220};
12221
12222static const struct snd_kcontrol_new sec_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012223 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12224 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012225 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12226 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012227 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12228 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012229 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12230 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012231 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12232 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012233 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12234 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012235 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12236 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012237 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12238 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012239 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12240 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012241 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12242 msm_routing_put_voice_mixer),
12243};
12244
12245static const struct snd_kcontrol_new slimbus_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012246 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12247 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012248 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12249 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012250 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12251 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012252 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12253 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012254 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12255 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012256 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12257 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012258 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12259 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012260 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12261 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012262 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12263 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012264 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12265 msm_routing_put_voice_mixer),
12266};
12267
12268static const struct snd_kcontrol_new slimbus_6_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012269 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12270MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012271 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12272 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012273 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12274MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012275 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12276 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012277 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12278MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012279 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12280 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012281 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12282MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012283 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12284 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012285 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12286MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012287 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12288 msm_routing_put_voice_mixer),
12289};
12290
12291static const struct snd_kcontrol_new usb_audio_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012292 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12293 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012294 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12295 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012296 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12297 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012298 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12299 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012300 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12301 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012302 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12303 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012304 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12305 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012306 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12307 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012308 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12309 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012310 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12311 msm_routing_put_voice_mixer),
12312};
12313
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012314static const struct snd_kcontrol_new display_port_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012315 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12316MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012317 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12318 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012319 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12320MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012321 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12322 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012323 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12324MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012325 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12326 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012327 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12328MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012329 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12330 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012331 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12332MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012333 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12334 msm_routing_put_voice_mixer),
12335};
12336
Karthikeyan Mani57550082018-05-03 18:43:58 -070012337static const struct snd_kcontrol_new display_port_rx1_voice_mixer_controls[] = {
12338 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12339 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12340 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12341 msm_routing_put_voice_mixer),
12342 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12343 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12344 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12345 msm_routing_put_voice_mixer),
12346 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12347 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12348 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12349 msm_routing_put_voice_mixer),
12350 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12351 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12352 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12353 msm_routing_put_voice_mixer),
12354 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12355 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12356 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12357 msm_routing_put_voice_mixer),
12358};
12359
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012360static const struct snd_kcontrol_new bt_sco_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012361 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12362 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012363 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12364 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012365 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12366 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012367 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12368 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012369 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12370 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012371 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12372 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012373 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12374 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012375 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12376 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012377 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12378 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012379 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12380 msm_routing_put_voice_mixer),
12381};
12382
12383static const struct snd_kcontrol_new mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012384 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12385 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012386 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12387 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012388 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12389 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012390 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12391 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012392 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12393 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012394 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12395 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012396 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12397 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012398 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12399 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012400 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12401 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012402 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12403 msm_routing_put_voice_mixer),
12404};
12405
12406static const struct snd_kcontrol_new pri_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012407 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12408MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012409 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12410 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012411 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12412MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012413 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12414 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012415 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12416MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012417 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12418 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012419 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12420MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012421 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12422 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012423 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12424MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012425 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12426 msm_routing_put_voice_mixer),
12427};
12428
12429static const struct snd_kcontrol_new int0_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012430 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12431MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012432 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12433 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012434 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12435MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012436 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12437 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012438 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12439MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012440 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12441 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012442 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12443MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012444 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12445 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012446 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12447MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012448 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12449 msm_routing_put_voice_mixer),
12450};
12451
12452static const struct snd_kcontrol_new int4_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012453 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12454 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012455 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12456 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012457 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12458 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012459 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12460 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012461 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12462 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012463 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12464 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012465 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12466 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012467 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12468 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012469 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12470 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012471 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12472 msm_routing_put_voice_mixer),
12473};
12474
12475static const struct snd_kcontrol_new tert_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012476 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12477 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012478 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12479 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012480 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12481 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012482 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12483 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012484 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12485 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012486 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12487 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012488 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12489 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012490 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12491 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012492 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12493 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012494 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12495 msm_routing_put_voice_mixer),
12496};
12497
12498static const struct snd_kcontrol_new quat_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012499 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12500 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012501 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12502 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012503 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12504 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012505 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12506 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012507 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12508 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012509 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12510 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012511 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12512 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012513 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12514 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012515 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12516 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012517 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12518 msm_routing_put_voice_mixer),
12519};
12520
12521static const struct snd_kcontrol_new quin_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012522 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12523 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012524 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12525 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012526 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12527 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012528 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12529 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012530 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12531 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012532 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12533 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012534 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12535 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012536 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12537 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012538 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12539 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012540 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12541 msm_routing_put_voice_mixer),
12542};
12543
12544static const struct snd_kcontrol_new afe_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012545 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12546 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012547 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12548 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012549 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12550 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012551 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12552 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012553 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12554 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012555 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12556 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012557 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12558 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012559 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12560 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012561 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12562 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012563 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12564 msm_routing_put_voice_mixer),
12565};
12566
12567static const struct snd_kcontrol_new aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012568 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12569 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012570 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12571 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012572 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12573 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012574 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12575 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012576 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12577 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012578 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12579 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012580 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12581 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012582 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12583 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012584 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12585 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012586 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12587 msm_routing_put_voice_mixer),
12588};
12589
12590static const struct snd_kcontrol_new sec_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012591 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12592MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012593 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12594 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012595 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12596MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012597 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12598 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012599 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12600MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012601 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12602 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012603 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12604MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012605 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12606 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012607 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12608MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012609 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12610 msm_routing_put_voice_mixer),
12611};
12612
12613static const struct snd_kcontrol_new tert_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012614 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12615MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012616 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12617 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012618 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12619MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012620 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12621 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012622 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12623MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012624 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12625 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012626 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12627MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012628 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12629 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012630 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12631MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012632 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12633 msm_routing_put_voice_mixer),
12634};
12635
12636static const struct snd_kcontrol_new quat_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012637 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12638MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012639 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12640 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012641 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12642MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012643 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12644 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012645 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12646MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012647 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12648 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012649 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12650MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012651 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12652 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012653 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12654MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012655 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12656 msm_routing_put_voice_mixer),
12657};
12658
Rohit Kumara5077932017-09-10 22:05:05 +053012659static const struct snd_kcontrol_new quin_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012660 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12661MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012662 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12663 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012664 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12665MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012666 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12667 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012668 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12669MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012670 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12671 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012672 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12673MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012674 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12675 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012676 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12677MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012678 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12679 msm_routing_put_voice_mixer),
12680};
12681
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012682static const struct snd_kcontrol_new hdmi_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012683 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12684 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012685 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12686 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012687 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12688 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012689 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12690 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012691 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12692 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012693 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12694 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012695 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12696 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012697 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12698 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012699 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12700 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012701 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12702 msm_routing_put_voice_mixer),
12703};
12704
12705static const struct snd_kcontrol_new slimbus_7_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012706 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12707MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012708 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12709 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012710 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12711MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012712 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12713 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012714 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12715MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012716 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12717 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012718 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12719MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012720 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12721 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012722 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12723MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012724 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12725 msm_routing_put_voice_mixer),
12726};
12727
12728static const struct snd_kcontrol_new slimbus_8_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012729 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12730 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012731 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12732 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012733 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12734 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012735 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12736 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012737 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12738 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012739 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12740 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012741 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12742 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012743 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12744 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012745 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12746 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012747 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12748 msm_routing_put_voice_mixer),
12749};
12750
12751static const struct snd_kcontrol_new quat_tdm_rx_2_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012752 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12753 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012754 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12755 msm_routing_put_voice_mixer),
12756};
12757
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012758static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_voice_mixer_controls[] = {
12759 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12760 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12761 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12762 msm_routing_put_voice_mixer),
12763 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12764 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12765 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12766 msm_routing_put_voice_mixer),
12767 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12768 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12769 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12770 msm_routing_put_voice_mixer),
12771 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12772 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12773 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12774 msm_routing_put_voice_mixer),
12775 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12776 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12777 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12778 msm_routing_put_voice_mixer),
12779};
12780
12781static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_voice_mixer_controls[] = {
12782 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12783 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12784 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12785 msm_routing_put_voice_mixer),
12786 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12787 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12788 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12789 msm_routing_put_voice_mixer),
12790 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12791 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12792 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12793 msm_routing_put_voice_mixer),
12794 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12795 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12796 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12797 msm_routing_put_voice_mixer),
12798 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12799 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12800 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12801 msm_routing_put_voice_mixer),
12802};
12803
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012804static const struct snd_kcontrol_new rx_cdc_dma_rx_0_voice_mixer_controls[] = {
12805 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12806 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12807 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12808 msm_routing_put_voice_mixer),
12809 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12810 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12811 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12812 msm_routing_put_voice_mixer),
12813 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12814 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12815 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12816 msm_routing_put_voice_mixer),
12817 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12818 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12819 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12820 msm_routing_put_voice_mixer),
12821 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12822 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12823 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12824 msm_routing_put_voice_mixer),
12825};
12826
12827static const struct snd_kcontrol_new rx_cdc_dma_rx_1_voice_mixer_controls[] = {
12828 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12829 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12830 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12831 msm_routing_put_voice_mixer),
12832 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12833 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12834 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12835 msm_routing_put_voice_mixer),
12836 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12837 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12838 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12839 msm_routing_put_voice_mixer),
12840 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12841 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12842 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12843 msm_routing_put_voice_mixer),
12844 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12845 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12846 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12847 msm_routing_put_voice_mixer),
12848};
12849
12850static const struct snd_kcontrol_new rx_cdc_dma_rx_2_voice_mixer_controls[] = {
12851 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12852 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12853 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12854 msm_routing_put_voice_mixer),
12855 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12856 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12857 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12858 msm_routing_put_voice_mixer),
12859 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12860 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12861 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12862 msm_routing_put_voice_mixer),
12863 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12864 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12865 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12866 msm_routing_put_voice_mixer),
12867 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12868 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12869 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12870 msm_routing_put_voice_mixer),
12871};
12872
12873static const struct snd_kcontrol_new rx_cdc_dma_rx_3_voice_mixer_controls[] = {
12874 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12875 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12876 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12877 msm_routing_put_voice_mixer),
12878 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12879 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12880 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12881 msm_routing_put_voice_mixer),
12882 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12883 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12884 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12885 msm_routing_put_voice_mixer),
12886 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12887 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12888 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12889 msm_routing_put_voice_mixer),
12890 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12891 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12892 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12893 msm_routing_put_voice_mixer),
12894};
12895
12896static const struct snd_kcontrol_new rx_cdc_dma_rx_4_voice_mixer_controls[] = {
12897 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12898 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12899 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12900 msm_routing_put_voice_mixer),
12901 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12902 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12903 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12904 msm_routing_put_voice_mixer),
12905 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12906 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12907 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12908 msm_routing_put_voice_mixer),
12909 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12910 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12911 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12912 msm_routing_put_voice_mixer),
12913 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12914 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12915 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12916 msm_routing_put_voice_mixer),
12917};
12918
12919static const struct snd_kcontrol_new rx_cdc_dma_rx_5_voice_mixer_controls[] = {
12920 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12921 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12922 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12923 msm_routing_put_voice_mixer),
12924 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12925 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12926 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12927 msm_routing_put_voice_mixer),
12928 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12929 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12930 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12931 msm_routing_put_voice_mixer),
12932 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12933 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12934 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12935 msm_routing_put_voice_mixer),
12936 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12937 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12938 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12939 msm_routing_put_voice_mixer),
12940};
12941
12942static const struct snd_kcontrol_new rx_cdc_dma_rx_6_voice_mixer_controls[] = {
12943 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12944 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12945 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12946 msm_routing_put_voice_mixer),
12947 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12948 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12949 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12950 msm_routing_put_voice_mixer),
12951 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12952 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12953 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12954 msm_routing_put_voice_mixer),
12955 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12956 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12957 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12958 msm_routing_put_voice_mixer),
12959 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12960 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12961 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12962 msm_routing_put_voice_mixer),
12963};
12964
12965static const struct snd_kcontrol_new rx_cdc_dma_rx_7_voice_mixer_controls[] = {
12966 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12967 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12968 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12969 msm_routing_put_voice_mixer),
12970 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12971 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12972 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12973 msm_routing_put_voice_mixer),
12974 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12975 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12976 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12977 msm_routing_put_voice_mixer),
12978 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12979 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12980 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12981 msm_routing_put_voice_mixer),
12982 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12983 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12984 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12985 msm_routing_put_voice_mixer),
12986};
12987
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012988static const struct snd_kcontrol_new stub_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012989 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12990 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012991 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12992 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012993 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12994 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012995 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12996 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012997};
12998
12999static const struct snd_kcontrol_new slimbus_1_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013000 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13001 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013002 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13003 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013004 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13005 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013006 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13007 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013008};
13009
13010static const struct snd_kcontrol_new slimbus_3_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013011 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13012 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013013 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13014 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013015 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13016 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013017 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13018 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013019};
13020
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013021static const struct snd_kcontrol_new tx_voicemmode1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013022 SOC_DOUBLE_EXT("PRI_TX_MMode1", SND_SOC_NOPM,
13023 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013024 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13025 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013026 SOC_DOUBLE_EXT("MI2S_TX_MMode1", SND_SOC_NOPM,
13027 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013028 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13029 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013030 SOC_DOUBLE_EXT("SLIM_0_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013031 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13032 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013033 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013034 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13035 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013036 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013037 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
13038 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013039 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013040 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
13041 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013042 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013043 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13044 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013045 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013046 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13047 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013048 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013049 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13050 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013051 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053013052 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13053 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013054 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013055 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
13056 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013057 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013058 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
13059 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013060 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013061 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
13062 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013063 SOC_DOUBLE_EXT("SLIM_7_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013064 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13065 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013066 SOC_DOUBLE_EXT("SLIM_8_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013067 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13068 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013069 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode1", SND_SOC_NOPM,
13070 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013071 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13072 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013073 SOC_DOUBLE_EXT("QUAT_TDM_TX_0_MMode1", SND_SOC_NOPM,
13074MSM_BACKEND_DAI_QUAT_TDM_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013075 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013076 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
13077 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
13078 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13079 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
13080 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
13081 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013082 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
13083 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
13084 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13085 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
13086 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
13087 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13088 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
13089 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
13090 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13091 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode1", SND_SOC_NOPM,
13092 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
13093 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13094 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode1", SND_SOC_NOPM,
13095 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE1,
13096 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13097 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode1", SND_SOC_NOPM,
13098 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE1,
13099 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013100};
13101
13102static const struct snd_kcontrol_new tx_voicemmode2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013103 SOC_DOUBLE_EXT("PRI_TX_MMode2", SND_SOC_NOPM,
13104 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013105 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13106 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013107 SOC_DOUBLE_EXT("MI2S_TX_MMode2", SND_SOC_NOPM,
13108 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013109 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13110 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013111 SOC_DOUBLE_EXT("SLIM_0_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013112 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13113 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013114 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013115 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13116 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013117 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013118 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
13119 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013120 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013121 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
13122 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013123 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013124 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13125 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013126 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013127 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13128 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013129 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013130 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13131 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013132 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053013133 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13134 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013135 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013136 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
13137 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013138 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013139 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
13140 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013141 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013142 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
13143 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013144 SOC_DOUBLE_EXT("SLIM_7_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013145 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13146 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013147 SOC_DOUBLE_EXT("SLIM_8_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013148 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13149 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013150 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013151 MSM_BACKEND_DAI_USB_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13152 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013153 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
13154 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
13155 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13156 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
13157 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
13158 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013159 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
13160 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
13161 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13162 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
13163 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
13164 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13165 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
13166 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
13167 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13168 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode2", SND_SOC_NOPM,
13169 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE2,
13170 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13171 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode2", SND_SOC_NOPM,
13172 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE2,
13173 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13174 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode2", SND_SOC_NOPM,
13175 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE2,
13176 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013177};
13178
13179static const struct snd_kcontrol_new tx_voip_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013180 SOC_DOUBLE_EXT("PRI_TX_Voip", SND_SOC_NOPM,
13181 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013182 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13183 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013184 SOC_DOUBLE_EXT("MI2S_TX_Voip", SND_SOC_NOPM,
13185 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013186 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13187 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013188 SOC_DOUBLE_EXT("SLIM_0_TX_Voip", SND_SOC_NOPM,
13189 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013190 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13191 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013192 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_Voip", SND_SOC_NOPM,
13193 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013194 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13195 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013196 SOC_DOUBLE_EXT("AFE_PCM_TX_Voip", SND_SOC_NOPM,
13197 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013198 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13199 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013200 SOC_DOUBLE_EXT("AUX_PCM_TX_Voip", SND_SOC_NOPM,
13201 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013202 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13203 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013204 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13205 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013206 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13207 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013208 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13209 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013210 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13211 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013212 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13213 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013214 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13215 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013216 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13217 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013218 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13219 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013220 SOC_DOUBLE_EXT("PRI_MI2S_TX_Voip", SND_SOC_NOPM,
13221 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013222 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13223 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013224 SOC_DOUBLE_EXT("TERT_MI2S_TX_Voip", SND_SOC_NOPM,
13225 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013226 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13227 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013228 SOC_DOUBLE_EXT("INT3_MI2S_TX_Voip", SND_SOC_NOPM,
13229 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013230 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13231 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013232 SOC_DOUBLE_EXT("SLIM_7_TX_Voip", SND_SOC_NOPM,
13233 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013234 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13235 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013236 SOC_DOUBLE_EXT("SLIM_8_TX_Voip", SND_SOC_NOPM,
13237 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013238 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13239 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013240 SOC_DOUBLE_EXT("USB_AUDIO_TX_Voip", SND_SOC_NOPM,
13241 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013242 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13243 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013244 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
13245 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
13246 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13247 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
13248 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
13249 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013250 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
13251 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
13252 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13253 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
13254 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
13255 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13256 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
13257 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
13258 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13259 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_Voip", SND_SOC_NOPM,
13260 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOIP,
13261 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13262 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_Voip", SND_SOC_NOPM,
13263 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOIP,
13264 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13265 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_Voip", SND_SOC_NOPM,
13266 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOIP,
13267 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013268};
13269
13270static const struct snd_kcontrol_new tx_voice_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013271 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
13272 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013273 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13274 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013275 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13276 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013277 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13278 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013279 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13280 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013281 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13282 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013283 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
13284 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013285 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13286 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013287 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13288 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013289 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13290 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013291 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13292 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013293 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13294 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013295 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13296 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013297 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13298 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013299 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13300 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013301 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13302 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013303 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13304 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013305 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13306 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013307 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13308 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013309 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13310 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013311 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13312 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013313 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13314 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013315 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13316 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013317 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13318 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013319 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13320 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013321 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13322 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013323 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13324 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013325 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13326 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013327 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13328 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013329 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13330 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013331 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
13332 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013333 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13334 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013335 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13336 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013337 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13338 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013339 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13340 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013341 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13342 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013343 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13344 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013345 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13346 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013347 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13348 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
13349 1, 0, msm_routing_get_voice_stub_mixer,
13350 msm_routing_put_voice_stub_mixer),
13351 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13352 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
13353 1, 0, msm_routing_get_voice_stub_mixer,
13354 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013355 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13356 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
13357 1, 0, msm_routing_get_voice_stub_mixer,
13358 msm_routing_put_voice_stub_mixer),
13359 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13360 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
13361 1, 0, msm_routing_get_voice_stub_mixer,
13362 msm_routing_put_voice_stub_mixer),
13363 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13364 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
13365 1, 0, msm_routing_get_voice_stub_mixer,
13366 msm_routing_put_voice_stub_mixer),
13367 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13368 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE_STUB,
13369 1, 0, msm_routing_get_voice_stub_mixer,
13370 msm_routing_put_voice_stub_mixer),
13371 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13372 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE_STUB,
13373 1, 0, msm_routing_get_voice_stub_mixer,
13374 msm_routing_put_voice_stub_mixer),
13375 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13376 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE_STUB,
13377 1, 0, msm_routing_get_voice_stub_mixer,
13378 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013379};
13380
13381static const struct snd_kcontrol_new tx_voice2_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013382 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
13383 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013384 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13385 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013386 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13387 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013388 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13389 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013390 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
13391 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013392 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13393 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013394 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13395 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013396 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13397 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013398 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13399 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013400 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13401 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013402 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13403 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013404 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13405 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013406 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13407 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013408 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13409 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013410 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13411 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013412 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13413 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013414 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13415 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013416 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13417 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013418 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
13419 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013420 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13421 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013422 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13423 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013424 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13425 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013426 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13427 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013428 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13429 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013430 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13431 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013432 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13433 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013434 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13435 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013436 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13437 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013438 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13439 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013440 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13441 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013442 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13443 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
13444 1, 0, msm_routing_get_voice_stub_mixer,
13445 msm_routing_put_voice_stub_mixer),
13446 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13447 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
13448 1, 0, msm_routing_get_voice_stub_mixer,
13449 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013450 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13451 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
13452 1, 0, msm_routing_get_voice_stub_mixer,
13453 msm_routing_put_voice_stub_mixer),
13454 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13455 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
13456 1, 0, msm_routing_get_voice_stub_mixer,
13457 msm_routing_put_voice_stub_mixer),
13458 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13459 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
13460 1, 0, msm_routing_get_voice_stub_mixer,
13461 msm_routing_put_voice_stub_mixer),
13462 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13463 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE2_STUB,
13464 1, 0, msm_routing_get_voice_stub_mixer,
13465 msm_routing_put_voice_stub_mixer),
13466 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13467 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE2_STUB,
13468 1, 0, msm_routing_get_voice_stub_mixer,
13469 msm_routing_put_voice_stub_mixer),
13470 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13471 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE2_STUB,
13472 1, 0, msm_routing_get_voice_stub_mixer,
13473 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013474};
13475
13476static const struct snd_kcontrol_new tx_volte_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013477 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
13478 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013479 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13480 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013481 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13482 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013483 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13484 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013485 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
13486 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013487 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13488 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013489 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13490 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013491 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13492 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013493 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13494 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013495 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13496 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013497 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13498 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013499 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13500 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013501 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13502 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013503 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13504 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013505 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13506 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013507 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13508 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013509 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13510 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013511 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13512 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013513 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
13514 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013515 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13516 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013517 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13518 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013519 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13520 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013521 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13522 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013523 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13524 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013525 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13526 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013527 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13528 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013529 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13530 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013531 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13532 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013533 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13534 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013535 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13536 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013537 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13538 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
13539 1, 0, msm_routing_get_voice_stub_mixer,
13540 msm_routing_put_voice_stub_mixer),
13541 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13542 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
13543 1, 0, msm_routing_get_voice_stub_mixer,
13544 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013545 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13546 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
13547 1, 0, msm_routing_get_voice_stub_mixer,
13548 msm_routing_put_voice_stub_mixer),
13549 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13550 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
13551 1, 0, msm_routing_get_voice_stub_mixer,
13552 msm_routing_put_voice_stub_mixer),
13553 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13554 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
13555 1, 0, msm_routing_get_voice_stub_mixer,
13556 msm_routing_put_voice_stub_mixer),
13557 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13558 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOLTE_STUB,
13559 1, 0, msm_routing_get_voice_stub_mixer,
13560 msm_routing_put_voice_stub_mixer),
13561 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13562 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOLTE_STUB,
13563 1, 0, msm_routing_get_voice_stub_mixer,
13564 msm_routing_put_voice_stub_mixer),
13565 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13566 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOLTE_STUB,
13567 1, 0, msm_routing_get_voice_stub_mixer,
13568 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013569};
13570
13571static const struct snd_kcontrol_new tx_qchat_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013572 SOC_DOUBLE_EXT("PRI_TX_QCHAT", SND_SOC_NOPM,
13573 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013574 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13575 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013576 SOC_DOUBLE_EXT("SLIM_0_TX_QCHAT", SND_SOC_NOPM,
13577 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013578 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13579 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013580 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_QCHAT", SND_SOC_NOPM,
13581 MSM_BACKEND_DAI_INT_BT_SCO_TX,
13582 MSM_FRONTEND_DAI_QCHAT, 1, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013583 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013584 SOC_DOUBLE_EXT("AFE_PCM_TX_QCHAT", SND_SOC_NOPM,
13585 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013586 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13587 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013588 SOC_DOUBLE_EXT("AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13589 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013590 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13591 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013592 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13593 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013594 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13595 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013596 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13597 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013598 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13599 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013600 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13601 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013602 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13603 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013604 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13605 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013606 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13607 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013608 SOC_DOUBLE_EXT("MI2S_TX_QCHAT", SND_SOC_NOPM,
13609 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013610 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13611 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013612 SOC_DOUBLE_EXT("PRI_MI2S_TX_QCHAT", SND_SOC_NOPM,
13613 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013614 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13615 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013616 SOC_DOUBLE_EXT("TERT_MI2S_TX_QCHAT", SND_SOC_NOPM,
13617 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013618 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13619 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013620 SOC_DOUBLE_EXT("INT3_MI2S_TX_QCHAT", SND_SOC_NOPM,
13621 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013622 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13623 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013624 SOC_DOUBLE_EXT("SLIM_7_TX_QCHAT", SND_SOC_NOPM,
13625 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013626 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13627 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013628 SOC_DOUBLE_EXT("SLIM_8_TX_QCHAT", SND_SOC_NOPM,
13629 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013630 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13631 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013632 SOC_DOUBLE_EXT("USB_AUDIO_TX_QCHAT", SND_SOC_NOPM,
13633 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013634 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13635 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013636 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
13637 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
13638 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13639 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
13640 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
13641 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013642 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
13643 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
13644 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13645 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
13646 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
13647 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13648 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
13649 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
13650 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13651 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_QCHAT", SND_SOC_NOPM,
13652 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_QCHAT,
13653 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13654 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_QCHAT", SND_SOC_NOPM,
13655 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_QCHAT,
13656 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13657 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_QCHAT", SND_SOC_NOPM,
13658 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_QCHAT,
13659 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013660};
13661
13662static const struct snd_kcontrol_new int0_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013663 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13664 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013665 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13666 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013667 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13668 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013669 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13670 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013671 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13672 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013673 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13674 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013675 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13676 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013677 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13678 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013679 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13680 MSM_BACKEND_DAI_INT0_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013681 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13682 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013683 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13684 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013685 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13686 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013687 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13688 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013689 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13690 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013691 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13692 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013693 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13694 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013695 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13696 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013697 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13698 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013699 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13700 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013701 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13702 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013703 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13704 MSM_BACKEND_DAI_INT0_MI2S_RX,
13705 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
13706 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013707};
13708
13709static const struct snd_kcontrol_new int4_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013710 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13711 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013712 MSM_BACKEND_DAI_PRI_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("SEC_MI2S_TX", SND_SOC_NOPM,
13715 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013716 MSM_BACKEND_DAI_SECONDARY_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("TERT_MI2S_TX", SND_SOC_NOPM,
13719 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013720 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13721 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013722 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13723 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013724 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13725 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013726 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13727 MSM_BACKEND_DAI_INT4_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013728 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13729 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013730 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13731 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013732 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13733 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013734 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13735 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013736 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13737 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013738 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13739 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013740 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13741 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013742 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13743 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013744 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13745 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013746 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13747 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013748 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13749 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013750 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13751 MSM_BACKEND_DAI_INT4_MI2S_RX,
13752 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
13753 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013754};
13755
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053013756static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_port_mixer_controls[] = {
13757 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13758 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13759 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, 1, 0, msm_routing_get_port_mixer,
13760 msm_routing_put_port_mixer),
13761 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13762 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13763 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
13764 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080013765 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13766 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13767 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13768 msm_routing_put_port_mixer),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053013769};
13770
13771static const struct snd_kcontrol_new rx_cdc_dma_rx_0_port_mixer_controls[] = {
13772 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13773 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13774 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
13775 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080013776 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13777 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13778 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13779 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013780 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13781 MSM_BACKEND_DAI_INT4_MI2S_RX,
13782 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
13783 msm_routing_put_port_mixer),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053013784};
13785
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013786static const struct snd_kcontrol_new sbus_0_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013787 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13788 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013789 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13790 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013791 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13792 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013793 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13794 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013795 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13796 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013797 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13798 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013799 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13800 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013801 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13802 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013803 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13804 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013805 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13806 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013807 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13808 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013809 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13810 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013811 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13812 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013813 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13814 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013815 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13816 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013817 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13818 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013819 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13820 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013821 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13822 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013823 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13824 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013825 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13826 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013827 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13828 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013829 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13830 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013831 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13832 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013833 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13834 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013835 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13836 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013837 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13838 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013839 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13840 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013841 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13842 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013843 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13844 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013845 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13846 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013847 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13848 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013849 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13850 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013851 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13852 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013853 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13854 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013855 SOC_DOUBLE_EXT("PRI_MI2S_RX", SND_SOC_NOPM,
13856 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013857 MSM_BACKEND_DAI_PRI_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13858 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013859 SOC_DOUBLE_EXT("SEC_MI2S_RX", SND_SOC_NOPM,
13860 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013861 MSM_BACKEND_DAI_SECONDARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13862 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013863 SOC_DOUBLE_EXT("TERT_MI2S_RX", SND_SOC_NOPM,
13864 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013865 MSM_BACKEND_DAI_TERTIARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13866 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013867 SOC_DOUBLE_EXT("QUAT_MI2S_RX", SND_SOC_NOPM,
13868 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013869 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13870 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013871 SOC_DOUBLE_EXT("QUIN_MI2S_RX", SND_SOC_NOPM,
13872 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Surendar Karka3ef3d812018-09-28 18:52:35 +053013873 MSM_BACKEND_DAI_QUINARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13874 msm_routing_put_port_mixer),
13875 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13876 MSM_BACKEND_DAI_SLIMBUS_0_RX,
13877 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
Rohit Kumara5077932017-09-10 22:05:05 +053013878 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013879};
13880
13881static const struct snd_kcontrol_new aux_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013882 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13883 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013884 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13885 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013886 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13887 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013888 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13889 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013890 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13891 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013892 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, 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_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013896 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13897 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013898 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13899 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013900 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
13901 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013902 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13903 MSM_BACKEND_DAI_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080013904 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13905 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013906};
13907
13908static const struct snd_kcontrol_new sec_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013909 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13910 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013911 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13912 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013913 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13914 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013915 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13916 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013917 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13918 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013919 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13920 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013921 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13922 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080013923 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13924 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013925};
13926
13927static const struct snd_kcontrol_new tert_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013928 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13929 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013930 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13931 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013932 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13933 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013934 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13935 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013936 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13937 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013938 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13939 msm_routing_put_port_mixer),
13940};
13941
13942static const struct snd_kcontrol_new quat_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013943 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13944 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013945 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13946 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013947 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13948 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013949 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13950 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013951 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13952 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013953 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13954 msm_routing_put_port_mixer),
13955};
13956
Rohit Kumara5077932017-09-10 22:05:05 +053013957static const struct snd_kcontrol_new quin_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013958 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13959 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013960 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13961 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013962 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13963 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013964 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13965 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013966 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13967 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013968 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13969 msm_routing_put_port_mixer),
13970};
13971
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013972static const struct snd_kcontrol_new sbus_1_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013973 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13974 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013975 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13976 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013977 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13978 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013979 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0, msm_routing_get_port_mixer,
13980 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013981 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13982 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013983 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13984 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013985 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13986 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013987 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13988 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013989 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13990 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013991 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13992 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013993 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13994 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013995 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13996 msm_routing_put_port_mixer),
13997};
13998
13999static const struct snd_kcontrol_new sbus_3_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014000 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_RX", SND_SOC_NOPM,
14001 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014002 MSM_BACKEND_DAI_INT_BT_SCO_RX, 1, 0, msm_routing_get_port_mixer,
14003 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014004 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14005 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014006 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14007 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014008 SOC_DOUBLE_EXT("AFE_PCM_RX", SND_SOC_NOPM,
14009 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014010 MSM_BACKEND_DAI_AFE_PCM_RX, 1, 0, msm_routing_get_port_mixer,
14011 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014012 SOC_DOUBLE_EXT("AUX_PCM_RX", SND_SOC_NOPM,
14013 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014014 MSM_BACKEND_DAI_AUXPCM_RX, 1, 0, msm_routing_get_port_mixer,
14015 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014016 SOC_DOUBLE_EXT("SLIM_0_RX", SND_SOC_NOPM,
14017 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014018 MSM_BACKEND_DAI_SLIMBUS_0_RX, 1, 0, msm_routing_get_port_mixer,
14019 msm_routing_put_port_mixer),
14020};
14021
14022static const struct snd_kcontrol_new sbus_6_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014023 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14024 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014025 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14026 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014027 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14028 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014029 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14030 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014031 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14032 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014033 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14034 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014035 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
14036 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014037 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
14038 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014039 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14040 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014041 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14042 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014043 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14044 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014045 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14046 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014047 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14048 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014049 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14050 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014051 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14052 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014053 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14054 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014055 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14056 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014057 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14058 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014059 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14060 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014061 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14062 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014063 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14064 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014065 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14066 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014067 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14068 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014069 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14070 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053014071 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
14072 MSM_BACKEND_DAI_SLIMBUS_6_RX,
14073 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
14074 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014075};
14076
14077static const struct snd_kcontrol_new bt_sco_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014078 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14079 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014080 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14081 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014082 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14083 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014084 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14085 msm_routing_put_port_mixer),
14086};
14087
14088static const struct snd_kcontrol_new afe_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014089 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14090 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014091 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14092 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014093 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14094 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014095 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14096 msm_routing_put_port_mixer),
14097};
14098
14099
14100static const struct snd_kcontrol_new hdmi_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014101 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14102 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014103 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14104 msm_routing_put_port_mixer),
14105};
14106
14107static const struct snd_kcontrol_new display_port_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014108 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14109 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014110 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14111 msm_routing_put_port_mixer),
14112};
14113
Karthikeyan Mani57550082018-05-03 18:43:58 -070014114static const struct snd_kcontrol_new display_port_rx1_port_mixer_controls[] = {
14115 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14116 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
14117 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14118 msm_routing_put_port_mixer),
14119};
14120
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014121static const struct snd_kcontrol_new sec_i2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014122 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14123 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014124 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14125 msm_routing_put_port_mixer),
14126};
14127
14128static const struct snd_kcontrol_new mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014129 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14130 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014131 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14132 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014133 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14134 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014135 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14136 msm_routing_put_port_mixer),
14137};
14138
14139static const struct snd_kcontrol_new primary_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014140 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14141 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014142 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14143 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014144 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14145 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014146 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14147 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014148 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14149 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014150 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14151 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014152 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14153 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014154 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14155 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014156 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14157 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014158 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14159 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014160 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14161 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014162 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14163 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014164 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14165 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014166 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14167 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014168 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14169 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014170 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14171 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014172 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14173 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014174 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14175 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014176 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14177 MSM_BACKEND_DAI_PRI_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080014178 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14179 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014180};
14181
14182static const struct snd_kcontrol_new usb_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014183 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
14184 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014185 MSM_BACKEND_DAI_USB_TX, 1, 0, msm_routing_get_port_mixer,
14186 msm_routing_put_port_mixer),
14187};
14188
14189static const struct snd_kcontrol_new quat_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014190 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14191 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014192 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14193 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014194 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14195 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014196 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14197 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014198 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14199 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014200 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14201 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014202 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14203 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014204 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14205 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014206 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14207 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014208 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14209 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014210 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14211 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014212 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14213 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014214 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14215 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014216 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14217 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014218 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14219 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014220 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14221 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014222 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14223 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014224 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14225 msm_routing_put_port_mixer),
14226};
14227
Rohit Kumara5077932017-09-10 22:05:05 +053014228static const struct snd_kcontrol_new quin_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014229 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14230 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014231 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14232 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014233 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14234 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014235 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14236 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014237 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14238 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014239 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14240 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014241 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14242 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014243 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14244 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014245 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14246 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014247 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14248 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014249 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14250 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014251 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14252 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014253 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14254 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014255 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14256 msm_routing_put_port_mixer),
14257};
14258
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014259static const struct snd_kcontrol_new pri_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014260 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14261 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014262 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14263 msm_routing_get_port_mixer,
14264 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014265 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14266 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014267 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14268 msm_routing_get_port_mixer,
14269 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014270 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14271 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014272 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14273 msm_routing_get_port_mixer,
14274 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014275 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14276 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014277 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14278 msm_routing_get_port_mixer,
14279 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014280 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14281 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014282 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14283 msm_routing_get_port_mixer,
14284 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014285 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14286 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014287 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14288 msm_routing_get_port_mixer,
14289 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014290 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14291 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014292 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14293 msm_routing_get_port_mixer,
14294 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014295 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14296 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014297 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14298 msm_routing_get_port_mixer,
14299 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014300 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14301 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014302 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14303 msm_routing_get_port_mixer,
14304 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014305 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14306 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014307 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14308 msm_routing_get_port_mixer,
14309 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014310 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14311 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014312 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14313 msm_routing_get_port_mixer,
14314 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014315 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14316 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014317 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14318 msm_routing_get_port_mixer,
14319 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014320 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14321 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014322 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14323 msm_routing_get_port_mixer,
14324 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014325 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14326 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014327 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14328 msm_routing_get_port_mixer,
14329 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014330 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14331 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014332 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14333 msm_routing_get_port_mixer,
14334 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014335 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14336 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014337 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14338 msm_routing_get_port_mixer,
14339 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014340 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14341 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014342 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14343 msm_routing_get_port_mixer,
14344 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014345 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14346 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014347 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14348 msm_routing_get_port_mixer,
14349 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014350 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14351 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014352 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14353 msm_routing_get_port_mixer,
14354 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014355 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14356 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014357 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14358 msm_routing_get_port_mixer,
14359 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014360};
14361
14362static const struct snd_kcontrol_new pri_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014363 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14364 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014365 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14366 msm_routing_get_port_mixer,
14367 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014368 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14369 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014370 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14371 msm_routing_get_port_mixer,
14372 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014373 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14374 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014375 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14376 msm_routing_get_port_mixer,
14377 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014378 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14379 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014380 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14381 msm_routing_get_port_mixer,
14382 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014383 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14384 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014385 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14386 msm_routing_get_port_mixer,
14387 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014388 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14389 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014390 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14391 msm_routing_get_port_mixer,
14392 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014393 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14394 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014395 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14396 msm_routing_get_port_mixer,
14397 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014398 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14399 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014400 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14401 msm_routing_get_port_mixer,
14402 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014403 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14404 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014405 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14406 msm_routing_get_port_mixer,
14407 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014408 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14409 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014410 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14411 msm_routing_get_port_mixer,
14412 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014413 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14414 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014415 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14416 msm_routing_get_port_mixer,
14417 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014418 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14419 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014420 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14421 msm_routing_get_port_mixer,
14422 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014423 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14424 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014425 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14426 msm_routing_get_port_mixer,
14427 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014428 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14429 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014430 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14431 msm_routing_get_port_mixer,
14432 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014433 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14434 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014435 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14436 msm_routing_get_port_mixer,
14437 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014438 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14439 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014440 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14441 msm_routing_get_port_mixer,
14442 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014443 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14444 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014445 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14446 msm_routing_get_port_mixer,
14447 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014448 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14449 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014450 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14451 msm_routing_get_port_mixer,
14452 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014453 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14454 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014455 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14456 msm_routing_get_port_mixer,
14457 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014458 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14459 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014460 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14461 msm_routing_get_port_mixer,
14462 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014463};
14464
14465static const struct snd_kcontrol_new pri_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014466 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14467 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014468 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14469 msm_routing_get_port_mixer,
14470 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014471 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14472 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014473 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14474 msm_routing_get_port_mixer,
14475 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014476 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14477 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014478 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14479 msm_routing_get_port_mixer,
14480 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014481 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14482 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014483 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14484 msm_routing_get_port_mixer,
14485 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014486 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14487 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014488 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14489 msm_routing_get_port_mixer,
14490 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014491 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14492 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014493 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14494 msm_routing_get_port_mixer,
14495 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014496 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14497 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014498 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14499 msm_routing_get_port_mixer,
14500 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014501 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14502 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014503 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14504 msm_routing_get_port_mixer,
14505 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014506 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14507 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014508 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14509 msm_routing_get_port_mixer,
14510 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014511 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14512 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014513 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14514 msm_routing_get_port_mixer,
14515 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014516 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14517 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014518 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14519 msm_routing_get_port_mixer,
14520 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014521 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14522 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014523 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14524 msm_routing_get_port_mixer,
14525 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014526 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14527 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014528 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14529 msm_routing_get_port_mixer,
14530 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014531 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14532 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014533 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14534 msm_routing_get_port_mixer,
14535 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014536 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14537 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014538 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14539 msm_routing_get_port_mixer,
14540 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014541 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14542 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014543 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14544 msm_routing_get_port_mixer,
14545 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014546 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14547 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014548 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14549 msm_routing_get_port_mixer,
14550 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014551 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14552 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014553 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14554 msm_routing_get_port_mixer,
14555 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014556 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14557 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014558 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14559 msm_routing_get_port_mixer,
14560 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014561 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14562 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014563 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14564 msm_routing_get_port_mixer,
14565 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014566};
14567
14568static const struct snd_kcontrol_new pri_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014569 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14570 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014571 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14572 msm_routing_get_port_mixer,
14573 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014574 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14575 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014576 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14577 msm_routing_get_port_mixer,
14578 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014579 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14580 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014581 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14582 msm_routing_get_port_mixer,
14583 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014584 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14585 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014586 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14587 msm_routing_get_port_mixer,
14588 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014589 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14590 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014591 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14592 msm_routing_get_port_mixer,
14593 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014594 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14595 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014596 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14597 msm_routing_get_port_mixer,
14598 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014599 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14600 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014601 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14602 msm_routing_get_port_mixer,
14603 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014604 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14605 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014606 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14607 msm_routing_get_port_mixer,
14608 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014609 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14610 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014611 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14612 msm_routing_get_port_mixer,
14613 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014614 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14615 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014616 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14617 msm_routing_get_port_mixer,
14618 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014619 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14620 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014621 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14622 msm_routing_get_port_mixer,
14623 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014624 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14625 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014626 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14627 msm_routing_get_port_mixer,
14628 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014629 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14630 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014631 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14632 msm_routing_get_port_mixer,
14633 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014634 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14635 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014636 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14637 msm_routing_get_port_mixer,
14638 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014639 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14640 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014641 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14642 msm_routing_get_port_mixer,
14643 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014644 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14645 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014646 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14647 msm_routing_get_port_mixer,
14648 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014649 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14650 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014651 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14652 msm_routing_get_port_mixer,
14653 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014654 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14655 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014656 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14657 msm_routing_get_port_mixer,
14658 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014659 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14660 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014661 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14662 msm_routing_get_port_mixer,
14663 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014664 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14665 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014666 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14667 msm_routing_get_port_mixer,
14668 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014669};
14670
14671static const struct snd_kcontrol_new sec_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014672 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14673 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014674 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14675 msm_routing_get_port_mixer,
14676 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014677 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14678 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014679 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14680 msm_routing_get_port_mixer,
14681 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014682 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14683 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014684 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14685 msm_routing_get_port_mixer,
14686 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014687 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14688 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014689 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14690 msm_routing_get_port_mixer,
14691 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014692 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14693 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014694 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14695 msm_routing_get_port_mixer,
14696 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014697 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14698 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014699 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14700 msm_routing_get_port_mixer,
14701 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014702 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14703 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014704 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14705 msm_routing_get_port_mixer,
14706 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014707 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14708 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014709 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14710 msm_routing_get_port_mixer,
14711 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014712 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14713 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014714 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14715 msm_routing_get_port_mixer,
14716 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014717 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14718 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014719 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
14720 msm_routing_get_port_mixer,
14721 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014722 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14723 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014724 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
14725 msm_routing_get_port_mixer,
14726 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014727 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14728 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014729 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
14730 msm_routing_get_port_mixer,
14731 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014732 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14733 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014734 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14735 msm_routing_get_port_mixer,
14736 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014737 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14738 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014739 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14740 msm_routing_get_port_mixer,
14741 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014742 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14743 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014744 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14745 msm_routing_get_port_mixer,
14746 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014747 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14748 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014749 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14750 msm_routing_get_port_mixer,
14751 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014752 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14753 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014754 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14755 msm_routing_get_port_mixer,
14756 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014757 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14758 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014759 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14760 msm_routing_get_port_mixer,
14761 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014762 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14763 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014764 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14765 msm_routing_get_port_mixer,
14766 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014767 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14768 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014769 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14770 msm_routing_get_port_mixer,
14771 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014772};
14773
14774static const struct snd_kcontrol_new sec_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014775 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14776 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014777 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14778 msm_routing_get_port_mixer,
14779 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014780 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14781 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014782 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14783 msm_routing_get_port_mixer,
14784 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014785 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14786 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014787 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14788 msm_routing_get_port_mixer,
14789 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014790 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14791 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014792 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14793 msm_routing_get_port_mixer,
14794 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014795 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14796 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014797 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14798 msm_routing_get_port_mixer,
14799 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014800 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14801 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014802 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14803 msm_routing_get_port_mixer,
14804 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014805 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14806 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014807 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14808 msm_routing_get_port_mixer,
14809 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014810 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14811 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014812 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14813 msm_routing_get_port_mixer,
14814 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014815 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14816 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014817 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14818 msm_routing_get_port_mixer,
14819 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014820 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14821 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014822 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
14823 msm_routing_get_port_mixer,
14824 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014825 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14826 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014827 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
14828 msm_routing_get_port_mixer,
14829 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014830 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14831 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014832 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
14833 msm_routing_get_port_mixer,
14834 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014835 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14836 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014837 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14838 msm_routing_get_port_mixer,
14839 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014840 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14841 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014842 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14843 msm_routing_get_port_mixer,
14844 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014845 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14846 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014847 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14848 msm_routing_get_port_mixer,
14849 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014850 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14851 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014852 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14853 msm_routing_get_port_mixer,
14854 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014855 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14856 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014857 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14858 msm_routing_get_port_mixer,
14859 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014860 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14861 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014862 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14863 msm_routing_get_port_mixer,
14864 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014865 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14866 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014867 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14868 msm_routing_get_port_mixer,
14869 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014870 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14871 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014872 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14873 msm_routing_get_port_mixer,
14874 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014875};
14876
14877static const struct snd_kcontrol_new sec_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014878 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14879 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014880 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14881 msm_routing_get_port_mixer,
14882 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014883 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14884 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014885 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14886 msm_routing_get_port_mixer,
14887 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014888 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14889 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014890 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14891 msm_routing_get_port_mixer,
14892 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014893 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14894 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014895 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14896 msm_routing_get_port_mixer,
14897 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014898 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14899 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014900 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14901 msm_routing_get_port_mixer,
14902 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014903 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14904 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014905 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14906 msm_routing_get_port_mixer,
14907 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014908 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14909 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014910 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14911 msm_routing_get_port_mixer,
14912 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014913 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14914 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014915 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14916 msm_routing_get_port_mixer,
14917 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014918 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14919 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014920 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14921 msm_routing_get_port_mixer,
14922 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014923 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14924 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014925 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
14926 msm_routing_get_port_mixer,
14927 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014928 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14929 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014930 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
14931 msm_routing_get_port_mixer,
14932 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014933 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14934 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014935 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
14936 msm_routing_get_port_mixer,
14937 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014938 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14939 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014940 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14941 msm_routing_get_port_mixer,
14942 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014943 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14944 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014945 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14946 msm_routing_get_port_mixer,
14947 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014948 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14949 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014950 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14951 msm_routing_get_port_mixer,
14952 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014953 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14954 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014955 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14956 msm_routing_get_port_mixer,
14957 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014958 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14959 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014960 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14961 msm_routing_get_port_mixer,
14962 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014963 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14964 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014965 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14966 msm_routing_get_port_mixer,
14967 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014968 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14969 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014970 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14971 msm_routing_get_port_mixer,
14972 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014973 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14974 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014975 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14976 msm_routing_get_port_mixer,
14977 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014978};
14979
14980static const struct snd_kcontrol_new sec_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014981 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14982 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014983 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14984 msm_routing_get_port_mixer,
14985 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014986 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14987 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014988 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14989 msm_routing_get_port_mixer,
14990 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014991 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14992 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014993 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14994 msm_routing_get_port_mixer,
14995 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014996 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14997 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014998 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14999 msm_routing_get_port_mixer,
15000 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015001 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15002 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015003 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15004 msm_routing_get_port_mixer,
15005 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015006 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15007 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015008 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15009 msm_routing_get_port_mixer,
15010 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015011 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15012 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015013 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15014 msm_routing_get_port_mixer,
15015 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015016 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15017 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015018 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15019 msm_routing_get_port_mixer,
15020 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015021 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
15022 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015023 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
15024 msm_routing_get_port_mixer,
15025 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015026 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
15027 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015028 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
15029 msm_routing_get_port_mixer,
15030 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015031 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
15032 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015033 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
15034 msm_routing_get_port_mixer,
15035 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015036 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
15037 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015038 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
15039 msm_routing_get_port_mixer,
15040 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015041 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15042 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015043 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15044 msm_routing_get_port_mixer,
15045 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015046 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15047 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015048 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15049 msm_routing_get_port_mixer,
15050 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015051 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15052 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015053 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15054 msm_routing_get_port_mixer,
15055 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015056 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15057 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015058 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15059 msm_routing_get_port_mixer,
15060 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015061 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15062 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015063 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15064 msm_routing_get_port_mixer,
15065 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015066 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15067 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015068 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15069 msm_routing_get_port_mixer,
15070 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015071 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15072 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015073 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15074 msm_routing_get_port_mixer,
15075 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015076 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15077 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015078 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15079 msm_routing_get_port_mixer,
15080 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015081};
15082
Derek Chenfdcc0982018-10-02 15:14:03 -070015083static const struct snd_kcontrol_new sec_tdm_rx_7_port_mixer_controls[] = {
15084 SOC_DOUBLE_EXT("TERT_TDM_TX_7", SND_SOC_NOPM,
15085 MSM_BACKEND_DAI_SEC_TDM_RX_7,
15086 MSM_BACKEND_DAI_TERT_TDM_TX_7, 1, 0,
15087 msm_routing_get_port_mixer,
15088 msm_routing_put_port_mixer),
15089};
15090
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015091static const struct snd_kcontrol_new tert_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015092 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15093 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015094 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15095 msm_routing_get_port_mixer,
15096 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015097 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15098 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015099 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15100 msm_routing_get_port_mixer,
15101 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015102 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15103 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015104 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15105 msm_routing_get_port_mixer,
15106 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015107 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15108 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015109 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15110 msm_routing_get_port_mixer,
15111 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015112 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15113 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015114 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15115 msm_routing_get_port_mixer,
15116 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015117 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15118 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015119 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15120 msm_routing_get_port_mixer,
15121 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015122 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15123 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015124 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15125 msm_routing_get_port_mixer,
15126 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015127 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15128 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015129 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15130 msm_routing_get_port_mixer,
15131 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015132 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15133 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015134 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15135 msm_routing_get_port_mixer,
15136 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015137 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15138 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015139 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15140 msm_routing_get_port_mixer,
15141 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015142 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15143 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015144 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15145 msm_routing_get_port_mixer,
15146 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015147 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15148 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015149 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15150 msm_routing_get_port_mixer,
15151 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015152 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15153 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015154 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15155 msm_routing_get_port_mixer,
15156 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015157 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15158 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015159 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15160 msm_routing_get_port_mixer,
15161 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015162 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15163 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015164 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15165 msm_routing_get_port_mixer,
15166 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015167 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15168 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015169 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15170 msm_routing_get_port_mixer,
15171 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015172 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15173 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015174 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15175 msm_routing_get_port_mixer,
15176 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015177 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15178 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015179 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15180 msm_routing_get_port_mixer,
15181 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015182 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15183 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015184 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15185 msm_routing_get_port_mixer,
15186 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015187 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15188 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015189 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15190 msm_routing_get_port_mixer,
15191 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015192};
15193
15194static const struct snd_kcontrol_new tert_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015195 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15196 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015197 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15198 msm_routing_get_port_mixer,
15199 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015200 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15201 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015202 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15203 msm_routing_get_port_mixer,
15204 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015205 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15206 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015207 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15208 msm_routing_get_port_mixer,
15209 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015210 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15211 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015212 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15213 msm_routing_get_port_mixer,
15214 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015215 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15216 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015217 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15218 msm_routing_get_port_mixer,
15219 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015220 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15221 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015222 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15223 msm_routing_get_port_mixer,
15224 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015225 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15226 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015227 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15228 msm_routing_get_port_mixer,
15229 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015230 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15231 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015232 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15233 msm_routing_get_port_mixer,
15234 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015235 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15236 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015237 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15238 msm_routing_get_port_mixer,
15239 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015240 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15241 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015242 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15243 msm_routing_get_port_mixer,
15244 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015245 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15246 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015247 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15248 msm_routing_get_port_mixer,
15249 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015250 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15251 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015252 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15253 msm_routing_get_port_mixer,
15254 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015255 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15256 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015257 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15258 msm_routing_get_port_mixer,
15259 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015260 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15261 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015262 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15263 msm_routing_get_port_mixer,
15264 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015265 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15266 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015267 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15268 msm_routing_get_port_mixer,
15269 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015270 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15271 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015272 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15273 msm_routing_get_port_mixer,
15274 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015275 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15276 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015277 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15278 msm_routing_get_port_mixer,
15279 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015280 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15281 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015282 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15283 msm_routing_get_port_mixer,
15284 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015285 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15286 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015287 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15288 msm_routing_get_port_mixer,
15289 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015290 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15291 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015292 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15293 msm_routing_get_port_mixer,
15294 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015295};
15296
15297static const struct snd_kcontrol_new tert_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015298 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15299 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015300 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15301 msm_routing_get_port_mixer,
15302 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015303 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15304 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015305 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15306 msm_routing_get_port_mixer,
15307 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015308 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15309 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015310 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15311 msm_routing_get_port_mixer,
15312 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015313 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15314 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015315 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15316 msm_routing_get_port_mixer,
15317 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015318 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15319 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015320 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15321 msm_routing_get_port_mixer,
15322 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015323 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15324 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015325 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15326 msm_routing_get_port_mixer,
15327 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015328 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15329 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015330 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15331 msm_routing_get_port_mixer,
15332 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015333 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15334 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015335 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15336 msm_routing_get_port_mixer,
15337 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015338 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15339 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015340 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15341 msm_routing_get_port_mixer,
15342 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015343 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15344 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015345 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15346 msm_routing_get_port_mixer,
15347 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015348 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15349 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015350 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15351 msm_routing_get_port_mixer,
15352 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015353 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15354 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015355 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15356 msm_routing_get_port_mixer,
15357 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015358 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15359 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015360 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15361 msm_routing_get_port_mixer,
15362 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015363 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15364 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015365 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15366 msm_routing_get_port_mixer,
15367 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015368 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15369 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015370 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15371 msm_routing_get_port_mixer,
15372 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015373 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15374 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015375 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15376 msm_routing_get_port_mixer,
15377 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015378 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15379 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015380 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15381 msm_routing_get_port_mixer,
15382 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015383 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15384 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015385 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15386 msm_routing_get_port_mixer,
15387 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015388 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15389 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015390 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15391 msm_routing_get_port_mixer,
15392 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015393 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15394 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015395 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15396 msm_routing_get_port_mixer,
15397 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015398};
15399
15400static const struct snd_kcontrol_new tert_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015401 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15402 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015403 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15404 msm_routing_get_port_mixer,
15405 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015406 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15407 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015408 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15409 msm_routing_get_port_mixer,
15410 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015411 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15412 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015413 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15414 msm_routing_get_port_mixer,
15415 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015416 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15417 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015418 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15419 msm_routing_get_port_mixer,
15420 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015421 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15422 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015423 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15424 msm_routing_get_port_mixer,
15425 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015426 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15427 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015428 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15429 msm_routing_get_port_mixer,
15430 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015431 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15432 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015433 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15434 msm_routing_get_port_mixer,
15435 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015436 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15437 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015438 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15439 msm_routing_get_port_mixer,
15440 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015441 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15442 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015443 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15444 msm_routing_get_port_mixer,
15445 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015446 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15447 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015448 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15449 msm_routing_get_port_mixer,
15450 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015451 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15452 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015453 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15454 msm_routing_get_port_mixer,
15455 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015456 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15457 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015458 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15459 msm_routing_get_port_mixer,
15460 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015461 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15462 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015463 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15464 msm_routing_get_port_mixer,
15465 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015466 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15467 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015468 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15469 msm_routing_get_port_mixer,
15470 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015471 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15472 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015473 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15474 msm_routing_get_port_mixer,
15475 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015476 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15477 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015478 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15479 msm_routing_get_port_mixer,
15480 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015481 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15482 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015483 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15484 msm_routing_get_port_mixer,
15485 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015486 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15487 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015488 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15489 msm_routing_get_port_mixer,
15490 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015491 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15492 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015493 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15494 msm_routing_get_port_mixer,
15495 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015496 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15497 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015498 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15499 msm_routing_get_port_mixer,
15500 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015501};
15502
15503static const struct snd_kcontrol_new quat_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015504 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15505 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015506 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15507 msm_routing_get_port_mixer,
15508 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015509 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15510 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015511 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15512 msm_routing_get_port_mixer,
15513 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015514 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15515 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015516 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15517 msm_routing_get_port_mixer,
15518 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015519 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15520 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015521 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15522 msm_routing_get_port_mixer,
15523 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015524 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15525 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015526 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15527 msm_routing_get_port_mixer,
15528 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015529 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15530 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015531 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15532 msm_routing_get_port_mixer,
15533 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015534 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15535 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015536 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15537 msm_routing_get_port_mixer,
15538 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015539 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15540 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015541 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15542 msm_routing_get_port_mixer,
15543 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015544 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15545 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015546 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15547 msm_routing_get_port_mixer,
15548 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015549 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15550 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015551 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15552 msm_routing_get_port_mixer,
15553 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015554 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15555 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015556 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15557 msm_routing_get_port_mixer,
15558 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015559 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15560 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015561 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15562 msm_routing_get_port_mixer,
15563 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015564 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15565 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015566 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15567 msm_routing_get_port_mixer,
15568 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015569 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15570 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015571 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15572 msm_routing_get_port_mixer,
15573 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015574 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15575 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015576 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15577 msm_routing_get_port_mixer,
15578 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015579 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15580 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015581 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15582 msm_routing_get_port_mixer,
15583 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015584 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15585 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015586 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15587 msm_routing_get_port_mixer,
15588 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015589 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15590 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015591 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15592 msm_routing_get_port_mixer,
15593 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015594 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15595 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015596 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15597 msm_routing_get_port_mixer,
15598 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015599 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15600 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015601 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15602 msm_routing_get_port_mixer,
15603 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015604};
15605
15606static const struct snd_kcontrol_new quat_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015607 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15608 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015609 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15610 msm_routing_get_port_mixer,
15611 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015612 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15613 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015614 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15615 msm_routing_get_port_mixer,
15616 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015617 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15618 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015619 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15620 msm_routing_get_port_mixer,
15621 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015622 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15623 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015624 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15625 msm_routing_get_port_mixer,
15626 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015627 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15628 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015629 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15630 msm_routing_get_port_mixer,
15631 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015632 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15633 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015634 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15635 msm_routing_get_port_mixer,
15636 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015637 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15638 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015639 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15640 msm_routing_get_port_mixer,
15641 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015642 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15643 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015644 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15645 msm_routing_get_port_mixer,
15646 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015647 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15648 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015649 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15650 msm_routing_get_port_mixer,
15651 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015652 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15653 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015654 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15655 msm_routing_get_port_mixer,
15656 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015657 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15658 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015659 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15660 msm_routing_get_port_mixer,
15661 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015662 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15663 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015664 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15665 msm_routing_get_port_mixer,
15666 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015667 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15668 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015669 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15670 msm_routing_get_port_mixer,
15671 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015672 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15673 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015674 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15675 msm_routing_get_port_mixer,
15676 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015677 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15678 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015679 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15680 msm_routing_get_port_mixer,
15681 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015682 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15683 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015684 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15685 msm_routing_get_port_mixer,
15686 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015687 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15688 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015689 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15690 msm_routing_get_port_mixer,
15691 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015692 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15693 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015694 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15695 msm_routing_get_port_mixer,
15696 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015697 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15698 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015699 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15700 msm_routing_get_port_mixer,
15701 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015702 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15703 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015704 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15705 msm_routing_get_port_mixer,
15706 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015707};
15708
15709static const struct snd_kcontrol_new quat_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015710 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15711 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015712 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15713 msm_routing_get_port_mixer,
15714 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015715 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15716 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015717 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15718 msm_routing_get_port_mixer,
15719 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015720 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15721 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015722 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15723 msm_routing_get_port_mixer,
15724 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015725 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15726 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015727 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15728 msm_routing_get_port_mixer,
15729 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015730 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15731 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015732 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15733 msm_routing_get_port_mixer,
15734 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015735 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15736 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015737 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15738 msm_routing_get_port_mixer,
15739 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015740 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15741 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015742 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15743 msm_routing_get_port_mixer,
15744 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015745 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15746 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015747 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15748 msm_routing_get_port_mixer,
15749 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015750 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15751 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015752 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15753 msm_routing_get_port_mixer,
15754 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015755 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15756 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015757 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15758 msm_routing_get_port_mixer,
15759 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015760 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15761 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015762 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15763 msm_routing_get_port_mixer,
15764 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015765 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15766 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015767 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15768 msm_routing_get_port_mixer,
15769 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015770 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15771 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015772 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15773 msm_routing_get_port_mixer,
15774 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015775 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15776 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015777 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15778 msm_routing_get_port_mixer,
15779 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015780 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15781 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015782 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15783 msm_routing_get_port_mixer,
15784 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015785 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15786 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015787 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15788 msm_routing_get_port_mixer,
15789 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015790 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15791 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015792 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15793 msm_routing_get_port_mixer,
15794 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015795 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15796 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015797 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15798 msm_routing_get_port_mixer,
15799 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015800 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15801 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015802 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15803 msm_routing_get_port_mixer,
15804 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015805 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15806 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015807 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15808 msm_routing_get_port_mixer,
15809 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015810};
15811
15812static const struct snd_kcontrol_new quat_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015813 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15814 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015815 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15816 msm_routing_get_port_mixer,
15817 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015818 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15819 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015820 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15821 msm_routing_get_port_mixer,
15822 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015823 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15824 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015825 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15826 msm_routing_get_port_mixer,
15827 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015828 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15829 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015830 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15831 msm_routing_get_port_mixer,
15832 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015833 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15834 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015835 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15836 msm_routing_get_port_mixer,
15837 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015838 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15839 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015840 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15841 msm_routing_get_port_mixer,
15842 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015843 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15844 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015845 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15846 msm_routing_get_port_mixer,
15847 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015848 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15849 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015850 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15851 msm_routing_get_port_mixer,
15852 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015853 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15854 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015855 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15856 msm_routing_get_port_mixer,
15857 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015858 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15859 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015860 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15861 msm_routing_get_port_mixer,
15862 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015863 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15864 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015865 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15866 msm_routing_get_port_mixer,
15867 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015868 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15869 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015870 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15871 msm_routing_get_port_mixer,
15872 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015873 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15874 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015875 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15876 msm_routing_get_port_mixer,
15877 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015878 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15879 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015880 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15881 msm_routing_get_port_mixer,
15882 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015883 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15884 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015885 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15886 msm_routing_get_port_mixer,
15887 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015888 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15889 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015890 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15891 msm_routing_get_port_mixer,
15892 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015893 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15894 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015895 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15896 msm_routing_get_port_mixer,
15897 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015898 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15899 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015900 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15901 msm_routing_get_port_mixer,
15902 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015903 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15904 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015905 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15906 msm_routing_get_port_mixer,
15907 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015908 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15909 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015910 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15911 msm_routing_get_port_mixer,
15912 msm_routing_put_port_mixer),
15913};
15914
15915static const struct snd_kcontrol_new quin_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015916 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15917 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015918 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15919 msm_routing_get_port_mixer,
15920 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015921 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15922 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015923 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15924 msm_routing_get_port_mixer,
15925 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015926 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15927 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015928 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15929 msm_routing_get_port_mixer,
15930 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015931 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15932 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015933 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15934 msm_routing_get_port_mixer,
15935 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015936 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15937 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015938 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15939 msm_routing_get_port_mixer,
15940 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015941 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15942 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015943 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15944 msm_routing_get_port_mixer,
15945 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015946 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15947 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015948 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15949 msm_routing_get_port_mixer,
15950 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015951 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15952 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015953 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15954 msm_routing_get_port_mixer,
15955 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015956 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15957 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015958 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15959 msm_routing_get_port_mixer,
15960 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015961 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15962 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015963 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15964 msm_routing_get_port_mixer,
15965 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015966 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15967 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015968 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15969 msm_routing_get_port_mixer,
15970 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015971 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15972 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015973 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15974 msm_routing_get_port_mixer,
15975 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015976 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15977 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015978 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15979 msm_routing_get_port_mixer,
15980 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015981 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15982 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015983 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15984 msm_routing_get_port_mixer,
15985 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015986 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15987 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015988 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15989 msm_routing_get_port_mixer,
15990 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015991 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15992 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015993 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15994 msm_routing_get_port_mixer,
15995 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015996 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15997 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015998 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15999 msm_routing_get_port_mixer,
16000 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016001 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16002 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016003 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16004 msm_routing_get_port_mixer,
16005 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016006 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16007 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016008 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16009 msm_routing_get_port_mixer,
16010 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016011 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16012 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016013 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16014 msm_routing_get_port_mixer,
16015 msm_routing_put_port_mixer),
16016};
16017
16018static const struct snd_kcontrol_new quin_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016019 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16020 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016021 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16022 msm_routing_get_port_mixer,
16023 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016024 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16025 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016026 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16027 msm_routing_get_port_mixer,
16028 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016029 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16030 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016031 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16032 msm_routing_get_port_mixer,
16033 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016034 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16035 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016036 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16037 msm_routing_get_port_mixer,
16038 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016039 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16040 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016041 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16042 msm_routing_get_port_mixer,
16043 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016044 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16045 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016046 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16047 msm_routing_get_port_mixer,
16048 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016049 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16050 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016051 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16052 msm_routing_get_port_mixer,
16053 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016054 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16055 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016056 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16057 msm_routing_get_port_mixer,
16058 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016059 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16060 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016061 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16062 msm_routing_get_port_mixer,
16063 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016064 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16065 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016066 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16067 msm_routing_get_port_mixer,
16068 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016069 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16070 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016071 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16072 msm_routing_get_port_mixer,
16073 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016074 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16075 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016076 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16077 msm_routing_get_port_mixer,
16078 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016079 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16080 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016081 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16082 msm_routing_get_port_mixer,
16083 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016084 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16085 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016086 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16087 msm_routing_get_port_mixer,
16088 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016089 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16090 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016091 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16092 msm_routing_get_port_mixer,
16093 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016094 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16095 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016096 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16097 msm_routing_get_port_mixer,
16098 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016099 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16100 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016101 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16102 msm_routing_get_port_mixer,
16103 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016104 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16105 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016106 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16107 msm_routing_get_port_mixer,
16108 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016109 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16110 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016111 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16112 msm_routing_get_port_mixer,
16113 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016114 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16115 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016116 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16117 msm_routing_get_port_mixer,
16118 msm_routing_put_port_mixer),
16119};
16120
16121static const struct snd_kcontrol_new quin_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016122 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16123 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016124 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16125 msm_routing_get_port_mixer,
16126 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016127 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16128 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016129 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16130 msm_routing_get_port_mixer,
16131 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016132 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16133 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016134 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16135 msm_routing_get_port_mixer,
16136 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016137 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16138 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016139 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16140 msm_routing_get_port_mixer,
16141 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016142 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16143 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016144 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16145 msm_routing_get_port_mixer,
16146 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016147 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16148 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016149 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16150 msm_routing_get_port_mixer,
16151 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016152 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16153 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016154 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16155 msm_routing_get_port_mixer,
16156 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016157 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16158 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016159 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16160 msm_routing_get_port_mixer,
16161 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016162 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16163 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016164 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16165 msm_routing_get_port_mixer,
16166 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016167 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16168 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016169 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16170 msm_routing_get_port_mixer,
16171 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016172 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16173 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016174 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16175 msm_routing_get_port_mixer,
16176 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016177 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16178 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016179 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16180 msm_routing_get_port_mixer,
16181 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016182 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16183 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016184 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16185 msm_routing_get_port_mixer,
16186 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016187 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16188 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016189 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16190 msm_routing_get_port_mixer,
16191 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016192 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16193 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016194 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16195 msm_routing_get_port_mixer,
16196 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016197 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16198 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016199 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16200 msm_routing_get_port_mixer,
16201 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016202 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16203 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016204 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16205 msm_routing_get_port_mixer,
16206 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016207 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16208 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016209 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16210 msm_routing_get_port_mixer,
16211 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016212 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16213 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016214 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16215 msm_routing_get_port_mixer,
16216 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016217 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16218 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016219 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16220 msm_routing_get_port_mixer,
16221 msm_routing_put_port_mixer),
16222};
16223
16224static const struct snd_kcontrol_new quin_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016225 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16226 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016227 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16228 msm_routing_get_port_mixer,
16229 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016230 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16231 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016232 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16233 msm_routing_get_port_mixer,
16234 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016235 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16236 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016237 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16238 msm_routing_get_port_mixer,
16239 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016240 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16241 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016242 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16243 msm_routing_get_port_mixer,
16244 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016245 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16246 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016247 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16248 msm_routing_get_port_mixer,
16249 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016250 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16251 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016252 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16253 msm_routing_get_port_mixer,
16254 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016255 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16256 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016257 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16258 msm_routing_get_port_mixer,
16259 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016260 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16261 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016262 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16263 msm_routing_get_port_mixer,
16264 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016265 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16266 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016267 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16268 msm_routing_get_port_mixer,
16269 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016270 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16271 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016272 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16273 msm_routing_get_port_mixer,
16274 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016275 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16276 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016277 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16278 msm_routing_get_port_mixer,
16279 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016280 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16281 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016282 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16283 msm_routing_get_port_mixer,
16284 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016285 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16286 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016287 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16288 msm_routing_get_port_mixer,
16289 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016290 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16291 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016292 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16293 msm_routing_get_port_mixer,
16294 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016295 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16296 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016297 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16298 msm_routing_get_port_mixer,
16299 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016300 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16301 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016302 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16303 msm_routing_get_port_mixer,
16304 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016305 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16306 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016307 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16308 msm_routing_get_port_mixer,
16309 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016310 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16311 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016312 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16313 msm_routing_get_port_mixer,
16314 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016315 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16316 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016317 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16318 msm_routing_get_port_mixer,
16319 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016320 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16321 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016322 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16323 msm_routing_get_port_mixer,
16324 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016325};
16326
16327static const struct snd_kcontrol_new tert_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016328 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16329 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016330 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16331 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016332 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16333 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016334 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16335 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016336 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16337 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016338 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16339 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016340 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16341 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016342 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16343 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016344 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
16345 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016346 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16347 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016348 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16349 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016350 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16351 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016352 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16353 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016354 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16355 msm_routing_put_port_mixer),
16356};
16357
16358static const struct snd_kcontrol_new sec_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016359 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16360 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016361 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16362 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016363 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16364 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016365 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16366 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016367 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16368 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016369 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16370 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016371 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16372 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016373 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16374 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016375 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
16376 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016377 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16378 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016379 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16380 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016381 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16382 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016383 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16384 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016385 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
16386 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016387 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16388 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016389 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16390 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016391 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16392 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080016393 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16394 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016395};
16396
16397static const struct snd_kcontrol_new lsm1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016398 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16399 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016400 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16401 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016402 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16403 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016404 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16405 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016406 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16407 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016408 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16409 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016410 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16411 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016412 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16413 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016414 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16415 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016416 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16417 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016418 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16419 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016420 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16421 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016422 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16423 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016424 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16425 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016426 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16427 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016428 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16429 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016430 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16431 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16432 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16433 msm_routing_put_listen_mixer),
16434 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16435 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16436 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16437 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016438 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16439 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16440 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16441 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016442 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16443 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16444 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16445 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016446};
16447
16448static const struct snd_kcontrol_new lsm2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016449 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16450 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016451 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16452 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016453 SOC_DOUBLE_EXT("SLIMBUS_1_TX",
16454 SND_SOC_NOPM,
16455 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016456 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16457 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016458 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16459 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016460 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16461 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016462 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16463 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016464 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16465 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016466 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16467 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016468 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16469 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016470 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16471 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016472 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16473 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016474 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16475 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016476 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16477 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016478 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16479 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016480 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16481 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016482 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16483 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16484 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16485 msm_routing_put_listen_mixer),
16486 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16487 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16488 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16489 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016490 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16491 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16492 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16493 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016494 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16495 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16496 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16497 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016498};
16499
16500static const struct snd_kcontrol_new lsm3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016501 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16502 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016503 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16504 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016505 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16506 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016507 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16508 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016509 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16510 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016511 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16512 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016513 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16514 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016515 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16516 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016517 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16518 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016519 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16520 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016521 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16522 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016523 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16524 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016525 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16526 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016527 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16528 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016529 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16530 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016531 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16532 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016533 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16534 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16535 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16536 msm_routing_put_listen_mixer),
16537 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16538 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16539 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16540 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016541 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16542 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16543 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16544 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016545 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16546 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16547 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16548 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016549};
16550
16551static const struct snd_kcontrol_new lsm4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016552 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16553 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016554 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16555 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016556 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16557 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016558 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16559 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016560 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16561 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016562 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16563 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016564 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16565 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016566 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16567 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016568 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16569 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016570 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16571 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016572 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16573 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016574 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16575 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016576 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16577 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016578 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16579 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016580 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16581 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016582 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16583 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016584 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16585 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16586 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16587 msm_routing_put_listen_mixer),
16588 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16589 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16590 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16591 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016592 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16593 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16594 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16595 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016596 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16597 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16598 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16599 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016600};
16601
16602static const struct snd_kcontrol_new lsm5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016603 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16604 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016605 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16606 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016607 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16608 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016609 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16610 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016611 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16612 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016613 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16614 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016615 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16616 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016617 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16618 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016619 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16620 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016621 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16622 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016623 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16624 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016625 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16626 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016627 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16628 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016629 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16630 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016631 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16632 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016633 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16634 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016635 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16636 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16637 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16638 msm_routing_put_listen_mixer),
16639 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16640 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16641 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16642 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016643 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16644 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16645 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16646 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016647 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16648 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16649 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16650 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016651};
16652
16653static const struct snd_kcontrol_new lsm6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016654 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16655 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016656 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16657 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016658 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16659 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016660 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16661 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016662 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16663 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016664 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16665 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016666 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16667 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016668 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16669 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016670 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16671 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016672 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16673 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016674 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16675 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016676 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16677 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016678 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16679 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016680 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16681 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016682 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16683 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016684 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16685 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016686 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16687 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16688 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16689 msm_routing_put_listen_mixer),
16690 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16691 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16692 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16693 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016694 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16695 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16696 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16697 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016698 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16699 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16700 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16701 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016702};
16703
16704static const struct snd_kcontrol_new lsm7_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016705 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16706 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016707 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16708 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016709 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16710 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016711 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16712 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016713 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16714 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016715 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16716 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016717 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16718 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016719 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16720 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016721 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16722 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016723 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16724 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016725 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16726 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016727 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16728 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016729 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16730 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016731 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16732 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016733 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16734 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016735 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16736 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016737 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16738 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16739 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16740 msm_routing_put_listen_mixer),
16741 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16742 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16743 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16744 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016745 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16746 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16747 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16748 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016749 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16750 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16751 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16752 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016753};
16754
16755static const struct snd_kcontrol_new lsm8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016756 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16757 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016758 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16759 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016760 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16761 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016762 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16763 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016764 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16765 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016766 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16767 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016768 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16769 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016770 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16771 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016772 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16773 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016774 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16775 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016776 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16777 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016778 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16779 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016780 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16781 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016782 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16783 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016784 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16785 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016786 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16787 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016788 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16789 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16790 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16791 msm_routing_put_listen_mixer),
16792 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16793 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16794 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16795 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016796 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16797 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16798 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16799 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016800 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16801 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16802 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16803 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016804};
16805
16806static const struct snd_kcontrol_new slim_fm_switch_mixer_controls =
16807 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16808 0, 1, 0, msm_routing_get_switch_mixer,
16809 msm_routing_put_switch_mixer);
16810
16811static const struct snd_kcontrol_new slim1_fm_switch_mixer_controls =
16812 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16813 0, 1, 0, msm_routing_get_switch_mixer,
16814 msm_routing_put_switch_mixer);
16815
16816static const struct snd_kcontrol_new slim3_fm_switch_mixer_controls =
16817 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16818 0, 1, 0, msm_routing_get_switch_mixer,
16819 msm_routing_put_switch_mixer);
16820
16821static const struct snd_kcontrol_new slim4_fm_switch_mixer_controls =
16822 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16823 0, 1, 0, msm_routing_get_switch_mixer,
16824 msm_routing_put_switch_mixer);
16825
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053016826static const struct snd_kcontrol_new cdc_dma_wsa_switch_mixer_controls =
16827 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16828 0, 1, 0, msm_routing_get_switch_mixer,
16829 msm_routing_put_switch_mixer);
16830
16831static const struct snd_kcontrol_new cdc_dma_rx_switch_mixer_controls =
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053016832 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16833 0, 1, 0, msm_routing_get_switch_mixer,
16834 msm_routing_put_switch_mixer);
16835
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016836static const struct snd_kcontrol_new slim6_fm_switch_mixer_controls =
16837 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16838 0, 1, 0, msm_routing_get_switch_mixer,
16839 msm_routing_put_switch_mixer);
16840
16841static const struct snd_kcontrol_new pcm_rx_switch_mixer_controls =
16842 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16843 0, 1, 0, msm_routing_get_fm_pcmrx_switch_mixer,
16844 msm_routing_put_fm_pcmrx_switch_mixer);
16845
16846static const struct snd_kcontrol_new int0_mi2s_rx_switch_mixer_controls =
16847 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16848 0, 1, 0, msm_routing_get_int0_mi2s_switch_mixer,
16849 msm_routing_put_int0_mi2s_switch_mixer);
16850
16851static const struct snd_kcontrol_new int4_mi2s_rx_switch_mixer_controls =
16852 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16853 0, 1, 0, msm_routing_get_int4_mi2s_switch_mixer,
16854 msm_routing_put_int4_mi2s_switch_mixer);
16855
16856static const struct snd_kcontrol_new pri_mi2s_rx_switch_mixer_controls =
16857 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16858 0, 1, 0, msm_routing_get_pri_mi2s_switch_mixer,
16859 msm_routing_put_pri_mi2s_switch_mixer);
16860
16861static const struct snd_kcontrol_new sec_mi2s_rx_switch_mixer_controls =
16862 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16863 0, 1, 0, msm_routing_get_sec_mi2s_switch_mixer,
16864 msm_routing_put_sec_mi2s_switch_mixer);
16865
16866static const struct snd_kcontrol_new tert_mi2s_rx_switch_mixer_controls =
16867 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16868 0, 1, 0, msm_routing_get_tert_mi2s_switch_mixer,
16869 msm_routing_put_tert_mi2s_switch_mixer);
16870
16871static const struct snd_kcontrol_new quat_mi2s_rx_switch_mixer_controls =
16872 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16873 0, 1, 0, msm_routing_get_quat_mi2s_switch_mixer,
16874 msm_routing_put_quat_mi2s_switch_mixer);
16875
Rohit Kumara5077932017-09-10 22:05:05 +053016876static const struct snd_kcontrol_new quin_mi2s_rx_switch_mixer_controls =
16877 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16878 0, 1, 0, msm_routing_get_quin_mi2s_switch_mixer,
16879 msm_routing_put_quin_mi2s_switch_mixer);
16880
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016881static const struct snd_kcontrol_new hfp_pri_aux_switch_mixer_controls =
16882 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16883 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16884 msm_routing_put_hfp_switch_mixer);
16885
16886static const struct snd_kcontrol_new hfp_aux_switch_mixer_controls =
16887 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16888 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16889 msm_routing_put_hfp_switch_mixer);
16890
16891static const struct snd_kcontrol_new hfp_int_switch_mixer_controls =
16892 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16893 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16894 msm_routing_put_hfp_switch_mixer);
16895
16896static const struct snd_kcontrol_new hfp_slim7_switch_mixer_controls =
16897 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16898 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16899 msm_routing_put_hfp_switch_mixer);
16900
16901static const struct snd_kcontrol_new usb_switch_mixer_controls =
16902 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16903 0, 1, 0, msm_routing_get_usb_switch_mixer,
16904 msm_routing_put_usb_switch_mixer);
16905
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080016906static const struct snd_kcontrol_new a2dp_slim7_switch_mixer_controls =
16907 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16908 0, 1, 0, msm_routing_a2dp_switch_mixer_get,
16909 msm_routing_a2dp_switch_mixer_put);
16910
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016911static const struct soc_enum lsm_port_enum =
16912 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_port_text), lsm_port_text);
16913
16914static const char * const lsm_func_text[] = {
16915 "None", "AUDIO", "BEACON", "ULTRASOUND", "SWAUDIO",
16916};
16917static const struct soc_enum lsm_func_enum =
16918 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_func_text), lsm_func_text);
16919
16920static const struct snd_kcontrol_new lsm_controls[] = {
16921 /* kcontrol of lsm_function */
16922 SOC_ENUM_EXT(SLIMBUS_0_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16923 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16924 SOC_ENUM_EXT(SLIMBUS_1_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16925 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16926 SOC_ENUM_EXT(SLIMBUS_2_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16927 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16928 SOC_ENUM_EXT(SLIMBUS_3_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16929 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16930 SOC_ENUM_EXT(SLIMBUS_4_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16931 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16932 SOC_ENUM_EXT(SLIMBUS_5_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16933 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16934 SOC_ENUM_EXT(TERT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16935 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16936 SOC_ENUM_EXT(QUAT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16937 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16938 SOC_ENUM_EXT(INT3_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16939 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016940 SOC_ENUM_EXT(TX_CDC_DMA_TX_3_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16941 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016942 SOC_ENUM_EXT(QUIN_TDM_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16943 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016944 /* kcontrol of lsm_port */
16945 SOC_ENUM_EXT("LSM1 Port", lsm_port_enum,
16946 msm_routing_lsm_port_get,
16947 msm_routing_lsm_port_put),
16948 SOC_ENUM_EXT("LSM2 Port", lsm_port_enum,
16949 msm_routing_lsm_port_get,
16950 msm_routing_lsm_port_put),
16951 SOC_ENUM_EXT("LSM3 Port", lsm_port_enum,
16952 msm_routing_lsm_port_get,
16953 msm_routing_lsm_port_put),
16954 SOC_ENUM_EXT("LSM4 Port", lsm_port_enum,
16955 msm_routing_lsm_port_get,
16956 msm_routing_lsm_port_put),
16957 SOC_ENUM_EXT("LSM5 Port", lsm_port_enum,
16958 msm_routing_lsm_port_get,
16959 msm_routing_lsm_port_put),
16960 SOC_ENUM_EXT("LSM6 Port", lsm_port_enum,
16961 msm_routing_lsm_port_get,
16962 msm_routing_lsm_port_put),
16963 SOC_ENUM_EXT("LSM7 Port", lsm_port_enum,
16964 msm_routing_lsm_port_get,
16965 msm_routing_lsm_port_put),
16966 SOC_ENUM_EXT("LSM8 Port", lsm_port_enum,
16967 msm_routing_lsm_port_get,
16968 msm_routing_lsm_port_put),
16969};
16970
16971static const char * const aanc_slim_0_rx_text[] = {
16972 "ZERO", "SLIMBUS_0_TX", "SLIMBUS_1_TX", "SLIMBUS_2_TX", "SLIMBUS_3_TX",
16973 "SLIMBUS_4_TX", "SLIMBUS_5_TX", "SLIMBUS_6_TX"
16974};
16975
16976static const struct soc_enum aanc_slim_0_rx_enum =
16977 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(aanc_slim_0_rx_text),
16978 aanc_slim_0_rx_text);
16979
16980static const struct snd_kcontrol_new aanc_slim_0_rx_mux[] = {
16981 SOC_ENUM_EXT("AANC_SLIM_0_RX MUX", aanc_slim_0_rx_enum,
16982 msm_routing_slim_0_rx_aanc_mux_get,
16983 msm_routing_slim_0_rx_aanc_mux_put)
16984};
16985
Sudheer Papothic07b37a2018-05-04 05:56:47 +053016986static int msm_routing_aanc_noise_level_get(struct snd_kcontrol *kcontrol,
16987 struct snd_ctl_elem_value *ucontrol)
16988{
16989 ucontrol->value.integer.value[0] = aanc_level;
16990
16991 return 0;
16992}
16993
16994static int msm_routing_aanc_noise_level_put(struct snd_kcontrol *kcontrol,
16995 struct snd_ctl_elem_value *ucontrol)
16996{
16997 int ret = 0;
16998
16999 mutex_lock(&routing_lock);
17000 aanc_level = ucontrol->value.integer.value[0];
17001 pr_debug("%s: value: %ld\n",
17002 __func__, ucontrol->value.integer.value[0]);
17003 ret = afe_set_aanc_noise_level(aanc_level);
17004 mutex_unlock(&routing_lock);
17005
17006 return ret;
17007}
17008
17009static const struct snd_kcontrol_new aanc_noise_level[] = {
17010 SOC_SINGLE_EXT("AANC Noise Level", SND_SOC_NOPM, 0, 255,
17011 0, msm_routing_aanc_noise_level_get, msm_routing_aanc_noise_level_put)
17012};
17013
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017014static int msm_routing_get_stereo_to_custom_stereo_control(
17015 struct snd_kcontrol *kcontrol,
17016 struct snd_ctl_elem_value *ucontrol)
17017{
17018 ucontrol->value.integer.value[0] = is_custom_stereo_on;
17019 return 0;
17020}
17021
17022static int msm_routing_put_stereo_to_custom_stereo_control(
17023 struct snd_kcontrol *kcontrol,
17024 struct snd_ctl_elem_value *ucontrol)
17025{
17026 int flag = 0, i = 0, rc = 0, idx = 0;
17027 int be_index = 0, port_id, topo_id;
17028 unsigned int session_id = 0;
17029 uint16_t op_FL_ip_FL_weight = 0;
17030 uint16_t op_FL_ip_FR_weight = 0;
17031 uint16_t op_FR_ip_FL_weight = 0;
17032 uint16_t op_FR_ip_FR_weight = 0;
17033
17034 flag = ucontrol->value.integer.value[0];
17035 pr_debug("%s E flag %d\n", __func__, flag);
17036
17037 if ((is_custom_stereo_on && flag) || (!is_custom_stereo_on && !flag)) {
17038 pr_err("%s: is_custom_stereo_on %d, flag %d\n",
17039 __func__, is_custom_stereo_on, flag);
17040 return 0;
17041 }
17042 is_custom_stereo_on = flag ? true : false;
17043 pr_debug("%s:is_custom_stereo_on %d\n", __func__, is_custom_stereo_on);
17044 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
17045 port_id = msm_bedais[be_index].port_id;
17046 if (!msm_bedais[be_index].active)
17047 continue;
17048 if ((port_id != SLIMBUS_0_RX) &&
17049 (port_id != RT_PROXY_PORT_001_RX) &&
17050 (port_id != AFE_PORT_ID_PRIMARY_MI2S_RX) &&
17051 (port_id != AFE_PORT_ID_INT4_MI2S_RX))
17052 continue;
17053
17054 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
17055 MSM_FRONTEND_DAI_MM_SIZE) {
17056 if (fe_dai_map[i][SESSION_TYPE_RX].perf_mode !=
17057 LEGACY_PCM_MODE)
17058 goto skip_send_custom_stereo;
17059 session_id =
17060 fe_dai_map[i][SESSION_TYPE_RX].strm_id;
17061 if (is_custom_stereo_on) {
17062 op_FL_ip_FL_weight =
17063 Q14_GAIN_ZERO_POINT_FIVE;
17064 op_FL_ip_FR_weight =
17065 Q14_GAIN_ZERO_POINT_FIVE;
17066 op_FR_ip_FL_weight =
17067 Q14_GAIN_ZERO_POINT_FIVE;
17068 op_FR_ip_FR_weight =
17069 Q14_GAIN_ZERO_POINT_FIVE;
17070 } else {
17071 op_FL_ip_FL_weight = Q14_GAIN_UNITY;
17072 op_FL_ip_FR_weight = 0;
17073 op_FR_ip_FL_weight = 0;
17074 op_FR_ip_FR_weight = Q14_GAIN_UNITY;
17075 }
17076 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
17077 unsigned long copp =
17078 session_copp_map[i]
17079 [SESSION_TYPE_RX][be_index];
17080 if (!test_bit(idx, &copp))
17081 goto skip_send_custom_stereo;
17082 topo_id = adm_get_topology_for_port_copp_idx(
17083 msm_bedais[be_index].port_id, idx);
17084 if (topo_id < 0)
17085 pr_debug("%s:Err:custom stereo topo %d",
17086 __func__, topo_id);
17087 pr_debug("idx %d\n", idx);
17088 if (topo_id == DS2_ADM_COPP_TOPOLOGY_ID)
17089 rc = msm_ds2_dap_set_custom_stereo_onoff
17090 (msm_bedais[be_index].port_id,
17091 idx, is_custom_stereo_on);
17092 else if (topo_id == DOLBY_ADM_COPP_TOPOLOGY_ID)
17093 rc = dolby_dap_set_custom_stereo_onoff(
17094 msm_bedais[be_index].port_id,
17095 idx, is_custom_stereo_on);
17096 else
17097 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd
17098 (msm_bedais[be_index].port_id,
17099 idx, session_id,
17100 op_FL_ip_FL_weight,
17101 op_FL_ip_FR_weight,
17102 op_FR_ip_FL_weight,
17103 op_FR_ip_FR_weight);
17104 if (rc < 0)
17105skip_send_custom_stereo:
17106 pr_err("%s: err setting custom stereo\n",
17107 __func__);
17108 }
17109
17110 }
17111 }
17112 return 0;
17113}
17114
17115static const struct snd_kcontrol_new stereo_to_custom_stereo_controls[] = {
17116 SOC_SINGLE_EXT("Set Custom Stereo OnOff", SND_SOC_NOPM, 0,
17117 1, 0, msm_routing_get_stereo_to_custom_stereo_control,
17118 msm_routing_put_stereo_to_custom_stereo_control),
17119};
17120
17121static int msm_routing_get_app_type_cfg_control(struct snd_kcontrol *kcontrol,
17122 struct snd_ctl_elem_value *ucontrol)
17123{
17124 return 0;
17125}
17126
17127static int msm_routing_put_app_type_cfg_control(struct snd_kcontrol *kcontrol,
17128 struct snd_ctl_elem_value *ucontrol)
17129{
17130 int i = 0, j;
17131 int num_app_types = ucontrol->value.integer.value[i++];
17132
17133 pr_debug("%s\n", __func__);
17134
17135 memset(app_type_cfg, 0, MAX_APP_TYPES*
17136 sizeof(struct msm_pcm_routing_app_type_data));
17137 if (num_app_types > MAX_APP_TYPES) {
17138 pr_err("%s: number of app types exceed the max supported\n",
17139 __func__);
17140 return -EINVAL;
17141 }
17142 for (j = 0; j < num_app_types; j++) {
17143 app_type_cfg[j].app_type =
17144 ucontrol->value.integer.value[i++];
17145 app_type_cfg[j].sample_rate =
17146 ucontrol->value.integer.value[i++];
17147 app_type_cfg[j].bit_width =
17148 ucontrol->value.integer.value[i++];
17149 }
17150
17151 return 0;
17152}
17153
17154static int msm_routing_put_app_type_gain_control(struct snd_kcontrol *kcontrol,
17155 struct snd_ctl_elem_value *ucontrol)
17156{
17157 int j, fe_id, be_id, port_type;
17158 int ret = 0;
17159 unsigned long copp;
17160 struct msm_pcm_routing_bdai_data *bedai;
17161 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
17162 SESSION_TYPE_RX;
17163 int app_type = ucontrol->value.integer.value[1];
17164 int gain = (ucontrol->value.integer.value[2] +
17165 ucontrol->value.integer.value[3])/2;
17166
17167 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
17168 MSM_AFE_PORT_TYPE_TX;
17169
17170 mutex_lock(&routing_lock);
17171 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
17172 if (is_be_dai_extproc(be_id))
17173 continue;
17174
17175 bedai = &msm_bedais[be_id];
17176 if (afe_get_port_type(bedai->port_id) != port_type)
17177 continue;
17178
17179 if (!bedai->active)
17180 continue;
17181
17182 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
17183 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
17184 continue;
17185
17186 if (app_type !=
17187 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
17188 continue;
17189
17190 copp = session_copp_map[fe_id][dir][be_id];
17191 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
17192 if (!test_bit(j, &copp))
17193 continue;
17194 ret |= adm_set_volume(bedai->port_id, j, gain);
17195 }
17196 }
17197 }
17198 mutex_unlock(&routing_lock);
17199 return ret ? -EINVAL : 0;
17200}
17201
17202static const struct snd_kcontrol_new app_type_cfg_controls[] = {
17203 SOC_SINGLE_MULTI_EXT("App Type Config", SND_SOC_NOPM, 0,
17204 0xFFFFFFFF, 0, 128, msm_routing_get_app_type_cfg_control,
17205 msm_routing_put_app_type_cfg_control),
17206 SOC_SINGLE_MULTI_EXT("App Type Gain", SND_SOC_NOPM, 0,
17207 0x2000, 0, 4, NULL, msm_routing_put_app_type_gain_control)
17208};
17209
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017210static int msm_routing_put_module_cfg_control(struct snd_kcontrol *kcontrol,
17211 struct snd_ctl_elem_value *ucontrol)
17212{
17213 int copp_idx, fe_id, be_id, port_type;
17214 int ret = 0;
17215 unsigned long copp;
17216 struct msm_pcm_routing_bdai_data *bedai;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017217 u8 *packed_params = NULL;
17218 struct param_hdr_v3 param_hdr;
17219 u32 packed_param_size = (sizeof(struct param_hdr_v3) +
17220 sizeof(uint32_t));
17221
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017222 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
17223 SESSION_TYPE_RX;
17224 int app_type = ucontrol->value.integer.value[1];
17225 int module_id = ucontrol->value.integer.value[2];
17226 int instance_id = ucontrol->value.integer.value[3];
17227 int param_id = ucontrol->value.integer.value[4];
17228 int param_value = ucontrol->value.integer.value[5];
17229
17230 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
17231 MSM_AFE_PORT_TYPE_TX;
17232 pr_debug("%s app_type:%d mod_id:%d instance_id:%d param_id:%d value:%d\n",
17233 __func__, app_type, module_id,
17234 instance_id, param_id, param_value);
17235
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017236 packed_params = kzalloc(packed_param_size, GFP_KERNEL);
17237 if (!packed_params)
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017238 return -ENOMEM;
17239
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017240 memset(&param_hdr, 0, sizeof(param_hdr));
17241 param_hdr.module_id = module_id;
17242 param_hdr.instance_id = instance_id;
17243 param_hdr.param_id = param_id;
17244 param_hdr.param_size = sizeof(uint32_t);
17245
17246 packed_param_size = 0;
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017247
17248 mutex_lock(&routing_lock);
17249 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
17250 if (is_be_dai_extproc(be_id))
17251 continue;
17252
17253 bedai = &msm_bedais[be_id];
17254 if (afe_get_port_type(bedai->port_id) != port_type)
17255 continue;
17256
17257 if (!bedai->active)
17258 continue;
17259
17260 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
17261 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
17262 continue;
17263
17264 if (app_type !=
17265 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
17266 continue;
17267
17268 copp = session_copp_map[fe_id][dir][be_id];
17269 for (copp_idx = 0; copp_idx < MAX_COPPS_PER_PORT;
17270 copp_idx++) {
17271 if (!test_bit(copp_idx, &copp))
17272 continue;
17273
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017274 ret = q6common_pack_pp_params(packed_params,
17275 &param_hdr,
17276 (u8 *) &param_value,
17277 &packed_param_size);
17278 if (ret) {
17279 pr_err("%s: Failed to pack params, error %d\n",
17280 __func__, ret);
17281 goto done;
17282 }
17283
17284 ret = adm_set_pp_params(bedai->port_id,
17285 copp_idx, NULL,
17286 packed_params,
17287 packed_param_size);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017288 if (ret) {
17289 pr_err("%s: Setting param failed with err=%d\n",
17290 __func__, ret);
17291 ret = -EINVAL;
17292 goto done;
17293 }
17294 }
17295 }
17296 }
17297done:
17298 mutex_unlock(&routing_lock);
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017299 kfree(packed_params);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017300 return ret;
17301}
17302
17303static const struct snd_kcontrol_new module_cfg_controls[] = {
17304 SOC_SINGLE_MULTI_EXT("Audio Effect", SND_SOC_NOPM, 0,
17305 0x2000, 0, 6, NULL, msm_routing_put_module_cfg_control)
17306};
17307
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017308static int msm_routing_get_lsm_app_type_cfg_control(
17309 struct snd_kcontrol *kcontrol,
17310 struct snd_ctl_elem_value *ucontrol)
17311{
Meng Wangadbca4f2018-10-29 14:30:13 +080017312 int shift = ((struct soc_multi_mixer_control *)
17313 kcontrol->private_value)->shift;
17314 int i = 0, j = 0;
17315
17316 ucontrol->value.integer.value[i] = num_app_cfg_types;
17317
17318 for (j = 0; j < num_app_cfg_types; ++j) {
17319 ucontrol->value.integer.value[++i] =
17320 lsm_app_type_cfg[j].app_type;
17321 ucontrol->value.integer.value[++i] =
17322 lsm_app_type_cfg[j].sample_rate;
17323 ucontrol->value.integer.value[++i] =
17324 lsm_app_type_cfg[j].bit_width;
17325 if (shift == 1)
17326 ucontrol->value.integer.value[++i] =
17327 lsm_app_type_cfg[j].num_out_channels;
17328 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017329 return 0;
17330}
17331
17332static int msm_routing_put_lsm_app_type_cfg_control(
17333 struct snd_kcontrol *kcontrol,
17334 struct snd_ctl_elem_value *ucontrol)
17335{
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017336 int shift = ((struct soc_multi_mixer_control *)
17337 kcontrol->private_value)->shift;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017338 int i = 0, j;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017339
Meng Wangadbca4f2018-10-29 14:30:13 +080017340 num_app_cfg_types = ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017341 memset(lsm_app_type_cfg, 0, MAX_APP_TYPES*
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017342 sizeof(struct msm_pcm_routing_app_type_data));
17343
Meng Wangadbca4f2018-10-29 14:30:13 +080017344 if (num_app_cfg_types > MAX_APP_TYPES) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017345 pr_err("%s: number of app types exceed the max supported\n",
17346 __func__);
17347 return -EINVAL;
17348 }
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017349
Meng Wangadbca4f2018-10-29 14:30:13 +080017350 for (j = 0; j < num_app_cfg_types; j++) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017351 lsm_app_type_cfg[j].app_type =
17352 ucontrol->value.integer.value[i++];
17353 lsm_app_type_cfg[j].sample_rate =
17354 ucontrol->value.integer.value[i++];
17355 lsm_app_type_cfg[j].bit_width =
17356 ucontrol->value.integer.value[i++];
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017357 /* Shift of 1 indicates this is V2 mixer control */
17358 if (shift == 1)
17359 lsm_app_type_cfg[j].num_out_channels =
17360 ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017361 }
17362
17363 return 0;
17364}
17365
17366static const struct snd_kcontrol_new lsm_app_type_cfg_controls[] = {
17367 SOC_SINGLE_MULTI_EXT("Listen App Type Config", SND_SOC_NOPM, 0,
17368 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
17369 msm_routing_put_lsm_app_type_cfg_control),
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017370 SOC_SINGLE_MULTI_EXT("Listen App Type Config V2", SND_SOC_NOPM, 1,
17371 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
17372 msm_routing_put_lsm_app_type_cfg_control),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017373};
17374
17375static int msm_routing_get_use_ds1_or_ds2_control(
17376 struct snd_kcontrol *kcontrol,
17377 struct snd_ctl_elem_value *ucontrol)
17378{
17379 ucontrol->value.integer.value[0] = is_ds2_on;
17380 return 0;
17381}
17382
17383static int msm_routing_put_use_ds1_or_ds2_control(
17384 struct snd_kcontrol *kcontrol,
17385 struct snd_ctl_elem_value *ucontrol)
17386{
17387 is_ds2_on = ucontrol->value.integer.value[0];
17388 return 0;
17389}
17390
17391static const struct snd_kcontrol_new use_ds1_or_ds2_controls[] = {
17392 SOC_SINGLE_EXT("DS2 OnOff", SND_SOC_NOPM, 0,
17393 1, 0, msm_routing_get_use_ds1_or_ds2_control,
17394 msm_routing_put_use_ds1_or_ds2_control),
17395};
17396
17397int msm_routing_get_rms_value_control(struct snd_kcontrol *kcontrol,
17398 struct snd_ctl_elem_value *ucontrol) {
17399 int rc = 0;
17400 int be_idx = 0;
17401 char *param_value;
17402 int *update_param_value;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017403 uint32_t param_size = (RMS_PAYLOAD_LEN + 1) * sizeof(uint32_t);
17404 struct param_hdr_v3 param_hdr;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017405
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017406 param_value = kzalloc(param_size, GFP_KERNEL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017407 if (!param_value)
17408 return -ENOMEM;
17409
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017410 memset(&param_hdr, 0, sizeof(param_hdr));
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017411 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++)
17412 if (msm_bedais[be_idx].port_id == SLIMBUS_0_TX)
17413 break;
17414 if ((be_idx < MSM_BACKEND_DAI_MAX) && msm_bedais[be_idx].active) {
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017415 param_hdr.module_id = RMS_MODULEID_APPI_PASSTHRU;
17416 param_hdr.instance_id = INSTANCE_ID_0;
17417 param_hdr.param_id = RMS_PARAM_FIRST_SAMPLE;
17418 param_hdr.param_size = param_size;
17419 rc = adm_get_pp_params(SLIMBUS_0_TX, 0, ADM_CLIENT_ID_DEFAULT,
17420 NULL, &param_hdr, (u8 *) param_value);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017421 if (rc) {
17422 pr_err("%s: get parameters failed:%d\n", __func__, rc);
17423 kfree(param_value);
17424 return -EINVAL;
17425 }
17426 update_param_value = (int *)param_value;
17427 ucontrol->value.integer.value[0] = update_param_value[0];
17428
17429 pr_debug("%s: FROM DSP value[0] 0x%x\n",
17430 __func__, update_param_value[0]);
17431 }
17432 kfree(param_value);
17433 return 0;
17434}
17435
17436static int msm_voc_session_id_put(struct snd_kcontrol *kcontrol,
17437 struct snd_ctl_elem_value *ucontrol)
17438{
17439 voc_session_id = ucontrol->value.integer.value[0];
17440
17441 pr_debug("%s: voc_session_id=%u\n", __func__, voc_session_id);
17442
17443 return 0;
17444}
17445
17446static int msm_voc_session_id_get(struct snd_kcontrol *kcontrol,
17447 struct snd_ctl_elem_value *ucontrol)
17448{
17449 ucontrol->value.integer.value[0] = voc_session_id;
17450
17451 return 0;
17452}
17453
17454static struct snd_kcontrol_new msm_voc_session_controls[] = {
17455 SOC_SINGLE_MULTI_EXT("Voc VSID", SND_SOC_NOPM, 0,
17456 0xFFFFFFFF, 0, 1, msm_voc_session_id_get,
17457 msm_voc_session_id_put),
17458};
17459
17460static int msm_sound_focus_info(struct snd_kcontrol *kcontrol,
17461 struct snd_ctl_elem_info *uinfo)
17462{
17463 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
17464 uinfo->count = sizeof(struct sound_focus_param);
17465
17466 return 0;
17467}
17468
17469static int msm_voice_sound_focus_put(struct snd_kcontrol *kcontrol,
17470 struct snd_ctl_elem_value *ucontrol)
17471{
17472 int ret = 0;
17473 struct sound_focus_param soundFocusData;
17474
17475 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
17476 sizeof(struct sound_focus_param));
17477 ret = voc_set_sound_focus(soundFocusData);
17478 if (ret) {
17479 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
17480 __func__, ret);
17481
17482 ret = -EINVAL;
17483 }
17484
17485 return ret;
17486}
17487
17488static int msm_voice_sound_focus_get(struct snd_kcontrol *kcontrol,
17489 struct snd_ctl_elem_value *ucontrol)
17490{
17491 int ret = 0;
17492 struct sound_focus_param soundFocusData;
17493
17494 memset(&soundFocusData, 0, sizeof(struct sound_focus_param));
17495
17496 ret = voc_get_sound_focus(&soundFocusData);
17497 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070017498 pr_debug("%s: Error getting Sound Focus Params, err=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017499 __func__, ret);
17500
17501 ret = -EINVAL;
17502 goto done;
17503 }
17504 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
17505 sizeof(struct sound_focus_param));
17506
17507done:
17508 return ret;
17509}
17510
17511static int msm_source_tracking_info(struct snd_kcontrol *kcontrol,
17512 struct snd_ctl_elem_info *uinfo)
17513{
17514 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
17515 uinfo->count = sizeof(struct source_tracking_param);
17516
17517 return 0;
17518}
17519
17520static int msm_voice_source_tracking_get(struct snd_kcontrol *kcontrol,
17521 struct snd_ctl_elem_value *ucontrol)
17522{
Meng Wang92edfde2018-04-24 12:18:37 +080017523 int ret = 0;
17524 struct source_tracking_param sourceTrackingData;
17525
17526 memset(&sourceTrackingData, 0, sizeof(struct source_tracking_param));
17527
17528 ret = voc_get_source_tracking(&sourceTrackingData);
17529 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070017530 pr_debug("%s: Error getting Source Tracking Params, err=%d\n",
Meng Wang92edfde2018-04-24 12:18:37 +080017531 __func__, ret);
17532
17533 ret = -EINVAL;
17534 goto done;
17535 }
17536 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
17537 sizeof(struct source_tracking_param));
17538
17539done:
17540 return ret;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017541}
17542
17543static int msm_audio_get_copp_idx_from_port_id(int port_id, int session_type,
17544 int *copp_idx)
17545{
17546 int i, idx, be_idx;
17547 int ret = 0;
17548 unsigned long copp;
17549
17550 pr_debug("%s: Enter, port_id=%d\n", __func__, port_id);
17551
17552 ret = q6audio_validate_port(port_id);
17553 if (ret < 0) {
17554 pr_err("%s: port validation failed id 0x%x ret %d\n",
17555 __func__, port_id, ret);
17556
17557 ret = -EINVAL;
17558 goto done;
17559 }
17560
17561 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
17562 if (msm_bedais[be_idx].port_id == port_id)
17563 break;
17564 }
17565 if (be_idx >= MSM_BACKEND_DAI_MAX) {
17566 pr_err("%s: Invalid be id %d\n", __func__, be_idx);
17567
17568 ret = -EINVAL;
17569 goto done;
17570 }
17571
17572 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
17573 MSM_FRONTEND_DAI_MM_SIZE) {
17574 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
17575 copp = session_copp_map[i]
17576 [session_type][be_idx];
17577 if (test_bit(idx, &copp))
17578 break;
17579 }
17580 if (idx >= MAX_COPPS_PER_PORT)
17581 continue;
17582 else
17583 break;
17584 }
17585 if (i >= MSM_FRONTEND_DAI_MM_SIZE) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070017586 pr_debug("%s: Invalid FE, exiting\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017587
17588 ret = -EINVAL;
17589 goto done;
17590 }
17591 *copp_idx = idx;
17592 pr_debug("%s: copp_idx=%d\n", __func__, *copp_idx);
17593
17594done:
17595 return ret;
17596}
17597
17598static int msm_audio_sound_focus_derive_port_id(struct snd_kcontrol *kcontrol,
17599 const char *prefix, int *port_id)
17600{
17601 int ret = 0;
17602
17603 pr_debug("%s: Enter, prefix:%s\n", __func__, prefix);
17604
17605 /*
17606 * Mixer control name will be like "Sound Focus Audio Tx SLIMBUS_0"
17607 * where the prefix is "Sound Focus Audio Tx ". Skip the prefix
17608 * and compare the string with the backend name to derive the port id.
17609 */
17610 if (!strcmp(kcontrol->id.name + strlen(prefix),
17611 "SLIMBUS_0")) {
17612 *port_id = SLIMBUS_0_TX;
17613 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17614 "TERT_MI2S")) {
17615 *port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
17616 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17617 "INT3_MI2S")) {
17618 *port_id = AFE_PORT_ID_INT3_MI2S_TX;
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053017619 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17620 "VA_CDC_DMA_TX_0")) {
17621 *port_id = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053017622 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17623 "TX_CDC_DMA_TX_3")) {
17624 *port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017625 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17626 "QUIN_TDM_TX_0")) {
17627 *port_id = AFE_PORT_ID_QUINARY_TDM_TX;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017628 } else {
17629 pr_err("%s: mixer ctl name=%s, could not derive valid port id\n",
17630 __func__, kcontrol->id.name);
17631
17632 ret = -EINVAL;
17633 goto done;
17634 }
17635 pr_debug("%s: mixer ctl name=%s, derived port_id=%d\n",
17636 __func__, kcontrol->id.name, *port_id);
17637
17638done:
17639 return ret;
17640}
17641
17642static int msm_audio_sound_focus_put(struct snd_kcontrol *kcontrol,
17643 struct snd_ctl_elem_value *ucontrol)
17644{
17645 int ret = 0;
17646 struct sound_focus_param soundFocusData;
17647 int port_id, copp_idx;
17648
17649 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17650 "Sound Focus Audio Tx ", &port_id);
17651 if (ret != 0) {
17652 pr_err("%s: Error in deriving port id, err=%d\n",
17653 __func__, ret);
17654
17655 ret = -EINVAL;
17656 goto done;
17657 }
17658
17659 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17660 &copp_idx);
17661 if (ret) {
17662 pr_err("%s: Could not get copp idx for port_id=%d\n",
17663 __func__, port_id);
17664
17665 ret = -EINVAL;
17666 goto done;
17667 }
17668
17669 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
17670 sizeof(struct sound_focus_param));
17671
17672 ret = adm_set_sound_focus(port_id, copp_idx, soundFocusData);
17673 if (ret) {
17674 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
17675 __func__, ret);
17676
17677 ret = -EINVAL;
17678 goto done;
17679 }
17680
17681done:
17682 return ret;
17683}
17684
17685static int msm_audio_sound_focus_get(struct snd_kcontrol *kcontrol,
17686 struct snd_ctl_elem_value *ucontrol)
17687{
17688 int ret = 0;
17689 struct sound_focus_param soundFocusData;
17690 int port_id, copp_idx;
17691
17692 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17693 "Sound Focus Audio Tx ", &port_id);
17694 if (ret) {
17695 pr_err("%s: Error in deriving port id, err=%d\n",
17696 __func__, ret);
17697
17698 ret = -EINVAL;
17699 goto done;
17700 }
17701
17702 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17703 &copp_idx);
17704 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070017705 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017706 __func__, port_id);
17707
17708 ret = -EINVAL;
17709 goto done;
17710 }
17711
17712 ret = adm_get_sound_focus(port_id, copp_idx, &soundFocusData);
17713 if (ret) {
17714 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
17715 __func__, ret);
17716
17717 ret = -EINVAL;
17718 goto done;
17719 }
17720
17721 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
17722 sizeof(struct sound_focus_param));
17723
17724done:
17725 return ret;
17726}
17727
17728static int msm_audio_source_tracking_get(struct snd_kcontrol *kcontrol,
17729 struct snd_ctl_elem_value *ucontrol)
17730{
17731 int ret = 0;
17732 struct source_tracking_param sourceTrackingData;
17733 int port_id, copp_idx;
17734
17735 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17736 "Source Tracking Audio Tx ", &port_id);
17737 if (ret) {
17738 pr_err("%s: Error in deriving port id, err=%d\n",
17739 __func__, ret);
17740
17741 ret = -EINVAL;
17742 goto done;
17743 }
17744
17745 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17746 &copp_idx);
17747 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070017748 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017749 __func__, port_id);
17750
17751 ret = -EINVAL;
17752 goto done;
17753 }
17754
17755 ret = adm_get_source_tracking(port_id, copp_idx, &sourceTrackingData);
17756 if (ret) {
17757 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
17758 __func__, ret);
17759
17760 ret = -EINVAL;
17761 goto done;
17762 }
17763
17764 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
17765 sizeof(struct source_tracking_param));
17766
17767done:
17768 return ret;
17769}
17770
17771static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
17772 {
17773 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17774 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17775 .name = "Sound Focus Voice Tx SLIMBUS_0",
17776 .info = msm_sound_focus_info,
17777 .get = msm_voice_sound_focus_get,
17778 .put = msm_voice_sound_focus_put,
17779 },
17780 {
17781 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17782 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17783 .name = "Source Tracking Voice Tx SLIMBUS_0",
17784 .info = msm_source_tracking_info,
17785 .get = msm_voice_source_tracking_get,
17786 },
17787 {
17788 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17789 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17790 .name = "Sound Focus Audio Tx SLIMBUS_0",
17791 .info = msm_sound_focus_info,
17792 .get = msm_audio_sound_focus_get,
17793 .put = msm_audio_sound_focus_put,
17794 },
17795 {
17796 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17797 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17798 .name = "Source Tracking Audio Tx SLIMBUS_0",
17799 .info = msm_source_tracking_info,
17800 .get = msm_audio_source_tracking_get,
17801 },
17802 {
17803 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17804 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17805 .name = "Sound Focus Voice Tx TERT_MI2S",
17806 .info = msm_sound_focus_info,
17807 .get = msm_voice_sound_focus_get,
17808 .put = msm_voice_sound_focus_put,
17809 },
17810 {
17811 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17812 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17813 .name = "Source Tracking Voice Tx TERT_MI2S",
17814 .info = msm_source_tracking_info,
17815 .get = msm_voice_source_tracking_get,
17816 },
17817 {
17818 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17819 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17820 .name = "Sound Focus Audio Tx TERT_MI2S",
17821 .info = msm_sound_focus_info,
17822 .get = msm_audio_sound_focus_get,
17823 .put = msm_audio_sound_focus_put,
17824 },
17825 {
17826 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17827 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17828 .name = "Source Tracking Audio Tx TERT_MI2S",
17829 .info = msm_source_tracking_info,
17830 .get = msm_audio_source_tracking_get,
17831 },
17832 {
17833 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17834 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17835 .name = "Sound Focus Voice Tx INT3_MI2S",
17836 .info = msm_sound_focus_info,
17837 .get = msm_voice_sound_focus_get,
17838 .put = msm_voice_sound_focus_put,
17839 },
17840 {
17841 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17842 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17843 .name = "Source Tracking Voice Tx INT3_MI2S",
17844 .info = msm_source_tracking_info,
17845 .get = msm_voice_source_tracking_get,
17846 },
17847 {
17848 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17849 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17850 .name = "Sound Focus Audio Tx INT3_MI2S",
17851 .info = msm_sound_focus_info,
17852 .get = msm_audio_sound_focus_get,
17853 .put = msm_audio_sound_focus_put,
17854 },
17855 {
17856 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17857 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17858 .name = "Source Tracking Audio Tx INT3_MI2S",
17859 .info = msm_source_tracking_info,
17860 .get = msm_audio_source_tracking_get,
17861 },
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053017862 {
17863 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17864 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17865 .name = "Sound Focus Voice Tx VA_CDC_DMA_TX_0",
17866 .info = msm_sound_focus_info,
17867 .get = msm_voice_sound_focus_get,
17868 .put = msm_voice_sound_focus_put,
17869 },
17870 {
17871 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17872 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17873 .name = "Source Tracking Voice Tx VA_CDC_DMA_TX_0",
17874 .info = msm_source_tracking_info,
17875 .get = msm_voice_source_tracking_get,
17876 },
17877 {
17878 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17879 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17880 .name = "Sound Focus Audio Tx VA_CDC_DMA_TX_0",
17881 .info = msm_sound_focus_info,
17882 .get = msm_audio_sound_focus_get,
17883 .put = msm_audio_sound_focus_put,
17884 },
17885 {
17886 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17887 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17888 .name = "Source Tracking Audio Tx VA_CDC_DMA_TX_0",
17889 .info = msm_source_tracking_info,
17890 .get = msm_audio_source_tracking_get,
17891 },
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053017892 {
17893 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17894 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17895 .name = "Sound Focus Voice Tx TX_CDC_DMA_TX_3",
17896 .info = msm_sound_focus_info,
17897 .get = msm_voice_sound_focus_get,
17898 .put = msm_voice_sound_focus_put,
17899 },
17900 {
17901 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17902 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17903 .name = "Source Tracking Voice Tx TX_CDC_DMA_TX_3",
17904 .info = msm_source_tracking_info,
17905 .get = msm_voice_source_tracking_get,
17906 },
17907 {
17908 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17909 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17910 .name = "Sound Focus Audio Tx TX_CDC_DMA_TX_3",
17911 .info = msm_sound_focus_info,
17912 .get = msm_audio_sound_focus_get,
17913 .put = msm_audio_sound_focus_put,
17914 },
17915 {
17916 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17917 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17918 .name = "Source Tracking Audio Tx TX_CDC_DMA_TX_3",
17919 .info = msm_source_tracking_info,
17920 .get = msm_audio_source_tracking_get,
17921 },
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017922 {
17923 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17924 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17925 .name = "Sound Focus Voice Tx QUIN_TDM_TX_0",
17926 .info = msm_sound_focus_info,
17927 .get = msm_voice_sound_focus_get,
17928 .put = msm_voice_sound_focus_put,
17929 },
17930 {
17931 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17932 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17933 .name = "Source Tracking Voice Tx QUIN_TDM_TX_0",
17934 .info = msm_source_tracking_info,
17935 .get = msm_voice_source_tracking_get,
17936 },
17937 {
17938 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17939 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17940 .name = "Sound Focus Audio Tx QUIN_TDM_TX_0",
17941 .info = msm_sound_focus_info,
17942 .get = msm_audio_sound_focus_get,
17943 .put = msm_audio_sound_focus_put,
17944 },
17945 {
17946 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17947 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17948 .name = "Source Tracking Audio Tx QUIN_TDM_TX_0",
17949 .info = msm_source_tracking_info,
17950 .get = msm_audio_source_tracking_get,
17951 },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017952};
17953
17954static int spkr_prot_put_vi_lch_port(struct snd_kcontrol *kcontrol,
17955 struct snd_ctl_elem_value *ucontrol)
17956{
17957 int ret = 0;
17958 int item;
17959 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
17960
17961 pr_debug("%s item is %d\n", __func__,
17962 ucontrol->value.enumerated.item[0]);
17963 mutex_lock(&routing_lock);
17964 item = ucontrol->value.enumerated.item[0];
17965 if (item < e->items) {
17966 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
17967 __func__, e->shift_l, e->values[item]);
17968 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
17969 e->values[item] < MSM_BACKEND_DAI_MAX)
17970 /* Enable feedback TX path */
17971 ret = afe_spk_prot_feed_back_cfg(
17972 msm_bedais[e->values[item]].port_id,
17973 msm_bedais[e->shift_l].port_id, 1, 0, 1);
17974 else {
17975 pr_debug("%s values are out of range item %d\n",
17976 __func__, e->values[item]);
17977 /* Disable feedback TX path */
17978 if (e->values[item] == MSM_BACKEND_DAI_MAX)
17979 ret = afe_spk_prot_feed_back_cfg(0, 0, 0, 0, 0);
17980 else
17981 ret = -EINVAL;
17982 }
17983 } else {
17984 pr_err("%s item value is out of range item\n", __func__);
17985 ret = -EINVAL;
17986 }
17987 mutex_unlock(&routing_lock);
17988 return ret;
17989}
17990
17991static int spkr_prot_put_vi_rch_port(struct snd_kcontrol *kcontrol,
17992 struct snd_ctl_elem_value *ucontrol)
17993{
17994 int ret = 0;
17995 int item;
17996 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
17997
17998 pr_debug("%s item is %d\n", __func__,
17999 ucontrol->value.enumerated.item[0]);
18000 mutex_lock(&routing_lock);
18001 item = ucontrol->value.enumerated.item[0];
18002 if (item < e->items) {
18003 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
18004 __func__, e->shift_l, e->values[item]);
18005 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
18006 e->values[item] < MSM_BACKEND_DAI_MAX)
18007 /* Enable feedback TX path */
18008 ret = afe_spk_prot_feed_back_cfg(
18009 msm_bedais[e->values[item]].port_id,
18010 msm_bedais[e->shift_l].port_id,
18011 1, 1, 1);
18012 else {
18013 pr_debug("%s values are out of range item %d\n",
18014 __func__, e->values[item]);
18015 /* Disable feedback TX path */
18016 if (e->values[item] == MSM_BACKEND_DAI_MAX)
18017 ret = afe_spk_prot_feed_back_cfg(0,
18018 0, 0, 0, 0);
18019 else
18020 ret = -EINVAL;
18021 }
18022 } else {
18023 pr_err("%s item value is out of range item\n", __func__);
18024 ret = -EINVAL;
18025 }
18026 mutex_unlock(&routing_lock);
18027 return ret;
18028}
18029
18030static int spkr_prot_get_vi_lch_port(struct snd_kcontrol *kcontrol,
18031 struct snd_ctl_elem_value *ucontrol)
18032{
18033 pr_debug("%s\n", __func__);
18034 return 0;
18035}
18036
18037static int spkr_prot_get_vi_rch_port(struct snd_kcontrol *kcontrol,
18038 struct snd_ctl_elem_value *ucontrol)
18039{
18040 pr_debug("%s\n", __func__);
18041 ucontrol->value.enumerated.item[0] = 0;
18042 return 0;
18043}
18044
18045static const char * const slim0_rx_vi_fb_tx_lch_mux_text[] = {
18046 "ZERO", "SLIM4_TX"
18047};
18048
18049static const char * const slim0_rx_vi_fb_tx_rch_mux_text[] = {
18050 "ZERO", "SLIM4_TX"
18051};
18052
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018053static const char * const wsa_rx_0_vi_fb_tx_lch_mux_text[] = {
18054 "ZERO", "WSA_CDC_DMA_TX_0"
18055};
18056
18057static const char * const wsa_rx_0_vi_fb_tx_rch_mux_text[] = {
18058 "ZERO", "WSA_CDC_DMA_TX_0"
18059};
18060
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018061static const char * const mi2s_rx_vi_fb_tx_mux_text[] = {
18062 "ZERO", "SENARY_TX"
18063};
18064
18065static const char * const int4_mi2s_rx_vi_fb_tx_mono_mux_text[] = {
18066 "ZERO", "INT5_MI2S_TX"
18067};
18068
18069static const char * const int4_mi2s_rx_vi_fb_tx_stereo_mux_text[] = {
18070 "ZERO", "INT5_MI2S_TX"
18071};
18072
18073static const int const slim0_rx_vi_fb_tx_lch_value[] = {
18074 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
18075};
18076
18077static const int const slim0_rx_vi_fb_tx_rch_value[] = {
18078 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
18079};
18080
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018081static const int const wsa_rx_0_vi_fb_tx_lch_value[] = {
18082 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
18083};
18084
18085static const int const wsa_rx_0_vi_fb_tx_rch_value[] = {
18086 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
18087};
18088
18089
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018090static const int const mi2s_rx_vi_fb_tx_value[] = {
18091 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SENARY_MI2S_TX
18092};
18093
18094static const int const int4_mi2s_rx_vi_fb_tx_mono_ch_value[] = {
18095 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
18096};
18097
18098static const int const int4_mi2s_rx_vi_fb_tx_stereo_ch_value[] = {
18099 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
18100};
18101
18102static const struct soc_enum slim0_rx_vi_fb_lch_mux_enum =
18103 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
18104 ARRAY_SIZE(slim0_rx_vi_fb_tx_lch_mux_text),
18105 slim0_rx_vi_fb_tx_lch_mux_text, slim0_rx_vi_fb_tx_lch_value);
18106
18107static const struct soc_enum slim0_rx_vi_fb_rch_mux_enum =
18108 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
18109 ARRAY_SIZE(slim0_rx_vi_fb_tx_rch_mux_text),
18110 slim0_rx_vi_fb_tx_rch_mux_text, slim0_rx_vi_fb_tx_rch_value);
18111
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018112static const struct soc_enum wsa_rx_0_vi_fb_lch_mux_enum =
18113 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
18114 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_lch_mux_text),
18115 wsa_rx_0_vi_fb_tx_lch_mux_text, wsa_rx_0_vi_fb_tx_lch_value);
18116
18117static const struct soc_enum wsa_rx_0_vi_fb_rch_mux_enum =
18118 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
18119 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_rch_mux_text),
18120 wsa_rx_0_vi_fb_tx_rch_mux_text, wsa_rx_0_vi_fb_tx_rch_value);
18121
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018122static const struct soc_enum mi2s_rx_vi_fb_mux_enum =
18123 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_PRI_MI2S_RX, 0, 0,
18124 ARRAY_SIZE(mi2s_rx_vi_fb_tx_mux_text),
18125 mi2s_rx_vi_fb_tx_mux_text, mi2s_rx_vi_fb_tx_value);
18126
18127static const struct soc_enum int4_mi2s_rx_vi_fb_mono_ch_mux_enum =
18128 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
18129 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_mono_mux_text),
18130 int4_mi2s_rx_vi_fb_tx_mono_mux_text,
18131 int4_mi2s_rx_vi_fb_tx_mono_ch_value);
18132
18133static const struct soc_enum int4_mi2s_rx_vi_fb_stereo_ch_mux_enum =
18134 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
18135 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_stereo_mux_text),
18136 int4_mi2s_rx_vi_fb_tx_stereo_mux_text,
18137 int4_mi2s_rx_vi_fb_tx_stereo_ch_value);
18138
18139static const struct snd_kcontrol_new slim0_rx_vi_fb_lch_mux =
18140 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_LCH_MUX",
18141 slim0_rx_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
18142 spkr_prot_put_vi_lch_port);
18143
18144static const struct snd_kcontrol_new slim0_rx_vi_fb_rch_mux =
18145 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_RCH_MUX",
18146 slim0_rx_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
18147 spkr_prot_put_vi_rch_port);
18148
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018149static const struct snd_kcontrol_new wsa_rx_0_vi_fb_lch_mux =
18150 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_LCH_MUX",
18151 wsa_rx_0_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
18152 spkr_prot_put_vi_lch_port);
18153
18154static const struct snd_kcontrol_new wsa_rx_0_vi_fb_rch_mux =
18155 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_RCH_MUX",
18156 wsa_rx_0_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
18157 spkr_prot_put_vi_rch_port);
18158
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018159static const struct snd_kcontrol_new mi2s_rx_vi_fb_mux =
18160 SOC_DAPM_ENUM_EXT("PRI_MI2S_RX_VI_FB_MUX",
18161 mi2s_rx_vi_fb_mux_enum, spkr_prot_get_vi_lch_port,
18162 spkr_prot_put_vi_lch_port);
18163
18164static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_mono_ch_mux =
18165 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_MONO_CH_MUX",
18166 int4_mi2s_rx_vi_fb_mono_ch_mux_enum, spkr_prot_get_vi_lch_port,
18167 spkr_prot_put_vi_lch_port);
18168
18169static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_stereo_ch_mux =
18170 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX",
18171 int4_mi2s_rx_vi_fb_stereo_ch_mux_enum, spkr_prot_get_vi_rch_port,
18172 spkr_prot_put_vi_rch_port);
18173
18174static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
18175 /* Frontend AIF */
18176 /* Widget name equals to Front-End DAI name<Need confirmation>,
18177 * Stream name must contains substring of front-end dai name
18178 */
18179 SND_SOC_DAPM_AIF_IN("MM_DL1", "MultiMedia1 Playback", 0, 0, 0, 0),
18180 SND_SOC_DAPM_AIF_IN("MM_DL2", "MultiMedia2 Playback", 0, 0, 0, 0),
18181 SND_SOC_DAPM_AIF_IN("MM_DL3", "MultiMedia3 Playback", 0, 0, 0, 0),
18182 SND_SOC_DAPM_AIF_IN("MM_DL4", "MultiMedia4 Playback", 0, 0, 0, 0),
18183 SND_SOC_DAPM_AIF_IN("MM_DL5", "MultiMedia5 Playback", 0, 0, 0, 0),
18184 SND_SOC_DAPM_AIF_IN("MM_DL6", "MultiMedia6 Playback", 0, 0, 0, 0),
18185 SND_SOC_DAPM_AIF_IN("MM_DL7", "MultiMedia7 Playback", 0, 0, 0, 0),
18186 SND_SOC_DAPM_AIF_IN("MM_DL8", "MultiMedia8 Playback", 0, 0, 0, 0),
18187 SND_SOC_DAPM_AIF_IN("MM_DL9", "MultiMedia9 Playback", 0, 0, 0, 0),
18188 SND_SOC_DAPM_AIF_IN("MM_DL10", "MultiMedia10 Playback", 0, 0, 0, 0),
18189 SND_SOC_DAPM_AIF_IN("MM_DL11", "MultiMedia11 Playback", 0, 0, 0, 0),
18190 SND_SOC_DAPM_AIF_IN("MM_DL12", "MultiMedia12 Playback", 0, 0, 0, 0),
18191 SND_SOC_DAPM_AIF_IN("MM_DL13", "MultiMedia13 Playback", 0, 0, 0, 0),
18192 SND_SOC_DAPM_AIF_IN("MM_DL14", "MultiMedia14 Playback", 0, 0, 0, 0),
18193 SND_SOC_DAPM_AIF_IN("MM_DL15", "MultiMedia15 Playback", 0, 0, 0, 0),
18194 SND_SOC_DAPM_AIF_IN("MM_DL16", "MultiMedia16 Playback", 0, 0, 0, 0),
18195 SND_SOC_DAPM_AIF_IN("MM_DL20", "MultiMedia20 Playback", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070018196 SND_SOC_DAPM_AIF_IN("MM_DL21", "MultiMedia21 Playback", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053018197 SND_SOC_DAPM_AIF_IN("MM_DL26", "MultiMedia26 Playback", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018198 SND_SOC_DAPM_AIF_IN("VOIP_DL", "VoIP Playback", 0, 0, 0, 0),
18199 SND_SOC_DAPM_AIF_OUT("MM_UL1", "MultiMedia1 Capture", 0, 0, 0, 0),
18200 SND_SOC_DAPM_AIF_OUT("MM_UL2", "MultiMedia2 Capture", 0, 0, 0, 0),
18201 SND_SOC_DAPM_AIF_OUT("MM_UL3", "MultiMedia3 Capture", 0, 0, 0, 0),
18202 SND_SOC_DAPM_AIF_OUT("MM_UL4", "MultiMedia4 Capture", 0, 0, 0, 0),
18203 SND_SOC_DAPM_AIF_OUT("MM_UL5", "MultiMedia5 Capture", 0, 0, 0, 0),
18204 SND_SOC_DAPM_AIF_OUT("MM_UL6", "MultiMedia6 Capture", 0, 0, 0, 0),
18205 SND_SOC_DAPM_AIF_OUT("MM_UL8", "MultiMedia8 Capture", 0, 0, 0, 0),
18206 SND_SOC_DAPM_AIF_OUT("MM_UL9", "MultiMedia9 Capture", 0, 0, 0, 0),
Laxminath Kasam38070be2017-08-17 18:21:59 +053018207 SND_SOC_DAPM_AIF_OUT("MM_UL10", "MultiMedia10 Capture", 0, 0, 0, 0),
Asish Bhattacharya34504582017-08-08 12:55:01 +053018208 SND_SOC_DAPM_AIF_OUT("MM_UL16", "MultiMedia16 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018209 SND_SOC_DAPM_AIF_OUT("MM_UL17", "MultiMedia17 Capture", 0, 0, 0, 0),
18210 SND_SOC_DAPM_AIF_OUT("MM_UL18", "MultiMedia18 Capture", 0, 0, 0, 0),
18211 SND_SOC_DAPM_AIF_OUT("MM_UL19", "MultiMedia19 Capture", 0, 0, 0, 0),
18212 SND_SOC_DAPM_AIF_OUT("MM_UL20", "MultiMedia20 Capture", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070018213 SND_SOC_DAPM_AIF_OUT("MM_UL21", "MultiMedia21 Capture", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053018214 SND_SOC_DAPM_AIF_OUT("MM_UL27", "MultiMedia27 Capture", 0, 0, 0, 0),
Meng Wang5c4bab72018-04-25 10:40:01 +080018215 SND_SOC_DAPM_AIF_OUT("MM_UL28", "MultiMedia28 Capture", 0, 0, 0, 0),
18216 SND_SOC_DAPM_AIF_OUT("MM_UL29", "MultiMedia29 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018217 SND_SOC_DAPM_AIF_OUT("VOIP_UL", "VoIP Capture", 0, 0, 0, 0),
18218 SND_SOC_DAPM_AIF_IN("VOICEMMODE1_DL",
18219 "VoiceMMode1 Playback", 0, 0, 0, 0),
18220 SND_SOC_DAPM_AIF_OUT("VOICEMMODE1_UL",
18221 "VoiceMMode1 Capture", 0, 0, 0, 0),
18222 SND_SOC_DAPM_AIF_IN("VOICEMMODE2_DL",
18223 "VoiceMMode2 Playback", 0, 0, 0, 0),
18224 SND_SOC_DAPM_AIF_OUT("VOICEMMODE2_UL",
18225 "VoiceMMode2 Capture", 0, 0, 0, 0),
18226 SND_SOC_DAPM_AIF_IN("SLIM0_DL_HL", "SLIMBUS0_HOSTLESS Playback",
18227 0, 0, 0, 0),
18228 SND_SOC_DAPM_AIF_OUT("SLIM0_UL_HL", "SLIMBUS0_HOSTLESS Capture",
18229 0, 0, 0, 0),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053018230 SND_SOC_DAPM_AIF_IN("CDC_DMA_DL_HL", "CDC_DMA_HOSTLESS Playback",
18231 0, 0, 0, 0),
18232 SND_SOC_DAPM_AIF_OUT("CDC_DMA_UL_HL", "CDC_DMA_HOSTLESS Capture",
18233 0, 0, 0, 0),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053018234 SND_SOC_DAPM_AIF_OUT("TX3_CDC_DMA_UL_HL",
18235 "TX3_CDC_DMA_HOSTLESS Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018236 SND_SOC_DAPM_AIF_OUT("CPE_LSM_UL_HL", "CPE LSM capture",
18237 0, 0, 0, 0),
18238 SND_SOC_DAPM_AIF_IN("SLIM1_DL_HL", "SLIMBUS1_HOSTLESS Playback",
18239 0, 0, 0, 0),
18240 SND_SOC_DAPM_AIF_OUT("SLIM1_UL_HL", "SLIMBUS1_HOSTLESS Capture",
18241 0, 0, 0, 0),
18242 SND_SOC_DAPM_AIF_IN("SLIM3_DL_HL", "SLIMBUS3_HOSTLESS Playback",
18243 0, 0, 0, 0),
18244 SND_SOC_DAPM_AIF_OUT("SLIM3_UL_HL", "SLIMBUS3_HOSTLESS Capture",
18245 0, 0, 0, 0),
18246 SND_SOC_DAPM_AIF_IN("SLIM4_DL_HL", "SLIMBUS4_HOSTLESS Playback",
18247 0, 0, 0, 0),
18248 SND_SOC_DAPM_AIF_OUT("SLIM4_UL_HL", "SLIMBUS4_HOSTLESS Capture",
18249 0, 0, 0, 0),
18250 SND_SOC_DAPM_AIF_IN("SLIM6_DL_HL", "SLIMBUS6_HOSTLESS Playback",
18251 0, 0, 0, 0),
18252 SND_SOC_DAPM_AIF_OUT("SLIM6_UL_HL", "SLIMBUS6_HOSTLESS Capture",
18253 0, 0, 0, 0),
18254 SND_SOC_DAPM_AIF_IN("SLIM7_DL_HL", "SLIMBUS7_HOSTLESS Playback",
18255 0, 0, 0, 0),
18256 SND_SOC_DAPM_AIF_OUT("SLIM7_UL_HL", "SLIMBUS7_HOSTLESS Capture",
18257 0, 0, 0, 0),
18258 SND_SOC_DAPM_AIF_IN("SLIM8_DL_HL", "SLIMBUS8_HOSTLESS Playback",
18259 0, 0, 0, 0),
18260 SND_SOC_DAPM_AIF_OUT("SLIM8_UL_HL", "SLIMBUS8_HOSTLESS Capture",
18261 0, 0, 0, 0),
18262 SND_SOC_DAPM_AIF_IN("INTFM_DL_HL", "INT_FM_HOSTLESS Playback",
18263 0, 0, 0, 0),
18264 SND_SOC_DAPM_AIF_OUT("INTFM_UL_HL", "INT_FM_HOSTLESS Capture",
18265 0, 0, 0, 0),
18266 SND_SOC_DAPM_AIF_IN("INTHFP_DL_HL", "INT_HFP_BT_HOSTLESS Playback",
18267 0, 0, 0, 0),
18268 SND_SOC_DAPM_AIF_OUT("INTHFP_UL_HL", "INT_HFP_BT_HOSTLESS Capture",
18269 0, 0, 0, 0),
18270 SND_SOC_DAPM_AIF_IN("USBAUDIO_DL_HL", "USBAUDIO_HOSTLESS Playback",
18271 0, 0, 0, 0),
18272 SND_SOC_DAPM_AIF_OUT("USBAUDIO_UL_HL", "USBAUDIO_HOSTLESS Capture",
18273 0, 0, 0, 0),
18274 SND_SOC_DAPM_AIF_IN("HDMI_DL_HL", "HDMI_HOSTLESS Playback", 0, 0, 0, 0),
18275 SND_SOC_DAPM_AIF_IN("SEC_I2S_DL_HL", "SEC_I2S_RX_HOSTLESS Playback",
18276 0, 0, 0, 0),
18277 SND_SOC_DAPM_AIF_IN("INT0_MI2S_DL_HL",
18278 "INT0 MI2S_RX Hostless Playback",
18279 0, 0, 0, 0),
18280 SND_SOC_DAPM_AIF_IN("INT4_MI2S_DL_HL",
18281 "INT4 MI2S_RX Hostless Playback",
18282 0, 0, 0, 0),
18283 SND_SOC_DAPM_AIF_IN("PRI_MI2S_DL_HL",
18284 "Primary MI2S_RX Hostless Playback",
18285 0, 0, 0, 0),
18286 SND_SOC_DAPM_AIF_IN("SEC_MI2S_DL_HL",
18287 "Secondary MI2S_RX Hostless Playback",
18288 0, 0, 0, 0),
18289 SND_SOC_DAPM_AIF_IN("TERT_MI2S_DL_HL",
18290 "Tertiary MI2S_RX Hostless Playback",
18291 0, 0, 0, 0),
18292 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_DL_HL",
18293 "Quaternary MI2S_RX Hostless Playback",
18294 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018295 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_DL_HL",
18296 "Quinary MI2S_RX Hostless Playback",
18297 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018298
18299 SND_SOC_DAPM_AIF_IN("AUXPCM_DL_HL", "AUXPCM_HOSTLESS Playback",
18300 0, 0, 0, 0),
18301 SND_SOC_DAPM_AIF_OUT("AUXPCM_UL_HL", "AUXPCM_HOSTLESS Capture",
18302 0, 0, 0, 0),
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080018303 SND_SOC_DAPM_AIF_IN("SEC_AUXPCM_DL_HL", "SEC_AUXPCM_HOSTLESS Playback",
18304 0, 0, 0, 0),
18305 SND_SOC_DAPM_AIF_OUT("SEC_AUXPCM_UL_HL", "SEC_AUXPCM_HOSTLESS Capture",
18306 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018307 SND_SOC_DAPM_AIF_OUT("MI2S_UL_HL", "MI2S_TX_HOSTLESS Capture",
18308 0, 0, 0, 0),
18309 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_UL_HL",
18310 "INT3 MI2S_TX Hostless Capture",
18311 0, 0, 0, 0),
18312 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_UL_HL",
18313 "Tertiary MI2S_TX Hostless Capture",
18314 0, 0, 0, 0),
18315 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_UL_HL",
18316 "Secondary MI2S_TX Hostless Capture",
18317 0, 0, 0, 0),
18318 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_UL_HL",
18319 "Primary MI2S_TX Hostless Capture",
18320 0, 0, 0, 0),
18321 SND_SOC_DAPM_AIF_OUT("MI2S_DL_HL", "MI2S_RX_HOSTLESS Playback",
18322 0, 0, 0, 0),
18323 SND_SOC_DAPM_AIF_IN("DTMF_DL_HL", "DTMF_RX_HOSTLESS Playback",
18324 0, 0, 0, 0),
18325 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_UL_HL",
18326 "Quaternary MI2S_TX Hostless Capture",
18327 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018328 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_UL_HL",
18329 "Quinary MI2S_TX Hostless Capture",
18330 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018331
18332 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_0_DL_HL",
18333 "Primary TDM0 Hostless Playback",
18334 0, 0, 0, 0),
18335 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_0_UL_HL",
18336 "Primary TDM0 Hostless Capture",
18337 0, 0, 0, 0),
18338 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_1_DL_HL",
18339 "Primary TDM1 Hostless Playback",
18340 0, 0, 0, 0),
18341 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_1_UL_HL",
18342 "Primary TDM1 Hostless Capture",
18343 0, 0, 0, 0),
18344 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_2_DL_HL",
18345 "Primary TDM2 Hostless Playback",
18346 0, 0, 0, 0),
18347 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_2_UL_HL",
18348 "Primary TDM2 Hostless Capture",
18349 0, 0, 0, 0),
18350 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_3_DL_HL",
18351 "Primary TDM3 Hostless Playback",
18352 0, 0, 0, 0),
18353 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_3_UL_HL",
18354 "Primary TDM3 Hostless Capture",
18355 0, 0, 0, 0),
18356 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_4_DL_HL",
18357 "Primary TDM4 Hostless Playback",
18358 0, 0, 0, 0),
18359 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_4_UL_HL",
18360 "Primary TDM4 Hostless Capture",
18361 0, 0, 0, 0),
18362 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_5_DL_HL",
18363 "Primary TDM5 Hostless Playback",
18364 0, 0, 0, 0),
18365 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_5_UL_HL",
18366 "Primary TDM5 Hostless Capture",
18367 0, 0, 0, 0),
18368 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_6_DL_HL",
18369 "Primary TDM6 Hostless Playback",
18370 0, 0, 0, 0),
18371 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_6_UL_HL",
18372 "Primary TDM6 Hostless Capture",
18373 0, 0, 0, 0),
18374 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_7_DL_HL",
18375 "Primary TDM7 Hostless Playback",
18376 0, 0, 0, 0),
18377 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_7_UL_HL",
18378 "Primary TDM7 Hostless Capture",
18379 0, 0, 0, 0),
18380 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_0_DL_HL",
18381 "Secondary TDM0 Hostless Playback",
18382 0, 0, 0, 0),
18383 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_0_UL_HL",
18384 "Secondary TDM0 Hostless Capture",
18385 0, 0, 0, 0),
18386 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_1_DL_HL",
18387 "Secondary TDM1 Hostless Playback",
18388 0, 0, 0, 0),
18389 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_1_UL_HL",
18390 "Secondary TDM1 Hostless Capture",
18391 0, 0, 0, 0),
18392 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_2_DL_HL",
18393 "Secondary TDM2 Hostless Playback",
18394 0, 0, 0, 0),
18395 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_2_UL_HL",
18396 "Secondary TDM2 Hostless Capture",
18397 0, 0, 0, 0),
18398 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_3_DL_HL",
18399 "Secondary TDM3 Hostless Playback",
18400 0, 0, 0, 0),
18401 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_3_UL_HL",
18402 "Secondary TDM3 Hostless Capture",
18403 0, 0, 0, 0),
18404 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_4_DL_HL",
18405 "Secondary TDM4 Hostless Playback",
18406 0, 0, 0, 0),
18407 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_4_UL_HL",
18408 "Secondary TDM4 Hostless Capture",
18409 0, 0, 0, 0),
18410 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_5_DL_HL",
18411 "Secondary TDM5 Hostless Playback",
18412 0, 0, 0, 0),
18413 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_5_UL_HL",
18414 "Secondary TDM5 Hostless Capture",
18415 0, 0, 0, 0),
18416 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_6_DL_HL",
18417 "Secondary TDM6 Hostless Playback",
18418 0, 0, 0, 0),
18419 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_6_UL_HL",
18420 "Secondary TDM6 Hostless Capture",
18421 0, 0, 0, 0),
18422 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_7_DL_HL",
18423 "Secondary TDM7 Hostless Playback",
18424 0, 0, 0, 0),
18425 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_7_UL_HL",
18426 "Secondary TDM7 Hostless Capture",
18427 0, 0, 0, 0),
18428 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_0_DL_HL",
18429 "Tertiary TDM0 Hostless Playback",
18430 0, 0, 0, 0),
18431 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_0_UL_HL",
18432 "Tertiary TDM0 Hostless Capture",
18433 0, 0, 0, 0),
18434 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_1_DL_HL",
18435 "Tertiary TDM1 Hostless Playback",
18436 0, 0, 0, 0),
18437 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_1_UL_HL",
18438 "Tertiary TDM1 Hostless Capture",
18439 0, 0, 0, 0),
18440 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_2_DL_HL",
18441 "Tertiary TDM2 Hostless Playback",
18442 0, 0, 0, 0),
18443 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_2_UL_HL",
18444 "Tertiary TDM2 Hostless Capture",
18445 0, 0, 0, 0),
18446 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_3_DL_HL",
18447 "Tertiary TDM3 Hostless Playback",
18448 0, 0, 0, 0),
18449 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_3_UL_HL",
18450 "Tertiary TDM3 Hostless Capture",
18451 0, 0, 0, 0),
18452 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_4_DL_HL",
18453 "Tertiary TDM4 Hostless Playback",
18454 0, 0, 0, 0),
18455 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_4_UL_HL",
18456 "Tertiary TDM4 Hostless Capture",
18457 0, 0, 0, 0),
18458 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_5_DL_HL",
18459 "Tertiary TDM5 Hostless Playback",
18460 0, 0, 0, 0),
18461 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_5_UL_HL",
18462 "Tertiary TDM5 Hostless Capture",
18463 0, 0, 0, 0),
18464 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_6_DL_HL",
18465 "Tertiary TDM6 Hostless Playback",
18466 0, 0, 0, 0),
18467 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_6_UL_HL",
18468 "Tertiary TDM6 Hostless Capture",
18469 0, 0, 0, 0),
18470 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_7_DL_HL",
18471 "Tertiary TDM7 Hostless Playback",
18472 0, 0, 0, 0),
18473 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_7_UL_HL",
18474 "Tertiary TDM7 Hostless Capture",
18475 0, 0, 0, 0),
18476 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_0_DL_HL",
18477 "Quaternary TDM0 Hostless Playback",
18478 0, 0, 0, 0),
18479 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_0_UL_HL",
18480 "Quaternary TDM0 Hostless Capture",
18481 0, 0, 0, 0),
18482 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_1_DL_HL",
18483 "Quaternary TDM1 Hostless Playback",
18484 0, 0, 0, 0),
18485 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_1_UL_HL",
18486 "Quaternary TDM1 Hostless Capture",
18487 0, 0, 0, 0),
18488 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_2_DL_HL",
18489 "Quaternary TDM2 Hostless Playback",
18490 0, 0, 0, 0),
18491 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_2_UL_HL",
18492 "Quaternary TDM2 Hostless Capture",
18493 0, 0, 0, 0),
18494 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_3_DL_HL",
18495 "Quaternary TDM3 Hostless Playback",
18496 0, 0, 0, 0),
18497 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_3_UL_HL",
18498 "Quaternary TDM3 Hostless Capture",
18499 0, 0, 0, 0),
18500 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_4_DL_HL",
18501 "Quaternary TDM4 Hostless Playback",
18502 0, 0, 0, 0),
18503 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_4_UL_HL",
18504 "Quaternary TDM4 Hostless Capture",
18505 0, 0, 0, 0),
18506 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_5_DL_HL",
18507 "Quaternary TDM5 Hostless Playback",
18508 0, 0, 0, 0),
18509 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_5_UL_HL",
18510 "Quaternary TDM5 Hostless Capture",
18511 0, 0, 0, 0),
18512 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_6_DL_HL",
18513 "Quaternary TDM6 Hostless Playback",
18514 0, 0, 0, 0),
18515 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_6_UL_HL",
18516 "Quaternary TDM6 Hostless Capture",
18517 0, 0, 0, 0),
18518 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_7_DL_HL",
18519 "Quaternary TDM7 Hostless Playback",
18520 0, 0, 0, 0),
18521 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_7_UL_HL",
18522 "Quaternary TDM7 Hostless Capture",
18523 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018524 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_0_DL_HL",
18525 "Quinary TDM0 Hostless Playback",
18526 0, 0, 0, 0),
18527 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_0_UL_HL",
18528 "Quinary TDM0 Hostless Capture",
18529 0, 0, 0, 0),
18530 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_1_DL_HL",
18531 "Quinary TDM1 Hostless Playback",
18532 0, 0, 0, 0),
18533 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_1_UL_HL",
18534 "Quinary TDM1 Hostless Capture",
18535 0, 0, 0, 0),
18536 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_2_DL_HL",
18537 "Quinary TDM2 Hostless Playback",
18538 0, 0, 0, 0),
18539 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_2_UL_HL",
18540 "Quinary TDM2 Hostless Capture",
18541 0, 0, 0, 0),
18542 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_3_DL_HL",
18543 "Quinary TDM3 Hostless Playback",
18544 0, 0, 0, 0),
18545 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_3_UL_HL",
18546 "Quinary TDM3 Hostless Capture",
18547 0, 0, 0, 0),
18548 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_4_DL_HL",
18549 "Quinary TDM4 Hostless Playback",
18550 0, 0, 0, 0),
18551 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_4_UL_HL",
18552 "Quinary TDM4 Hostless Capture",
18553 0, 0, 0, 0),
18554 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_5_DL_HL",
18555 "Quinary TDM5 Hostless Playback",
18556 0, 0, 0, 0),
18557 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_5_UL_HL",
18558 "Quinary TDM5 Hostless Capture",
18559 0, 0, 0, 0),
18560 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_6_DL_HL",
18561 "Quinary TDM6 Hostless Playback",
18562 0, 0, 0, 0),
18563 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_6_UL_HL",
18564 "Quinary TDM6 Hostless Capture",
18565 0, 0, 0, 0),
18566 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_7_DL_HL",
18567 "Quinary TDM7 Hostless Playback",
18568 0, 0, 0, 0),
18569 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_7_UL_HL",
18570 "Quinary TDM7 Hostless Capture",
18571 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018572
18573 /* LSM */
18574 SND_SOC_DAPM_AIF_OUT("LSM1_UL_HL", "Listen 1 Audio Service Capture",
18575 0, 0, 0, 0),
18576 SND_SOC_DAPM_AIF_OUT("LSM2_UL_HL", "Listen 2 Audio Service Capture",
18577 0, 0, 0, 0),
18578 SND_SOC_DAPM_AIF_OUT("LSM3_UL_HL", "Listen 3 Audio Service Capture",
18579 0, 0, 0, 0),
18580 SND_SOC_DAPM_AIF_OUT("LSM4_UL_HL", "Listen 4 Audio Service Capture",
18581 0, 0, 0, 0),
18582 SND_SOC_DAPM_AIF_OUT("LSM5_UL_HL", "Listen 5 Audio Service Capture",
18583 0, 0, 0, 0),
18584 SND_SOC_DAPM_AIF_OUT("LSM6_UL_HL", "Listen 6 Audio Service Capture",
18585 0, 0, 0, 0),
18586 SND_SOC_DAPM_AIF_OUT("LSM7_UL_HL", "Listen 7 Audio Service Capture",
18587 0, 0, 0, 0),
18588 SND_SOC_DAPM_AIF_OUT("LSM8_UL_HL", "Listen 8 Audio Service Capture",
18589 0, 0, 0, 0),
18590 SND_SOC_DAPM_AIF_IN("QCHAT_DL", "QCHAT Playback", 0, 0, 0, 0),
18591 SND_SOC_DAPM_AIF_OUT("QCHAT_UL", "QCHAT Capture", 0, 0, 0, 0),
18592 /* Backend AIF */
18593 /* Stream name equals to backend dai link stream name */
18594 SND_SOC_DAPM_AIF_OUT("PRI_I2S_RX", "Primary I2S Playback", 0, 0, 0, 0),
18595 SND_SOC_DAPM_AIF_OUT("SEC_I2S_RX", "Secondary I2S Playback",
18596 0, 0, 0, 0),
Ralf Herzc8701f72018-06-20 11:37:35 +020018597 SND_SOC_DAPM_AIF_OUT("PRI_SPDIF_RX", "Primary SPDIF Playback",
18598 0, 0, 0, 0),
18599 SND_SOC_DAPM_AIF_IN("PRI_SPDIF_TX", "Primary SPDIF Capture",
18600 0, 0, 0, 0),
18601 SND_SOC_DAPM_AIF_OUT("SEC_SPDIF_RX", "Secondary SPDIF Playback",
18602 0, 0, 0, 0),
18603 SND_SOC_DAPM_AIF_IN("SEC_SPDIF_TX", "Secondary SPDIF Capture",
18604 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018605 SND_SOC_DAPM_AIF_OUT("SLIMBUS_0_RX", "Slimbus Playback", 0, 0, 0, 0),
18606 SND_SOC_DAPM_AIF_OUT("SLIMBUS_2_RX", "Slimbus2 Playback", 0, 0, 0, 0),
18607 SND_SOC_DAPM_AIF_OUT("SLIMBUS_5_RX", "Slimbus5 Playback", 0, 0, 0, 0),
18608 SND_SOC_DAPM_AIF_OUT("HDMI", "HDMI Playback", 0, 0, 0, 0),
18609 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT", "Display Port Playback",
18610 0, 0, 0, 0),
Karthikeyan Mani57550082018-05-03 18:43:58 -070018611 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT1", "Display Port1 Playback",
18612 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018613 SND_SOC_DAPM_AIF_OUT("MI2S_RX", "MI2S Playback", 0, 0, 0, 0),
18614 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_RX", "Quaternary MI2S Playback",
18615 0, 0, 0, 0),
18616 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_RX", "Tertiary MI2S Playback",
18617 0, 0, 0, 0),
18618 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX", "Secondary MI2S Playback",
18619 0, 0, 0, 0),
18620 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX_SD1",
18621 "Secondary MI2S Playback SD1",
18622 0, 0, 0, 0),
18623 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_RX", "Primary MI2S Playback",
18624 0, 0, 0, 0),
18625 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_RX", "INT0 MI2S Playback",
18626 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053018627 SND_SOC_DAPM_AIF_OUT("INT2_MI2S_RX", "INT2 MI2S Playback",
18628 0, 0, 0, 0),
18629 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_RX", "INT3 MI2S Playback",
18630 0, 0, 0, 0),
18631 SND_SOC_DAPM_AIF_OUT("INT5_MI2S_RX", "INT5 MI2S Playback",
18632 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018633 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_RX", "INT4 MI2S Playback",
18634 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053018635 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_TX", "INT4 MI2S Capture",
18636 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018637 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_RX", "Quinary MI2S Playback",
18638 0, 0, 0, 0),
18639 SND_SOC_DAPM_AIF_IN("PRI_I2S_TX", "Primary I2S Capture", 0, 0, 0, 0),
18640 SND_SOC_DAPM_AIF_IN("MI2S_TX", "MI2S Capture", 0, 0, 0, 0),
18641 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_TX", "Quaternary MI2S Capture",
18642 0, 0, 0, 0),
18643 SND_SOC_DAPM_AIF_IN("PRI_MI2S_TX", "Primary MI2S Capture",
18644 0, 0, 0, 0),
18645 SND_SOC_DAPM_AIF_IN("TERT_MI2S_TX", "Tertiary MI2S Capture",
18646 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053018647 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_TX", "INT0 MI2S Capture",
18648 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018649 SND_SOC_DAPM_AIF_IN("INT2_MI2S_TX", "INT2 MI2S Capture",
18650 0, 0, 0, 0),
18651 SND_SOC_DAPM_AIF_IN("INT3_MI2S_TX", "INT3 MI2S Capture",
18652 0, 0, 0, 0),
18653 SND_SOC_DAPM_AIF_IN("SEC_MI2S_TX", "Secondary MI2S Capture",
18654 0, 0, 0, 0),
18655 SND_SOC_DAPM_AIF_IN("SLIMBUS_0_TX", "Slimbus Capture", 0, 0, 0, 0),
18656 SND_SOC_DAPM_AIF_IN("SLIMBUS_2_TX", "Slimbus2 Capture", 0, 0, 0, 0),
18657 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_TX", "Quinary MI2S Capture",
18658 0, 0, 0, 0),
18659 SND_SOC_DAPM_AIF_IN("SENARY_MI2S_TX", "Senary MI2S Capture",
18660 0, 0, 0, 0),
18661 SND_SOC_DAPM_AIF_OUT("INT_BT_SCO_RX", "Internal BT-SCO Playback",
18662 0, 0, 0, 0),
18663 SND_SOC_DAPM_AIF_IN("INT_BT_SCO_TX", "Internal BT-SCO Capture",
18664 0, 0, 0, 0),
18665 SND_SOC_DAPM_AIF_OUT("INT_BT_A2DP_RX", "Internal BT-A2DP Playback",
18666 0, 0, 0, 0),
18667 SND_SOC_DAPM_AIF_OUT("INT_FM_RX", "Internal FM Playback",
18668 0, 0, 0, 0),
18669 SND_SOC_DAPM_AIF_IN("INT_FM_TX", "Internal FM Capture",
18670 0, 0, 0, 0),
18671 SND_SOC_DAPM_AIF_OUT("PCM_RX", "AFE Playback",
18672 0, 0, 0, 0),
18673 SND_SOC_DAPM_AIF_IN("PCM_TX", "AFE Capture",
18674 0, 0, 0, 0),
18675 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_0", "Primary TDM0 Playback",
18676 0, 0, 0, 0),
18677 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_0", "Primary TDM0 Capture",
18678 0, 0, 0, 0),
18679 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_1", "Primary TDM1 Playback",
18680 0, 0, 0, 0),
18681 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_1", "Primary TDM1 Capture",
18682 0, 0, 0, 0),
18683 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_2", "Primary TDM2 Playback",
18684 0, 0, 0, 0),
18685 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_2", "Primary TDM2 Capture",
18686 0, 0, 0, 0),
18687 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_3", "Primary TDM3 Playback",
18688 0, 0, 0, 0),
18689 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_3", "Primary TDM3 Capture",
18690 0, 0, 0, 0),
18691 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_4", "Primary TDM4 Playback",
18692 0, 0, 0, 0),
18693 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_4", "Primary TDM4 Capture",
18694 0, 0, 0, 0),
18695 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_5", "Primary TDM5 Playback",
18696 0, 0, 0, 0),
18697 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_5", "Primary TDM5 Capture",
18698 0, 0, 0, 0),
18699 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_6", "Primary TDM6 Playback",
18700 0, 0, 0, 0),
18701 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_6", "Primary TDM6 Capture",
18702 0, 0, 0, 0),
18703 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_7", "Primary TDM7 Playback",
18704 0, 0, 0, 0),
18705 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_7", "Primary TDM7 Capture",
18706 0, 0, 0, 0),
18707 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_0", "Secondary TDM0 Playback",
18708 0, 0, 0, 0),
18709 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_0", "Secondary TDM0 Capture",
18710 0, 0, 0, 0),
18711 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_1", "Secondary TDM1 Playback",
18712 0, 0, 0, 0),
18713 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_1", "Secondary TDM1 Capture",
18714 0, 0, 0, 0),
18715 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_2", "Secondary TDM2 Playback",
18716 0, 0, 0, 0),
18717 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_2", "Secondary TDM2 Capture",
18718 0, 0, 0, 0),
18719 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_3", "Secondary TDM3 Playback",
18720 0, 0, 0, 0),
18721 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_3", "Secondary TDM3 Capture",
18722 0, 0, 0, 0),
18723 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_4", "Secondary TDM4 Playback",
18724 0, 0, 0, 0),
18725 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_4", "Secondary TDM4 Capture",
18726 0, 0, 0, 0),
18727 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_5", "Secondary TDM5 Playback",
18728 0, 0, 0, 0),
18729 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_5", "Secondary TDM5 Capture",
18730 0, 0, 0, 0),
18731 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_6", "Secondary TDM6 Playback",
18732 0, 0, 0, 0),
18733 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_6", "Secondary TDM6 Capture",
18734 0, 0, 0, 0),
18735 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_7", "Secondary TDM7 Playback",
18736 0, 0, 0, 0),
18737 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_7", "Secondary TDM7 Capture",
18738 0, 0, 0, 0),
18739 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_0", "Tertiary TDM0 Playback",
18740 0, 0, 0, 0),
18741 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_0", "Tertiary TDM0 Capture",
18742 0, 0, 0, 0),
18743 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_1", "Tertiary TDM1 Playback",
18744 0, 0, 0, 0),
18745 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_1", "Tertiary TDM1 Capture",
18746 0, 0, 0, 0),
18747 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_2", "Tertiary TDM2 Playback",
18748 0, 0, 0, 0),
18749 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_2", "Tertiary TDM2 Capture",
18750 0, 0, 0, 0),
18751 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_3", "Tertiary TDM3 Playback",
18752 0, 0, 0, 0),
18753 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_3", "Tertiary TDM3 Capture",
18754 0, 0, 0, 0),
18755 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_4", "Tertiary TDM4 Playback",
18756 0, 0, 0, 0),
18757 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_4", "Tertiary TDM4 Capture",
18758 0, 0, 0, 0),
18759 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_5", "Tertiary TDM5 Playback",
18760 0, 0, 0, 0),
18761 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_5", "Tertiary TDM5 Capture",
18762 0, 0, 0, 0),
18763 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_6", "Tertiary TDM6 Playback",
18764 0, 0, 0, 0),
18765 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_6", "Tertiary TDM6 Capture",
18766 0, 0, 0, 0),
18767 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_7", "Tertiary TDM7 Playback",
18768 0, 0, 0, 0),
18769 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_7", "Tertiary TDM7 Capture",
18770 0, 0, 0, 0),
18771 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_0", "Quaternary TDM0 Playback",
18772 0, 0, 0, 0),
18773 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_0", "Quaternary TDM0 Capture",
18774 0, 0, 0, 0),
18775 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_1", "Quaternary TDM1 Playback",
18776 0, 0, 0, 0),
18777 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_1", "Quaternary TDM1 Capture",
18778 0, 0, 0, 0),
18779 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_2", "Quaternary TDM2 Playback",
18780 0, 0, 0, 0),
18781 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_2", "Quaternary TDM2 Capture",
18782 0, 0, 0, 0),
18783 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_3", "Quaternary TDM3 Playback",
18784 0, 0, 0, 0),
18785 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_3", "Quaternary TDM3 Capture",
18786 0, 0, 0, 0),
18787 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_4", "Quaternary TDM4 Playback",
18788 0, 0, 0, 0),
18789 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_4", "Quaternary TDM4 Capture",
18790 0, 0, 0, 0),
18791 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_5", "Quaternary TDM5 Playback",
18792 0, 0, 0, 0),
18793 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_5", "Quaternary TDM5 Capture",
18794 0, 0, 0, 0),
18795 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_6", "Quaternary TDM6 Playback",
18796 0, 0, 0, 0),
18797 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_6", "Quaternary TDM6 Capture",
18798 0, 0, 0, 0),
18799 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_7", "Quaternary TDM7 Playback",
18800 0, 0, 0, 0),
18801 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_7", "Quaternary TDM7 Capture",
18802 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018803 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_0", "Quinary TDM0 Playback",
18804 0, 0, 0, 0),
18805 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_0", "Quinary TDM0 Capture",
18806 0, 0, 0, 0),
18807 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_1", "Quinary TDM1 Playback",
18808 0, 0, 0, 0),
18809 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_1", "Quinary TDM1 Capture",
18810 0, 0, 0, 0),
18811 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_2", "Quinary TDM2 Playback",
18812 0, 0, 0, 0),
18813 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_2", "Quinary TDM2 Capture",
18814 0, 0, 0, 0),
18815 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_3", "Quinary TDM3 Playback",
18816 0, 0, 0, 0),
18817 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_3", "Quinary TDM3 Capture",
18818 0, 0, 0, 0),
18819 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_4", "Quinary TDM4 Playback",
18820 0, 0, 0, 0),
18821 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_4", "Quinary TDM4 Capture",
18822 0, 0, 0, 0),
18823 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_5", "Quinary TDM5 Playback",
18824 0, 0, 0, 0),
18825 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_5", "Quinary TDM5 Capture",
18826 0, 0, 0, 0),
18827 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_6", "Quinary TDM6 Playback",
18828 0, 0, 0, 0),
18829 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_6", "Quinary TDM6 Capture",
18830 0, 0, 0, 0),
18831 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_7", "Quinary TDM7 Playback",
18832 0, 0, 0, 0),
18833 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_7", "Quinary TDM7 Capture",
18834 0, 0, 0, 0),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018835 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_0", "WSA CDC DMA0 Playback",
18836 0, 0, 0, 0),
18837 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_0", "WSA CDC DMA0 Capture",
18838 0, 0, 0, 0),
18839 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_1", "WSA CDC DMA1 Playback",
18840 0, 0, 0, 0),
18841 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_1", "WSA CDC DMA1 Capture",
18842 0, 0, 0, 0),
18843 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_2", "WSA CDC DMA2 Capture",
18844 0, 0, 0, 0),
18845 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_0", "VA CDC DMA0 Capture",
18846 0, 0, 0, 0),
18847 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_1", "VA CDC DMA1 Capture",
18848 0, 0, 0, 0),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053018849 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_0", "RX CDC DMA0 Playback",
18850 0, 0, 0, 0),
18851 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_0", "TX CDC DMA0 Capture",
18852 0, 0, 0, 0),
18853 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_1", "RX CDC DMA1 Playback",
18854 0, 0, 0, 0),
18855 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_1", "TX CDC DMA1 Capture",
18856 0, 0, 0, 0),
18857 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_2", "RX CDC DMA2 Playback",
18858 0, 0, 0, 0),
18859 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_2", "TX CDC DMA2 Capture",
18860 0, 0, 0, 0),
18861 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_3", "RX CDC DMA3 Playback",
18862 0, 0, 0, 0),
18863 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_3", "TX CDC DMA3 Capture",
18864 0, 0, 0, 0),
18865 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_4", "RX CDC DMA4 Playback",
18866 0, 0, 0, 0),
18867 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_4", "TX CDC DMA4 Capture",
18868 0, 0, 0, 0),
18869 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_5", "RX CDC DMA5 Playback",
18870 0, 0, 0, 0),
18871 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_5", "TX CDC DMA5 Capture",
18872 0, 0, 0, 0),
18873 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_6", "RX CDC DMA6 Playback",
18874 0, 0, 0, 0),
18875 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_7", "RX CDC DMA7 Playback",
18876 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018877 /* incall */
18878 SND_SOC_DAPM_AIF_OUT("VOICE_PLAYBACK_TX", "Voice Farend Playback",
18879 0, 0, 0, 0),
18880 SND_SOC_DAPM_AIF_OUT("VOICE2_PLAYBACK_TX", "Voice2 Farend Playback",
18881 0, 0, 0, 0),
18882 SND_SOC_DAPM_AIF_OUT("SLIMBUS_4_RX", "Slimbus4 Playback",
18883 0, 0, 0, 0),
18884 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_TX", "Voice Uplink Capture",
18885 0, 0, 0, 0),
18886 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_RX", "Voice Downlink Capture",
18887 0, 0, 0, 0),
18888 SND_SOC_DAPM_AIF_IN("SLIMBUS_4_TX", "Slimbus4 Capture",
18889 0, 0, 0, 0),
18890 SND_SOC_DAPM_AIF_IN("SENARY_TX", "Senary_mi2s Capture",
18891 0, 0, 0, 0),
18892 SND_SOC_DAPM_AIF_IN("INT5_MI2S_TX", "INT5 MI2S Capture",
18893 0, 0, 0, 0),
18894 SND_SOC_DAPM_AIF_IN("SLIMBUS_5_TX", "Slimbus5 Capture", 0, 0, 0, 0),
18895
18896 SND_SOC_DAPM_AIF_OUT("AUX_PCM_RX", "AUX PCM Playback", 0, 0, 0, 0),
18897 SND_SOC_DAPM_AIF_IN("AUX_PCM_TX", "AUX PCM Capture", 0, 0, 0, 0),
18898 SND_SOC_DAPM_AIF_OUT("SEC_AUX_PCM_RX", "Sec AUX PCM Playback",
18899 0, 0, 0, 0),
18900 SND_SOC_DAPM_AIF_IN("SEC_AUX_PCM_TX", "Sec AUX PCM Capture",
18901 0, 0, 0, 0),
18902 SND_SOC_DAPM_AIF_OUT("TERT_AUX_PCM_RX", "Tert AUX PCM Playback",
18903 0, 0, 0, 0),
18904 SND_SOC_DAPM_AIF_IN("TERT_AUX_PCM_TX", "Tert AUX PCM Capture",
18905 0, 0, 0, 0),
18906 SND_SOC_DAPM_AIF_OUT("QUAT_AUX_PCM_RX", "Quat AUX PCM Playback",
18907 0, 0, 0, 0),
18908 SND_SOC_DAPM_AIF_IN("QUAT_AUX_PCM_TX", "Quat AUX PCM Capture",
18909 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018910 SND_SOC_DAPM_AIF_OUT("QUIN_AUX_PCM_RX", "Quin AUX PCM Playback",
18911 0, 0, 0, 0),
18912 SND_SOC_DAPM_AIF_IN("QUIN_AUX_PCM_TX", "Quin AUX PCM Capture",
18913 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018914 SND_SOC_DAPM_AIF_IN("VOICE_STUB_DL", "VOICE_STUB Playback", 0, 0, 0, 0),
18915 SND_SOC_DAPM_AIF_OUT("VOICE_STUB_UL", "VOICE_STUB Capture", 0, 0, 0, 0),
18916 SND_SOC_DAPM_AIF_IN("VOICE2_STUB_DL", "VOICE2_STUB Playback",
18917 0, 0, 0, 0),
18918 SND_SOC_DAPM_AIF_OUT("VOICE2_STUB_UL", "VOICE2_STUB Capture",
18919 0, 0, 0, 0),
18920 SND_SOC_DAPM_AIF_IN("VOLTE_STUB_DL", "VOLTE_STUB Playback", 0, 0, 0, 0),
18921 SND_SOC_DAPM_AIF_OUT("VOLTE_STUB_UL", "VOLTE_STUB Capture", 0, 0, 0, 0),
18922 SND_SOC_DAPM_AIF_OUT("STUB_RX", "Stub Playback", 0, 0, 0, 0),
18923 SND_SOC_DAPM_AIF_IN("STUB_TX", "Stub Capture", 0, 0, 0, 0),
18924 SND_SOC_DAPM_AIF_OUT("SLIMBUS_1_RX", "Slimbus1 Playback", 0, 0, 0, 0),
18925 SND_SOC_DAPM_AIF_IN("SLIMBUS_1_TX", "Slimbus1 Capture", 0, 0, 0, 0),
18926 SND_SOC_DAPM_AIF_IN("STUB_1_TX", "Stub1 Capture", 0, 0, 0, 0),
18927 SND_SOC_DAPM_AIF_OUT("SLIMBUS_3_RX", "Slimbus3 Playback", 0, 0, 0, 0),
18928 SND_SOC_DAPM_AIF_IN("SLIMBUS_3_TX", "Slimbus3 Capture", 0, 0, 0, 0),
18929 /* In- call recording */
18930 SND_SOC_DAPM_AIF_OUT("SLIMBUS_6_RX", "Slimbus6 Playback", 0, 0, 0, 0),
18931 SND_SOC_DAPM_AIF_IN("SLIMBUS_6_TX", "Slimbus6 Capture", 0, 0, 0, 0),
Surendar Karkad47fda42018-05-20 19:21:10 +053018932 SND_SOC_DAPM_AIF_IN("AFE_LOOPBACK_TX", "AFE Loopback Capture",
18933 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018934 SND_SOC_DAPM_AIF_OUT("SLIMBUS_7_RX", "Slimbus7 Playback", 0, 0, 0, 0),
18935 SND_SOC_DAPM_AIF_IN("SLIMBUS_7_TX", "Slimbus7 Capture", 0, 0, 0, 0),
18936
18937 SND_SOC_DAPM_AIF_OUT("SLIMBUS_8_RX", "Slimbus8 Playback", 0, 0, 0, 0),
18938 SND_SOC_DAPM_AIF_IN("SLIMBUS_8_TX", "Slimbus8 Capture", 0, 0, 0, 0),
Surendar Karka3ef3d812018-09-28 18:52:35 +053018939 SND_SOC_DAPM_AIF_OUT("SLIMBUS_9_RX", "Slimbus9 Playback", 0, 0, 0, 0),
18940 SND_SOC_DAPM_AIF_IN("SLIMBUS_9_TX", "Slimbus9 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018941 SND_SOC_DAPM_AIF_OUT("USB_AUDIO_RX", "USB Audio Playback", 0, 0, 0, 0),
18942 SND_SOC_DAPM_AIF_IN("USB_AUDIO_TX", "USB Audio Capture", 0, 0, 0, 0),
18943
18944 /* Switch Definitions */
18945 SND_SOC_DAPM_SWITCH("SLIMBUS_DL_HL", SND_SOC_NOPM, 0, 0,
18946 &slim_fm_switch_mixer_controls),
18947 SND_SOC_DAPM_SWITCH("SLIMBUS1_DL_HL", SND_SOC_NOPM, 0, 0,
18948 &slim1_fm_switch_mixer_controls),
18949 SND_SOC_DAPM_SWITCH("SLIMBUS3_DL_HL", SND_SOC_NOPM, 0, 0,
18950 &slim3_fm_switch_mixer_controls),
18951 SND_SOC_DAPM_SWITCH("SLIMBUS4_DL_HL", SND_SOC_NOPM, 0, 0,
18952 &slim4_fm_switch_mixer_controls),
18953 SND_SOC_DAPM_SWITCH("SLIMBUS6_DL_HL", SND_SOC_NOPM, 0, 0,
18954 &slim6_fm_switch_mixer_controls),
18955 SND_SOC_DAPM_SWITCH("PCM_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18956 &pcm_rx_switch_mixer_controls),
18957 SND_SOC_DAPM_SWITCH("INT0_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18958 &int0_mi2s_rx_switch_mixer_controls),
18959 SND_SOC_DAPM_SWITCH("INT4_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18960 &int4_mi2s_rx_switch_mixer_controls),
18961 SND_SOC_DAPM_SWITCH("PRI_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18962 &pri_mi2s_rx_switch_mixer_controls),
18963 SND_SOC_DAPM_SWITCH("SEC_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18964 &sec_mi2s_rx_switch_mixer_controls),
18965 SND_SOC_DAPM_SWITCH("TERT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18966 &tert_mi2s_rx_switch_mixer_controls),
18967 SND_SOC_DAPM_SWITCH("QUAT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18968 &quat_mi2s_rx_switch_mixer_controls),
Rohit Kumara5077932017-09-10 22:05:05 +053018969 SND_SOC_DAPM_SWITCH("QUIN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18970 &quin_mi2s_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018971 SND_SOC_DAPM_SWITCH("HFP_PRI_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
18972 &hfp_pri_aux_switch_mixer_controls),
18973 SND_SOC_DAPM_SWITCH("HFP_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
18974 &hfp_aux_switch_mixer_controls),
18975 SND_SOC_DAPM_SWITCH("HFP_INT_UL_HL", SND_SOC_NOPM, 0, 0,
18976 &hfp_int_switch_mixer_controls),
18977 SND_SOC_DAPM_SWITCH("HFP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
18978 &hfp_slim7_switch_mixer_controls),
18979 SND_SOC_DAPM_SWITCH("USB_DL_HL", SND_SOC_NOPM, 0, 0,
18980 &usb_switch_mixer_controls),
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080018981 SND_SOC_DAPM_SWITCH("A2DP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
18982 &a2dp_slim7_switch_mixer_controls),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053018983 SND_SOC_DAPM_SWITCH("WSA_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053018984 &cdc_dma_wsa_switch_mixer_controls),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053018985 SND_SOC_DAPM_SWITCH("RX_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053018986 &cdc_dma_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018987
18988 /* Mixer definitions */
18989 SND_SOC_DAPM_MIXER("PRI_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18990 pri_i2s_rx_mixer_controls, ARRAY_SIZE(pri_i2s_rx_mixer_controls)),
18991 SND_SOC_DAPM_MIXER("SEC_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18992 sec_i2s_rx_mixer_controls, ARRAY_SIZE(sec_i2s_rx_mixer_controls)),
18993 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18994 slimbus_rx_mixer_controls, ARRAY_SIZE(slimbus_rx_mixer_controls)),
18995 SND_SOC_DAPM_MIXER("SLIMBUS_2_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18996 slimbus_2_rx_mixer_controls, ARRAY_SIZE(slimbus_2_rx_mixer_controls)),
18997 SND_SOC_DAPM_MIXER("SLIMBUS_5_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18998 slimbus_5_rx_mixer_controls, ARRAY_SIZE(slimbus_5_rx_mixer_controls)),
18999 SND_SOC_DAPM_MIXER("SLIMBUS_7_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19000 slimbus_7_rx_mixer_controls, ARRAY_SIZE(slimbus_7_rx_mixer_controls)),
Surendar Karka3ef3d812018-09-28 18:52:35 +053019001 SND_SOC_DAPM_MIXER("SLIMBUS_9_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19002 slimbus_9_rx_mixer_controls, ARRAY_SIZE(slimbus_9_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019003 SND_SOC_DAPM_MIXER("HDMI Mixer", SND_SOC_NOPM, 0, 0,
19004 hdmi_mixer_controls, ARRAY_SIZE(hdmi_mixer_controls)),
19005 SND_SOC_DAPM_MIXER("DISPLAY_PORT Mixer", SND_SOC_NOPM, 0, 0,
19006 display_port_mixer_controls, ARRAY_SIZE(display_port_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070019007 SND_SOC_DAPM_MIXER("DISPLAY_PORT1 Mixer", SND_SOC_NOPM, 0, 0,
19008 display_port1_mixer_controls, ARRAY_SIZE(display_port1_mixer_controls)),
Ralf Herzc8701f72018-06-20 11:37:35 +020019009 SND_SOC_DAPM_MIXER("PRI_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19010 pri_spdif_rx_mixer_controls, ARRAY_SIZE(pri_spdif_rx_mixer_controls)),
19011 SND_SOC_DAPM_MIXER("SEC_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19012 sec_spdif_rx_mixer_controls, ARRAY_SIZE(sec_spdif_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019013 SND_SOC_DAPM_MIXER("MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19014 mi2s_rx_mixer_controls, ARRAY_SIZE(mi2s_rx_mixer_controls)),
19015 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19016 quaternary_mi2s_rx_mixer_controls,
19017 ARRAY_SIZE(quaternary_mi2s_rx_mixer_controls)),
19018 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19019 tertiary_mi2s_rx_mixer_controls,
19020 ARRAY_SIZE(tertiary_mi2s_rx_mixer_controls)),
19021 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19022 secondary_mi2s_rx_mixer_controls,
19023 ARRAY_SIZE(secondary_mi2s_rx_mixer_controls)),
19024 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_SD1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19025 secondary_mi2s_rx2_mixer_controls,
19026 ARRAY_SIZE(secondary_mi2s_rx2_mixer_controls)),
19027 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19028 primary_mi2s_rx_mixer_controls,
19029 ARRAY_SIZE(primary_mi2s_rx_mixer_controls)),
19030 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19031 int0_mi2s_rx_mixer_controls,
19032 ARRAY_SIZE(int0_mi2s_rx_mixer_controls)),
19033 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19034 int4_mi2s_rx_mixer_controls,
19035 ARRAY_SIZE(int4_mi2s_rx_mixer_controls)),
19036 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19037 quinary_mi2s_rx_mixer_controls,
19038 ARRAY_SIZE(quinary_mi2s_rx_mixer_controls)),
19039 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19040 pri_tdm_rx_0_mixer_controls,
19041 ARRAY_SIZE(pri_tdm_rx_0_mixer_controls)),
19042 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19043 pri_tdm_rx_1_mixer_controls,
19044 ARRAY_SIZE(pri_tdm_rx_1_mixer_controls)),
19045 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19046 pri_tdm_rx_2_mixer_controls,
19047 ARRAY_SIZE(pri_tdm_rx_2_mixer_controls)),
19048 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19049 pri_tdm_rx_3_mixer_controls,
19050 ARRAY_SIZE(pri_tdm_rx_3_mixer_controls)),
19051 SND_SOC_DAPM_MIXER("PRI_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19052 pri_tdm_tx_0_mixer_controls,
19053 ARRAY_SIZE(pri_tdm_tx_0_mixer_controls)),
19054 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19055 sec_tdm_rx_0_mixer_controls,
19056 ARRAY_SIZE(sec_tdm_rx_0_mixer_controls)),
19057 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19058 sec_tdm_rx_1_mixer_controls,
19059 ARRAY_SIZE(sec_tdm_rx_1_mixer_controls)),
19060 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19061 sec_tdm_rx_2_mixer_controls,
19062 ARRAY_SIZE(sec_tdm_rx_2_mixer_controls)),
19063 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19064 sec_tdm_rx_3_mixer_controls,
19065 ARRAY_SIZE(sec_tdm_rx_3_mixer_controls)),
19066 SND_SOC_DAPM_MIXER("SEC_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19067 sec_tdm_tx_0_mixer_controls,
19068 ARRAY_SIZE(sec_tdm_tx_0_mixer_controls)),
19069 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19070 tert_tdm_rx_0_mixer_controls,
19071 ARRAY_SIZE(tert_tdm_rx_0_mixer_controls)),
19072 SND_SOC_DAPM_MIXER("TERT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19073 tert_tdm_tx_0_mixer_controls,
19074 ARRAY_SIZE(tert_tdm_tx_0_mixer_controls)),
19075 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19076 tert_tdm_rx_1_mixer_controls,
19077 ARRAY_SIZE(tert_tdm_rx_1_mixer_controls)),
19078 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19079 tert_tdm_rx_2_mixer_controls,
19080 ARRAY_SIZE(tert_tdm_rx_2_mixer_controls)),
19081 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19082 tert_tdm_rx_3_mixer_controls,
19083 ARRAY_SIZE(tert_tdm_rx_3_mixer_controls)),
19084 SND_SOC_DAPM_MIXER("TERT_TDM_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
19085 tert_tdm_rx_4_mixer_controls,
19086 ARRAY_SIZE(tert_tdm_rx_4_mixer_controls)),
19087 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19088 quat_tdm_rx_0_mixer_controls,
19089 ARRAY_SIZE(quat_tdm_rx_0_mixer_controls)),
19090 SND_SOC_DAPM_MIXER("QUAT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19091 quat_tdm_tx_0_mixer_controls,
19092 ARRAY_SIZE(quat_tdm_tx_0_mixer_controls)),
19093 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19094 quat_tdm_rx_1_mixer_controls,
19095 ARRAY_SIZE(quat_tdm_rx_1_mixer_controls)),
19096 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19097 quat_tdm_rx_2_mixer_controls,
19098 ARRAY_SIZE(quat_tdm_rx_2_mixer_controls)),
19099 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19100 quat_tdm_rx_3_mixer_controls,
19101 ARRAY_SIZE(quat_tdm_rx_3_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019102 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19103 quin_tdm_rx_0_mixer_controls,
19104 ARRAY_SIZE(quin_tdm_rx_0_mixer_controls)),
19105 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19106 quin_tdm_tx_0_mixer_controls,
19107 ARRAY_SIZE(quin_tdm_tx_0_mixer_controls)),
19108 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19109 quin_tdm_rx_1_mixer_controls,
19110 ARRAY_SIZE(quin_tdm_rx_1_mixer_controls)),
19111 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19112 quin_tdm_rx_2_mixer_controls,
19113 ARRAY_SIZE(quin_tdm_rx_2_mixer_controls)),
19114 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19115 quin_tdm_rx_3_mixer_controls,
19116 ARRAY_SIZE(quin_tdm_rx_3_mixer_controls)),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019117 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19118 wsa_cdc_dma_rx_0_mixer_controls,
19119 ARRAY_SIZE(wsa_cdc_dma_rx_0_mixer_controls)),
19120 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19121 wsa_cdc_dma_rx_1_mixer_controls,
19122 ARRAY_SIZE(wsa_cdc_dma_rx_1_mixer_controls)),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019123 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19124 rx_cdc_dma_rx_0_mixer_controls,
19125 ARRAY_SIZE(rx_cdc_dma_rx_0_mixer_controls)),
19126 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19127 rx_cdc_dma_rx_1_mixer_controls,
19128 ARRAY_SIZE(rx_cdc_dma_rx_1_mixer_controls)),
19129 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19130 rx_cdc_dma_rx_2_mixer_controls,
19131 ARRAY_SIZE(rx_cdc_dma_rx_2_mixer_controls)),
19132 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19133 rx_cdc_dma_rx_3_mixer_controls,
19134 ARRAY_SIZE(rx_cdc_dma_rx_3_mixer_controls)),
19135 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
19136 rx_cdc_dma_rx_4_mixer_controls,
19137 ARRAY_SIZE(rx_cdc_dma_rx_4_mixer_controls)),
19138 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_5 Audio Mixer", SND_SOC_NOPM, 0, 0,
19139 rx_cdc_dma_rx_5_mixer_controls,
19140 ARRAY_SIZE(rx_cdc_dma_rx_5_mixer_controls)),
19141 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_6 Audio Mixer", SND_SOC_NOPM, 0, 0,
19142 rx_cdc_dma_rx_6_mixer_controls,
19143 ARRAY_SIZE(rx_cdc_dma_rx_6_mixer_controls)),
19144 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_7 Audio Mixer", SND_SOC_NOPM, 0, 0,
19145 rx_cdc_dma_rx_7_mixer_controls,
19146 ARRAY_SIZE(rx_cdc_dma_rx_7_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019147 SND_SOC_DAPM_MIXER("MultiMedia1 Mixer", SND_SOC_NOPM, 0, 0,
19148 mmul1_mixer_controls, ARRAY_SIZE(mmul1_mixer_controls)),
19149 SND_SOC_DAPM_MIXER("MultiMedia2 Mixer", SND_SOC_NOPM, 0, 0,
19150 mmul2_mixer_controls, ARRAY_SIZE(mmul2_mixer_controls)),
19151 SND_SOC_DAPM_MIXER("MultiMedia3 Mixer", SND_SOC_NOPM, 0, 0,
19152 mmul3_mixer_controls, ARRAY_SIZE(mmul3_mixer_controls)),
19153 SND_SOC_DAPM_MIXER("MultiMedia4 Mixer", SND_SOC_NOPM, 0, 0,
19154 mmul4_mixer_controls, ARRAY_SIZE(mmul4_mixer_controls)),
19155 SND_SOC_DAPM_MIXER("MultiMedia5 Mixer", SND_SOC_NOPM, 0, 0,
19156 mmul5_mixer_controls, ARRAY_SIZE(mmul5_mixer_controls)),
19157 SND_SOC_DAPM_MIXER("MultiMedia6 Mixer", SND_SOC_NOPM, 0, 0,
19158 mmul6_mixer_controls, ARRAY_SIZE(mmul6_mixer_controls)),
19159 SND_SOC_DAPM_MIXER("MultiMedia8 Mixer", SND_SOC_NOPM, 0, 0,
19160 mmul8_mixer_controls, ARRAY_SIZE(mmul8_mixer_controls)),
19161 SND_SOC_DAPM_MIXER("MultiMedia9 Mixer", SND_SOC_NOPM, 0, 0,
19162 mmul9_mixer_controls, ARRAY_SIZE(mmul9_mixer_controls)),
Laxminath Kasam38070be2017-08-17 18:21:59 +053019163 SND_SOC_DAPM_MIXER("MultiMedia10 Mixer", SND_SOC_NOPM, 0, 0,
19164 mmul10_mixer_controls, ARRAY_SIZE(mmul10_mixer_controls)),
Asish Bhattacharya34504582017-08-08 12:55:01 +053019165 SND_SOC_DAPM_MIXER("MultiMedia16 Mixer", SND_SOC_NOPM, 0, 0,
19166 mmul16_mixer_controls, ARRAY_SIZE(mmul16_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019167 SND_SOC_DAPM_MIXER("MultiMedia17 Mixer", SND_SOC_NOPM, 0, 0,
19168 mmul17_mixer_controls, ARRAY_SIZE(mmul17_mixer_controls)),
19169 SND_SOC_DAPM_MIXER("MultiMedia18 Mixer", SND_SOC_NOPM, 0, 0,
19170 mmul18_mixer_controls, ARRAY_SIZE(mmul18_mixer_controls)),
19171 SND_SOC_DAPM_MIXER("MultiMedia19 Mixer", SND_SOC_NOPM, 0, 0,
19172 mmul19_mixer_controls, ARRAY_SIZE(mmul19_mixer_controls)),
19173 SND_SOC_DAPM_MIXER("MultiMedia20 Mixer", SND_SOC_NOPM, 0, 0,
19174 mmul20_mixer_controls, ARRAY_SIZE(mmul20_mixer_controls)),
Derek Chen07c6d1c2018-07-05 10:39:25 -070019175 SND_SOC_DAPM_MIXER("MultiMedia21 Mixer", SND_SOC_NOPM, 0, 0,
19176 mmul21_mixer_controls, ARRAY_SIZE(mmul21_mixer_controls)),
Surendar Karkac1cde372018-08-14 18:56:24 +053019177 SND_SOC_DAPM_MIXER("MultiMedia27 Mixer", SND_SOC_NOPM, 0, 0,
19178 mmul27_mixer_controls, ARRAY_SIZE(mmul27_mixer_controls)),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019179 SND_SOC_DAPM_MIXER("MultiMedia28 Mixer", SND_SOC_NOPM, 0, 0,
19180 mmul28_mixer_controls, ARRAY_SIZE(mmul28_mixer_controls)),
19181 SND_SOC_DAPM_MIXER("MultiMedia29 Mixer", SND_SOC_NOPM, 0, 0,
19182 mmul29_mixer_controls, ARRAY_SIZE(mmul29_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019183 SND_SOC_DAPM_MIXER("AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19184 auxpcm_rx_mixer_controls, ARRAY_SIZE(auxpcm_rx_mixer_controls)),
19185 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19186 sec_auxpcm_rx_mixer_controls, ARRAY_SIZE(sec_auxpcm_rx_mixer_controls)),
19187 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19188 tert_auxpcm_rx_mixer_controls,
19189 ARRAY_SIZE(tert_auxpcm_rx_mixer_controls)),
19190 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19191 quat_auxpcm_rx_mixer_controls,
19192 ARRAY_SIZE(quat_auxpcm_rx_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019193 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19194 quin_auxpcm_rx_mixer_controls,
19195 ARRAY_SIZE(quin_auxpcm_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019196 /* incall */
19197 SND_SOC_DAPM_MIXER("Incall_Music Audio Mixer", SND_SOC_NOPM, 0, 0,
19198 incall_music_delivery_mixer_controls,
19199 ARRAY_SIZE(incall_music_delivery_mixer_controls)),
19200 SND_SOC_DAPM_MIXER("Incall_Music_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19201 incall_music2_delivery_mixer_controls,
19202 ARRAY_SIZE(incall_music2_delivery_mixer_controls)),
19203 SND_SOC_DAPM_MIXER("SLIMBUS_4_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19204 slimbus_4_rx_mixer_controls,
19205 ARRAY_SIZE(slimbus_4_rx_mixer_controls)),
19206 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19207 slimbus_6_rx_mixer_controls,
19208 ARRAY_SIZE(slimbus_6_rx_mixer_controls)),
19209 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19210 usb_audio_rx_mixer_controls,
19211 ARRAY_SIZE(usb_audio_rx_mixer_controls)),
19212 /* Voice Mixer */
19213 SND_SOC_DAPM_MIXER("PRI_RX_Voice Mixer",
19214 SND_SOC_NOPM, 0, 0, pri_rx_voice_mixer_controls,
19215 ARRAY_SIZE(pri_rx_voice_mixer_controls)),
19216 SND_SOC_DAPM_MIXER("SEC_RX_Voice Mixer",
19217 SND_SOC_NOPM, 0, 0,
19218 sec_i2s_rx_voice_mixer_controls,
19219 ARRAY_SIZE(sec_i2s_rx_voice_mixer_controls)),
19220 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_Voice Mixer",
19221 SND_SOC_NOPM, 0, 0,
19222 sec_mi2s_rx_voice_mixer_controls,
19223 ARRAY_SIZE(sec_mi2s_rx_voice_mixer_controls)),
19224 SND_SOC_DAPM_MIXER("SLIM_0_RX_Voice Mixer",
19225 SND_SOC_NOPM, 0, 0,
19226 slimbus_rx_voice_mixer_controls,
19227 ARRAY_SIZE(slimbus_rx_voice_mixer_controls)),
19228 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX_Voice Mixer",
19229 SND_SOC_NOPM, 0, 0,
19230 bt_sco_rx_voice_mixer_controls,
19231 ARRAY_SIZE(bt_sco_rx_voice_mixer_controls)),
19232 SND_SOC_DAPM_MIXER("AFE_PCM_RX_Voice Mixer",
19233 SND_SOC_NOPM, 0, 0,
19234 afe_pcm_rx_voice_mixer_controls,
19235 ARRAY_SIZE(afe_pcm_rx_voice_mixer_controls)),
19236 SND_SOC_DAPM_MIXER("AUX_PCM_RX_Voice Mixer",
19237 SND_SOC_NOPM, 0, 0,
19238 aux_pcm_rx_voice_mixer_controls,
19239 ARRAY_SIZE(aux_pcm_rx_voice_mixer_controls)),
19240 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX_Voice Mixer",
19241 SND_SOC_NOPM, 0, 0,
19242 sec_aux_pcm_rx_voice_mixer_controls,
19243 ARRAY_SIZE(sec_aux_pcm_rx_voice_mixer_controls)),
19244 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX_Voice Mixer",
19245 SND_SOC_NOPM, 0, 0,
19246 tert_aux_pcm_rx_voice_mixer_controls,
19247 ARRAY_SIZE(tert_aux_pcm_rx_voice_mixer_controls)),
19248 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX_Voice Mixer",
19249 SND_SOC_NOPM, 0, 0,
19250 quat_aux_pcm_rx_voice_mixer_controls,
19251 ARRAY_SIZE(quat_aux_pcm_rx_voice_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019252 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX_Voice Mixer",
19253 SND_SOC_NOPM, 0, 0,
19254 quin_aux_pcm_rx_voice_mixer_controls,
19255 ARRAY_SIZE(quin_aux_pcm_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019256 SND_SOC_DAPM_MIXER("HDMI_RX_Voice Mixer",
19257 SND_SOC_NOPM, 0, 0,
19258 hdmi_rx_voice_mixer_controls,
19259 ARRAY_SIZE(hdmi_rx_voice_mixer_controls)),
19260 SND_SOC_DAPM_MIXER("MI2S_RX_Voice Mixer",
19261 SND_SOC_NOPM, 0, 0,
19262 mi2s_rx_voice_mixer_controls,
19263 ARRAY_SIZE(mi2s_rx_voice_mixer_controls)),
19264 SND_SOC_DAPM_MIXER("PRI_MI2S_RX_Voice Mixer",
19265 SND_SOC_NOPM, 0, 0,
19266 pri_mi2s_rx_voice_mixer_controls,
19267 ARRAY_SIZE(pri_mi2s_rx_voice_mixer_controls)),
19268 SND_SOC_DAPM_MIXER("INT0_MI2S_RX_Voice Mixer",
19269 SND_SOC_NOPM, 0, 0,
19270 int0_mi2s_rx_voice_mixer_controls,
19271 ARRAY_SIZE(int0_mi2s_rx_voice_mixer_controls)),
19272 SND_SOC_DAPM_MIXER("INT4_MI2S_RX_Voice Mixer",
19273 SND_SOC_NOPM, 0, 0,
19274 int4_mi2s_rx_voice_mixer_controls,
19275 ARRAY_SIZE(int4_mi2s_rx_voice_mixer_controls)),
19276 SND_SOC_DAPM_MIXER("TERT_MI2S_RX_Voice Mixer",
19277 SND_SOC_NOPM, 0, 0,
19278 tert_mi2s_rx_voice_mixer_controls,
19279 ARRAY_SIZE(tert_mi2s_rx_voice_mixer_controls)),
19280 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX_Voice Mixer",
19281 SND_SOC_NOPM, 0, 0,
19282 quat_mi2s_rx_voice_mixer_controls,
19283 ARRAY_SIZE(quat_mi2s_rx_voice_mixer_controls)),
19284 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX_Voice Mixer",
19285 SND_SOC_NOPM, 0, 0,
19286 quin_mi2s_rx_voice_mixer_controls,
19287 ARRAY_SIZE(quin_mi2s_rx_voice_mixer_controls)),
19288 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2_Voice Mixer",
19289 SND_SOC_NOPM, 0, 0,
19290 quat_tdm_rx_2_voice_mixer_controls,
19291 ARRAY_SIZE(quat_tdm_rx_2_voice_mixer_controls)),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053019292 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0_Voice Mixer",
19293 SND_SOC_NOPM, 0, 0,
19294 wsa_cdc_dma_rx_0_voice_mixer_controls,
19295 ARRAY_SIZE(wsa_cdc_dma_rx_0_voice_mixer_controls)),
19296 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0_Voice Mixer",
19297 SND_SOC_NOPM, 0, 0,
19298 rx_cdc_dma_rx_0_voice_mixer_controls,
19299 ARRAY_SIZE(rx_cdc_dma_rx_0_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019300 SND_SOC_DAPM_MIXER("Voip_Tx Mixer",
19301 SND_SOC_NOPM, 0, 0, tx_voip_mixer_controls,
19302 ARRAY_SIZE(tx_voip_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019303 SND_SOC_DAPM_MIXER("VoiceMMode1_Tx Mixer",
19304 SND_SOC_NOPM, 0, 0, tx_voicemmode1_mixer_controls,
19305 ARRAY_SIZE(tx_voicemmode1_mixer_controls)),
19306 SND_SOC_DAPM_MIXER("VoiceMMode2_Tx Mixer",
19307 SND_SOC_NOPM, 0, 0, tx_voicemmode2_mixer_controls,
19308 ARRAY_SIZE(tx_voicemmode2_mixer_controls)),
19309 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19310 int_bt_sco_rx_mixer_controls, ARRAY_SIZE(int_bt_sco_rx_mixer_controls)),
19311 SND_SOC_DAPM_MIXER("INTERNAL_A2DP_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19312 int_bt_a2dp_rx_mixer_controls,
19313 ARRAY_SIZE(int_bt_a2dp_rx_mixer_controls)),
19314 SND_SOC_DAPM_MIXER("INTERNAL_FM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19315 int_fm_rx_mixer_controls, ARRAY_SIZE(int_fm_rx_mixer_controls)),
19316 SND_SOC_DAPM_MIXER("AFE_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19317 afe_pcm_rx_mixer_controls, ARRAY_SIZE(afe_pcm_rx_mixer_controls)),
19318 SND_SOC_DAPM_MIXER("Voice Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
19319 tx_voice_stub_mixer_controls, ARRAY_SIZE(tx_voice_stub_mixer_controls)),
19320 SND_SOC_DAPM_MIXER("Voice2 Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
19321 tx_voice2_stub_mixer_controls,
19322 ARRAY_SIZE(tx_voice2_stub_mixer_controls)),
19323 SND_SOC_DAPM_MIXER("VoLTE Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
19324 tx_volte_stub_mixer_controls, ARRAY_SIZE(tx_volte_stub_mixer_controls)),
19325 SND_SOC_DAPM_MIXER("STUB_RX Mixer", SND_SOC_NOPM, 0, 0,
19326 stub_rx_mixer_controls, ARRAY_SIZE(stub_rx_mixer_controls)),
19327 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Mixer", SND_SOC_NOPM, 0, 0,
19328 slimbus_1_rx_mixer_controls, ARRAY_SIZE(slimbus_1_rx_mixer_controls)),
19329 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
19330 slimbus_3_rx_mixer_controls, ARRAY_SIZE(slimbus_3_rx_mixer_controls)),
19331 SND_SOC_DAPM_MIXER("SLIM_6_RX_Voice Mixer",
19332 SND_SOC_NOPM, 0, 0,
19333 slimbus_6_rx_voice_mixer_controls,
19334 ARRAY_SIZE(slimbus_6_rx_voice_mixer_controls)),
19335 SND_SOC_DAPM_MIXER("SLIM_7_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
19336 slimbus_7_rx_voice_mixer_controls,
19337 ARRAY_SIZE(slimbus_7_rx_voice_mixer_controls)),
19338 SND_SOC_DAPM_MIXER("SLIM_8_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
19339 slimbus_8_rx_voice_mixer_controls,
19340 ARRAY_SIZE(slimbus_8_rx_voice_mixer_controls)),
19341 /* port mixer */
19342 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Port Mixer",
19343 SND_SOC_NOPM, 0, 0, sbus_0_rx_port_mixer_controls,
19344 ARRAY_SIZE(sbus_0_rx_port_mixer_controls)),
19345 SND_SOC_DAPM_MIXER("AUX_PCM_RX Port Mixer",
19346 SND_SOC_NOPM, 0, 0, aux_pcm_rx_port_mixer_controls,
19347 ARRAY_SIZE(aux_pcm_rx_port_mixer_controls)),
19348 SND_SOC_DAPM_MIXER("SEC_AUXPCM_RX Port Mixer",
19349 SND_SOC_NOPM, 0, 0, sec_auxpcm_rx_port_mixer_controls,
19350 ARRAY_SIZE(sec_auxpcm_rx_port_mixer_controls)),
19351 SND_SOC_DAPM_MIXER("TERT_AUXPCM_RX Port Mixer",
19352 SND_SOC_NOPM, 0, 0, tert_auxpcm_rx_port_mixer_controls,
19353 ARRAY_SIZE(tert_auxpcm_rx_port_mixer_controls)),
19354 SND_SOC_DAPM_MIXER("QUAT_AUXPCM_RX Port Mixer",
19355 SND_SOC_NOPM, 0, 0, quat_auxpcm_rx_port_mixer_controls,
19356 ARRAY_SIZE(quat_auxpcm_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019357 SND_SOC_DAPM_MIXER("QUIN_AUXPCM_RX Port Mixer",
19358 SND_SOC_NOPM, 0, 0, quin_auxpcm_rx_port_mixer_controls,
19359 ARRAY_SIZE(quin_auxpcm_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019360 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19361 sbus_1_rx_port_mixer_controls,
19362 ARRAY_SIZE(sbus_1_rx_port_mixer_controls)),
19363 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19364 bt_sco_rx_port_mixer_controls,
19365 ARRAY_SIZE(bt_sco_rx_port_mixer_controls)),
19366 SND_SOC_DAPM_MIXER("AFE_PCM_RX Port Mixer",
19367 SND_SOC_NOPM, 0, 0, afe_pcm_rx_port_mixer_controls,
19368 ARRAY_SIZE(afe_pcm_rx_port_mixer_controls)),
19369 SND_SOC_DAPM_MIXER("HDMI_RX Port Mixer",
19370 SND_SOC_NOPM, 0, 0, hdmi_rx_port_mixer_controls,
19371 ARRAY_SIZE(hdmi_rx_port_mixer_controls)),
19372 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX Port Mixer",
19373 SND_SOC_NOPM, 0, 0, display_port_rx_port_mixer_controls,
19374 ARRAY_SIZE(display_port_rx_port_mixer_controls)),
Karthikeyan Manifbea92f2018-06-14 16:38:15 -070019375 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1 Port Mixer",
Karthikeyan Mani57550082018-05-03 18:43:58 -070019376 SND_SOC_NOPM, 0, 0, display_port_rx1_port_mixer_controls,
19377 ARRAY_SIZE(display_port_rx1_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019378 SND_SOC_DAPM_MIXER("SEC_I2S_RX Port Mixer",
19379 SND_SOC_NOPM, 0, 0, sec_i2s_rx_port_mixer_controls,
19380 ARRAY_SIZE(sec_i2s_rx_port_mixer_controls)),
19381 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX Port Mixer",
19382 SND_SOC_NOPM, 0, 0, sbus_3_rx_port_mixer_controls,
19383 ARRAY_SIZE(sbus_3_rx_port_mixer_controls)),
19384 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Port Mixer",
19385 SND_SOC_NOPM, 0, 0, sbus_6_rx_port_mixer_controls,
19386 ARRAY_SIZE(sbus_6_rx_port_mixer_controls)),
19387 SND_SOC_DAPM_MIXER("MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19388 mi2s_rx_port_mixer_controls, ARRAY_SIZE(mi2s_rx_port_mixer_controls)),
19389 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19390 primary_mi2s_rx_port_mixer_controls,
19391 ARRAY_SIZE(primary_mi2s_rx_port_mixer_controls)),
19392 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19393 sec_mi2s_rx_port_mixer_controls,
19394 ARRAY_SIZE(sec_mi2s_rx_port_mixer_controls)),
19395 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19396 tert_mi2s_rx_port_mixer_controls,
19397 ARRAY_SIZE(tert_mi2s_rx_port_mixer_controls)),
19398 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19399 quat_mi2s_rx_port_mixer_controls,
19400 ARRAY_SIZE(quat_mi2s_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019401 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19402 quin_mi2s_rx_port_mixer_controls,
19403 ARRAY_SIZE(quin_mi2s_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019404 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19405 pri_tdm_rx_0_port_mixer_controls,
19406 ARRAY_SIZE(pri_tdm_rx_0_port_mixer_controls)),
19407 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19408 pri_tdm_rx_1_port_mixer_controls,
19409 ARRAY_SIZE(pri_tdm_rx_1_port_mixer_controls)),
19410 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19411 pri_tdm_rx_2_port_mixer_controls,
19412 ARRAY_SIZE(pri_tdm_rx_2_port_mixer_controls)),
19413 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19414 pri_tdm_rx_3_port_mixer_controls,
19415 ARRAY_SIZE(pri_tdm_rx_3_port_mixer_controls)),
19416 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19417 sec_tdm_rx_0_port_mixer_controls,
19418 ARRAY_SIZE(sec_tdm_rx_0_port_mixer_controls)),
19419 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19420 sec_tdm_rx_1_port_mixer_controls,
19421 ARRAY_SIZE(sec_tdm_rx_1_port_mixer_controls)),
19422 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19423 sec_tdm_rx_2_port_mixer_controls,
19424 ARRAY_SIZE(sec_tdm_rx_2_port_mixer_controls)),
19425 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19426 sec_tdm_rx_3_port_mixer_controls,
19427 ARRAY_SIZE(sec_tdm_rx_3_port_mixer_controls)),
Derek Chenfdcc0982018-10-02 15:14:03 -070019428 SND_SOC_DAPM_MIXER("SEC_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
19429 sec_tdm_rx_7_port_mixer_controls,
19430 ARRAY_SIZE(sec_tdm_rx_7_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019431 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19432 tert_tdm_rx_0_port_mixer_controls,
19433 ARRAY_SIZE(tert_tdm_rx_0_port_mixer_controls)),
19434 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19435 tert_tdm_rx_1_port_mixer_controls,
19436 ARRAY_SIZE(tert_tdm_rx_1_port_mixer_controls)),
19437 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19438 tert_tdm_rx_2_port_mixer_controls,
19439 ARRAY_SIZE(tert_tdm_rx_2_port_mixer_controls)),
19440 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19441 tert_tdm_rx_3_port_mixer_controls,
19442 ARRAY_SIZE(tert_tdm_rx_3_port_mixer_controls)),
19443 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19444 quat_tdm_rx_0_port_mixer_controls,
19445 ARRAY_SIZE(quat_tdm_rx_0_port_mixer_controls)),
19446 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19447 quat_tdm_rx_1_port_mixer_controls,
19448 ARRAY_SIZE(quat_tdm_rx_1_port_mixer_controls)),
19449 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19450 quat_tdm_rx_2_port_mixer_controls,
19451 ARRAY_SIZE(quat_tdm_rx_2_port_mixer_controls)),
19452 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19453 quat_tdm_rx_3_port_mixer_controls,
19454 ARRAY_SIZE(quat_tdm_rx_3_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019455 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19456 quin_tdm_rx_0_port_mixer_controls,
19457 ARRAY_SIZE(quin_tdm_rx_0_port_mixer_controls)),
19458 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19459 quin_tdm_rx_1_port_mixer_controls,
19460 ARRAY_SIZE(quin_tdm_rx_1_port_mixer_controls)),
19461 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19462 quin_tdm_rx_2_port_mixer_controls,
19463 ARRAY_SIZE(quin_tdm_rx_2_port_mixer_controls)),
19464 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19465 quin_tdm_rx_3_port_mixer_controls,
19466 ARRAY_SIZE(quin_tdm_rx_3_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019467 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19468 int0_mi2s_rx_port_mixer_controls,
19469 ARRAY_SIZE(int0_mi2s_rx_port_mixer_controls)),
19470 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19471 int4_mi2s_rx_port_mixer_controls,
19472 ARRAY_SIZE(int4_mi2s_rx_port_mixer_controls)),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053019473 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19474 wsa_cdc_dma_rx_0_port_mixer_controls,
19475 ARRAY_SIZE(wsa_cdc_dma_rx_0_port_mixer_controls)),
19476 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19477 rx_cdc_dma_rx_0_port_mixer_controls,
19478 ARRAY_SIZE(rx_cdc_dma_rx_0_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019479 SND_SOC_DAPM_MIXER("QCHAT_Tx Mixer",
19480 SND_SOC_NOPM, 0, 0, tx_qchat_mixer_controls,
19481 ARRAY_SIZE(tx_qchat_mixer_controls)),
19482 SND_SOC_DAPM_MIXER("USB_AUDIO_RX_Voice Mixer",
19483 SND_SOC_NOPM, 0, 0, usb_audio_rx_voice_mixer_controls,
19484 ARRAY_SIZE(usb_audio_rx_voice_mixer_controls)),
19485 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Port Mixer",
19486 SND_SOC_NOPM, 0, 0, usb_rx_port_mixer_controls,
19487 ARRAY_SIZE(usb_rx_port_mixer_controls)),
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080019488 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX_Voice Mixer",
19489 SND_SOC_NOPM, 0, 0, display_port_rx_voice_mixer_controls,
19490 ARRAY_SIZE(display_port_rx_voice_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070019491 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1_Voice Mixer",
19492 SND_SOC_NOPM, 0, 0, display_port_rx1_voice_mixer_controls,
19493 ARRAY_SIZE(display_port_rx1_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019494 /* lsm mixer definitions */
19495 SND_SOC_DAPM_MIXER("LSM1 Mixer", SND_SOC_NOPM, 0, 0,
19496 lsm1_mixer_controls, ARRAY_SIZE(lsm1_mixer_controls)),
19497 SND_SOC_DAPM_MIXER("LSM2 Mixer", SND_SOC_NOPM, 0, 0,
19498 lsm2_mixer_controls, ARRAY_SIZE(lsm2_mixer_controls)),
19499 SND_SOC_DAPM_MIXER("LSM3 Mixer", SND_SOC_NOPM, 0, 0,
19500 lsm3_mixer_controls, ARRAY_SIZE(lsm3_mixer_controls)),
19501 SND_SOC_DAPM_MIXER("LSM4 Mixer", SND_SOC_NOPM, 0, 0,
19502 lsm4_mixer_controls, ARRAY_SIZE(lsm4_mixer_controls)),
19503 SND_SOC_DAPM_MIXER("LSM5 Mixer", SND_SOC_NOPM, 0, 0,
19504 lsm5_mixer_controls, ARRAY_SIZE(lsm5_mixer_controls)),
19505 SND_SOC_DAPM_MIXER("LSM6 Mixer", SND_SOC_NOPM, 0, 0,
19506 lsm6_mixer_controls, ARRAY_SIZE(lsm6_mixer_controls)),
19507 SND_SOC_DAPM_MIXER("LSM7 Mixer", SND_SOC_NOPM, 0, 0,
19508 lsm7_mixer_controls, ARRAY_SIZE(lsm7_mixer_controls)),
19509 SND_SOC_DAPM_MIXER("LSM8 Mixer", SND_SOC_NOPM, 0, 0,
19510 lsm8_mixer_controls, ARRAY_SIZE(lsm8_mixer_controls)),
19511 /* Virtual Pins to force backends ON atm */
19512 SND_SOC_DAPM_OUTPUT("BE_OUT"),
19513 SND_SOC_DAPM_INPUT("BE_IN"),
19514
19515 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
19516 &slim0_rx_vi_fb_lch_mux),
19517 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
19518 &slim0_rx_vi_fb_rch_mux),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019519 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
19520 &wsa_rx_0_vi_fb_lch_mux),
19521 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
19522 &wsa_rx_0_vi_fb_rch_mux),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019523 SND_SOC_DAPM_MUX("PRI_MI2S_RX_VI_FB_MUX", SND_SOC_NOPM, 0, 0,
19524 &mi2s_rx_vi_fb_mux),
19525 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_MONO_CH_MUX", SND_SOC_NOPM, 0, 0,
19526 &int4_mi2s_rx_vi_fb_mono_ch_mux),
19527 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", SND_SOC_NOPM, 0, 0,
19528 &int4_mi2s_rx_vi_fb_stereo_ch_mux),
19529
19530 SND_SOC_DAPM_MUX("VOC_EXT_EC MUX", SND_SOC_NOPM, 0, 0,
19531 &voc_ext_ec_mux),
19532 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL1 MUX", SND_SOC_NOPM, 0, 0,
19533 &ext_ec_ref_mux_ul1),
19534 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL2 MUX", SND_SOC_NOPM, 0, 0,
19535 &ext_ec_ref_mux_ul2),
19536 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL3 MUX", SND_SOC_NOPM, 0, 0,
19537 &ext_ec_ref_mux_ul3),
19538 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL4 MUX", SND_SOC_NOPM, 0, 0,
19539 &ext_ec_ref_mux_ul4),
19540 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL5 MUX", SND_SOC_NOPM, 0, 0,
19541 &ext_ec_ref_mux_ul5),
19542 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL6 MUX", SND_SOC_NOPM, 0, 0,
19543 &ext_ec_ref_mux_ul6),
19544 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL8 MUX", SND_SOC_NOPM, 0, 0,
19545 &ext_ec_ref_mux_ul8),
19546 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL9 MUX", SND_SOC_NOPM, 0, 0,
19547 &ext_ec_ref_mux_ul9),
Laxminath Kasam38070be2017-08-17 18:21:59 +053019548 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL10 MUX", SND_SOC_NOPM, 0, 0,
19549 &ext_ec_ref_mux_ul10),
Asish Bhattacharya34504582017-08-08 12:55:01 +053019550 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL16 MUX", SND_SOC_NOPM, 0, 0,
19551 &ext_ec_ref_mux_ul16),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019552 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL17 MUX", SND_SOC_NOPM, 0, 0,
19553 &ext_ec_ref_mux_ul17),
19554 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL18 MUX", SND_SOC_NOPM, 0, 0,
19555 &ext_ec_ref_mux_ul18),
19556 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL19 MUX", SND_SOC_NOPM, 0, 0,
19557 &ext_ec_ref_mux_ul19),
Meng Wang5c4bab72018-04-25 10:40:01 +080019558 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL28 MUX", SND_SOC_NOPM, 0, 0,
19559 &ext_ec_ref_mux_ul28),
19560 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL29 MUX", SND_SOC_NOPM, 0, 0,
19561 &ext_ec_ref_mux_ul29),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019562};
19563
19564static const struct snd_soc_dapm_route intercon[] = {
19565 {"PRI_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19566 {"PRI_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19567 {"PRI_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19568 {"PRI_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19569 {"PRI_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19570 {"PRI_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19571 {"PRI_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19572 {"PRI_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19573 {"PRI_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19574 {"PRI_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19575 {"PRI_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19576 {"PRI_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19577 {"PRI_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19578 {"PRI_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19579 {"PRI_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19580 {"PRI_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019581 {"PRI_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019582 {"PRI_I2S_RX", NULL, "PRI_RX Audio Mixer"},
19583
19584 {"SEC_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19585 {"SEC_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19586 {"SEC_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19587 {"SEC_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19588 {"SEC_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19589 {"SEC_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19590 {"SEC_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19591 {"SEC_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19592 {"SEC_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19593 {"SEC_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19594 {"SEC_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19595 {"SEC_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19596 {"SEC_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19597 {"SEC_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19598 {"SEC_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19599 {"SEC_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019600 {"SEC_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019601 {"SEC_I2S_RX", NULL, "SEC_RX Audio Mixer"},
19602
19603 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19604 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19605 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19606 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19607 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19608 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19609 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19610 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19611 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19612 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19613 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19614 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19615 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19616 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19617 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19618 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019619 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019620 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Audio Mixer"},
19621
19622 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19623 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19624 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19625 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19626 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19627 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19628 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19629 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19630 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19631 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19632 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19633 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19634 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19635 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19636 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19637 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019638 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019639 {"SLIMBUS_2_RX", NULL, "SLIMBUS_2_RX Audio Mixer"},
19640
19641 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19642 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19643 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19644 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19645 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19646 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19647 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19648 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19649 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19650 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19651 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19652 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19653 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19654 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19655 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19656 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019657 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019658 {"SLIMBUS_5_RX", NULL, "SLIMBUS_5_RX Audio Mixer"},
19659
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019660 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19661 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19662 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19663 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19664 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19665 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19666 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19667 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19668 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19669 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19670 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19671 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19672 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19673 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19674 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19675 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019676 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019677 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Audio Mixer"},
19678
19679 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19680 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19681 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19682 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19683 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19684 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19685 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19686 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19687 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19688 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19689 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19690 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19691 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19692 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19693 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19694 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019695 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019696 {"WSA_CDC_DMA_RX_1", NULL, "WSA_CDC_DMA_RX_1 Audio Mixer"},
19697
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019698 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19699 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19700 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19701 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19702 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19703 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19704 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19705 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19706 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19707 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19708 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19709 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19710 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19711 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19712 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19713 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019714 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019715 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Audio Mixer"},
19716
19717 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19718 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19719 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19720 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19721 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19722 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19723 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19724 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19725 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19726 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19727 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19728 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19729 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19730 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19731 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19732 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019733 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019734 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_1 Audio Mixer"},
19735
19736 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19737 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19738 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
19739 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
19740 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19741 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
19742 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
19743 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
19744 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19745 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
19746 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
19747 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
19748 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
19749 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
19750 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
19751 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019752 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019753 {"RX_CDC_DMA_RX_2", NULL, "RX_CDC_DMA_RX_2 Audio Mixer"},
19754
19755 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
19756 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
19757 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
19758 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
19759 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
19760 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
19761 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
19762 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
19763 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
19764 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
19765 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
19766 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
19767 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
19768 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
19769 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
19770 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019771 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019772 {"RX_CDC_DMA_RX_3", NULL, "RX_CDC_DMA_RX_3 Audio Mixer"},
19773
19774 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
19775 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
19776 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
19777 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
19778 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
19779 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
19780 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
19781 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
19782 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
19783 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
19784 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
19785 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
19786 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
19787 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
19788 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
19789 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019790 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019791 {"RX_CDC_DMA_RX_4", NULL, "RX_CDC_DMA_RX_4 Audio Mixer"},
19792
19793 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia1", "MM_DL1"},
19794 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia2", "MM_DL2"},
19795 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia3", "MM_DL3"},
19796 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia4", "MM_DL4"},
19797 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia5", "MM_DL5"},
19798 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia6", "MM_DL6"},
19799 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia7", "MM_DL7"},
19800 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia8", "MM_DL8"},
19801 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia9", "MM_DL9"},
19802 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia10", "MM_DL10"},
19803 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia11", "MM_DL11"},
19804 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia12", "MM_DL12"},
19805 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia13", "MM_DL13"},
19806 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia14", "MM_DL14"},
19807 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia15", "MM_DL15"},
19808 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019809 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019810 {"RX_CDC_DMA_RX_5", NULL, "RX_CDC_DMA_RX_5 Audio Mixer"},
19811
19812 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia1", "MM_DL1"},
19813 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia2", "MM_DL2"},
19814 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia3", "MM_DL3"},
19815 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia4", "MM_DL4"},
19816 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia5", "MM_DL5"},
19817 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia6", "MM_DL6"},
19818 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia7", "MM_DL7"},
19819 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia8", "MM_DL8"},
19820 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia9", "MM_DL9"},
19821 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia10", "MM_DL10"},
19822 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia11", "MM_DL11"},
19823 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia12", "MM_DL12"},
19824 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia13", "MM_DL13"},
19825 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia14", "MM_DL14"},
19826 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia15", "MM_DL15"},
19827 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019828 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019829 {"RX_CDC_DMA_RX_6", NULL, "RX_CDC_DMA_RX_6 Audio Mixer"},
19830
19831 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia1", "MM_DL1"},
19832 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia2", "MM_DL2"},
19833 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia3", "MM_DL3"},
19834 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia4", "MM_DL4"},
19835 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia5", "MM_DL5"},
19836 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia6", "MM_DL6"},
19837 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia7", "MM_DL7"},
19838 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia8", "MM_DL8"},
19839 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia9", "MM_DL9"},
19840 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia10", "MM_DL10"},
19841 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia11", "MM_DL11"},
19842 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia12", "MM_DL12"},
19843 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia13", "MM_DL13"},
19844 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia14", "MM_DL14"},
19845 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia15", "MM_DL15"},
19846 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019847 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019848 {"RX_CDC_DMA_RX_7", NULL, "RX_CDC_DMA_RX_7 Audio Mixer"},
19849
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019850 {"HDMI Mixer", "MultiMedia1", "MM_DL1"},
19851 {"HDMI Mixer", "MultiMedia2", "MM_DL2"},
19852 {"HDMI Mixer", "MultiMedia3", "MM_DL3"},
19853 {"HDMI Mixer", "MultiMedia4", "MM_DL4"},
19854 {"HDMI Mixer", "MultiMedia5", "MM_DL5"},
19855 {"HDMI Mixer", "MultiMedia6", "MM_DL6"},
19856 {"HDMI Mixer", "MultiMedia7", "MM_DL7"},
19857 {"HDMI Mixer", "MultiMedia8", "MM_DL8"},
19858 {"HDMI Mixer", "MultiMedia9", "MM_DL9"},
19859 {"HDMI Mixer", "MultiMedia10", "MM_DL10"},
19860 {"HDMI Mixer", "MultiMedia11", "MM_DL11"},
19861 {"HDMI Mixer", "MultiMedia12", "MM_DL12"},
19862 {"HDMI Mixer", "MultiMedia13", "MM_DL13"},
19863 {"HDMI Mixer", "MultiMedia14", "MM_DL14"},
19864 {"HDMI Mixer", "MultiMedia15", "MM_DL15"},
19865 {"HDMI Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019866 {"HDMI Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019867 {"HDMI", NULL, "HDMI Mixer"},
19868
19869 {"DISPLAY_PORT Mixer", "MultiMedia1", "MM_DL1"},
19870 {"DISPLAY_PORT Mixer", "MultiMedia2", "MM_DL2"},
19871 {"DISPLAY_PORT Mixer", "MultiMedia3", "MM_DL3"},
19872 {"DISPLAY_PORT Mixer", "MultiMedia4", "MM_DL4"},
19873 {"DISPLAY_PORT Mixer", "MultiMedia5", "MM_DL5"},
19874 {"DISPLAY_PORT Mixer", "MultiMedia6", "MM_DL6"},
19875 {"DISPLAY_PORT Mixer", "MultiMedia7", "MM_DL7"},
19876 {"DISPLAY_PORT Mixer", "MultiMedia8", "MM_DL8"},
19877 {"DISPLAY_PORT Mixer", "MultiMedia9", "MM_DL9"},
19878 {"DISPLAY_PORT Mixer", "MultiMedia10", "MM_DL10"},
19879 {"DISPLAY_PORT Mixer", "MultiMedia11", "MM_DL11"},
19880 {"DISPLAY_PORT Mixer", "MultiMedia12", "MM_DL12"},
19881 {"DISPLAY_PORT Mixer", "MultiMedia13", "MM_DL13"},
19882 {"DISPLAY_PORT Mixer", "MultiMedia14", "MM_DL14"},
19883 {"DISPLAY_PORT Mixer", "MultiMedia15", "MM_DL15"},
19884 {"DISPLAY_PORT Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019885 {"DISPLAY_PORT Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019886 {"DISPLAY_PORT", NULL, "DISPLAY_PORT Mixer"},
19887
Karthikeyan Mani57550082018-05-03 18:43:58 -070019888 {"DISPLAY_PORT1 Mixer", "MultiMedia1", "MM_DL1"},
19889 {"DISPLAY_PORT1 Mixer", "MultiMedia2", "MM_DL2"},
19890 {"DISPLAY_PORT1 Mixer", "MultiMedia3", "MM_DL3"},
19891 {"DISPLAY_PORT1 Mixer", "MultiMedia4", "MM_DL4"},
19892 {"DISPLAY_PORT1 Mixer", "MultiMedia5", "MM_DL5"},
19893 {"DISPLAY_PORT1 Mixer", "MultiMedia6", "MM_DL6"},
19894 {"DISPLAY_PORT1 Mixer", "MultiMedia7", "MM_DL7"},
19895 {"DISPLAY_PORT1 Mixer", "MultiMedia8", "MM_DL8"},
19896 {"DISPLAY_PORT1 Mixer", "MultiMedia9", "MM_DL9"},
19897 {"DISPLAY_PORT1 Mixer", "MultiMedia10", "MM_DL10"},
19898 {"DISPLAY_PORT1 Mixer", "MultiMedia11", "MM_DL11"},
19899 {"DISPLAY_PORT1 Mixer", "MultiMedia12", "MM_DL12"},
19900 {"DISPLAY_PORT1 Mixer", "MultiMedia13", "MM_DL13"},
19901 {"DISPLAY_PORT1 Mixer", "MultiMedia14", "MM_DL14"},
19902 {"DISPLAY_PORT1 Mixer", "MultiMedia15", "MM_DL15"},
19903 {"DISPLAY_PORT1 Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019904 {"DISPLAY_PORT1 Mixer", "MultiMedia26", "MM_DL26"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070019905 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT1 Mixer"},
19906
Ralf Herzc8701f72018-06-20 11:37:35 +020019907 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19908 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19909 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19910 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19911 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19912 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19913 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19914 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19915 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19916 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19917 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19918 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19919 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19920 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19921 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19922 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019923 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020019924 {"PRI_SPDIF_RX", NULL, "PRI_SPDIF_RX Audio Mixer"},
19925
19926 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19927 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19928 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19929 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19930 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19931 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19932 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19933 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19934 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19935 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19936 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19937 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19938 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19939 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19940 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19941 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019942 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020019943 {"SEC_SPDIF_RX", NULL, "SEC_SPDIF_RX Audio Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019944
19945 /* incall */
19946 {"Incall_Music Audio Mixer", "MultiMedia1", "MM_DL1"},
19947 {"Incall_Music Audio Mixer", "MultiMedia2", "MM_DL2"},
19948 {"Incall_Music Audio Mixer", "MultiMedia5", "MM_DL5"},
19949 {"Incall_Music Audio Mixer", "MultiMedia9", "MM_DL9"},
19950 {"VOICE_PLAYBACK_TX", NULL, "Incall_Music Audio Mixer"},
19951 {"Incall_Music_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19952 {"Incall_Music_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19953 {"Incall_Music_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19954 {"Incall_Music_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19955 {"VOICE2_PLAYBACK_TX", NULL, "Incall_Music_2 Audio Mixer"},
19956 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19957 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19958 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19959 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19960 {"SLIMBUS_4_RX", NULL, "SLIMBUS_4_RX Audio Mixer"},
19961
19962 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19963 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19964 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19965 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19966 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19967 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19968 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19969 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19970 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19971 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19972 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19973 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19974 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19975 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19976 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19977 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019978 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019979 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Audio Mixer"},
19980
19981 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19982 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19983 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19984 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19985 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19986 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19987 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19988 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19989 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19990 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19991 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19992 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19993 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19994 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19995 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19996 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019997 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019998 {"SLIMBUS_7_RX", NULL, "SLIMBUS_7_RX Audio Mixer"},
19999
Surendar Karka3ef3d812018-09-28 18:52:35 +053020000 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20001 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20002 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20003 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20004 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20005 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20006 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20007 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20008 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20009 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20010 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20011 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20012 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20013 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20014 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20015 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20016 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
20017 {"SLIMBUS_9_RX", NULL, "SLIMBUS_9_RX Audio Mixer"},
20018
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020019 {"USB_AUDIO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20020 {"USB_AUDIO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20021 {"USB_AUDIO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20022 {"USB_AUDIO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20023 {"USB_AUDIO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20024 {"USB_AUDIO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20025 {"USB_AUDIO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20026 {"USB_AUDIO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20027 {"USB_AUDIO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20028 {"USB_AUDIO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20029 {"USB_AUDIO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20030 {"USB_AUDIO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20031 {"USB_AUDIO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20032 {"USB_AUDIO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20033 {"USB_AUDIO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20034 {"USB_AUDIO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020035 {"USB_AUDIO_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020036 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Audio Mixer"},
20037
20038 {"MultiMedia1 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
20039 {"MultiMedia4 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
20040 {"MultiMedia8 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
20041 {"MultiMedia1 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
20042 {"MultiMedia4 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
20043 {"MultiMedia8 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
20044 {"MultiMedia1 Mixer", "SLIM_4_TX", "SLIMBUS_4_TX"},
20045 {"MultiMedia1 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
20046 {"MultiMedia1 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
20047 {"MultiMedia1 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020048 {"MultiMedia1 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020049 {"MultiMedia8 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
20050 {"MultiMedia8 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020051 {"MultiMedia8 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020052 {"MultiMedia4 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20053 {"MultiMedia17 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20054 {"MultiMedia18 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20055 {"MultiMedia19 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020056 {"MultiMedia28 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20057 {"MultiMedia29 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020058 {"MultiMedia8 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20059 {"MultiMedia2 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20060 {"MultiMedia4 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20061 {"MultiMedia17 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20062 {"MultiMedia18 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20063 {"MultiMedia19 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020064 {"MultiMedia28 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20065 {"MultiMedia29 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020066 {"MultiMedia8 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020067 {"MultiMedia18 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020068 {"MultiMedia17 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20069 {"MultiMedia18 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20070 {"MultiMedia19 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20071 {"MultiMedia28 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20072 {"MultiMedia29 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20073 {"MultiMedia17 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020074 {"MultiMedia18 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020075 {"MultiMedia19 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20076 {"MultiMedia28 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20077 {"MultiMedia29 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020078 {"MultiMedia8 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20079 {"MultiMedia3 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20080 {"MultiMedia5 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020081 {"MultiMedia10 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020082 {"MultiMedia16 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020083 {"MultiMedia5 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
20084 {"MultiMedia5 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020085 {"MultiMedia5 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020086 {"MultiMedia10 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020087 {"MultiMedia10 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020088 {"MultiMedia18 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20089 {"MultiMedia18 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
20090
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020091 {"MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20092 {"MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20093 {"MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20094 {"MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20095 {"MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20096 {"MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20097 {"MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20098 {"MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20099 {"MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20100 {"MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20101 {"MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20102 {"MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20103 {"MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20104 {"MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20105 {"MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20106 {"MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020107 {"MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020108 {"MI2S_RX", NULL, "MI2S_RX Audio Mixer"},
20109
20110 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20111 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20112 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20113 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20114 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20115 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20116 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20117 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20118 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20119 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20120 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20121 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20122 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20123 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20124 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020125 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020126 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Audio Mixer"},
20127
20128 {"TERT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20129 {"TERT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20130 {"TERT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20131 {"TERT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20132 {"TERT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20133 {"TERT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20134 {"TERT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20135 {"TERT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20136 {"TERT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20137 {"TERT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20138 {"TERT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20139 {"TERT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20140 {"TERT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20141 {"TERT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020142 {"TERT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020143 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Audio Mixer"},
20144
20145 {"SEC_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20146 {"SEC_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20147 {"SEC_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20148 {"SEC_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20149 {"SEC_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20150 {"SEC_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20151 {"SEC_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20152 {"SEC_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20153 {"SEC_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20154 {"SEC_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20155 {"SEC_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20156 {"SEC_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20157 {"SEC_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20158 {"SEC_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020159 {"SEC_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020160 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Audio Mixer"},
20161
20162 {"SEC_MI2S_RX_SD1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20163 {"SEC_MI2S_RX_SD1", NULL, "SEC_MI2S_RX_SD1 Audio Mixer"},
20164
20165 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20166 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20167
20168 {"PRI_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20169 {"PRI_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20170 {"PRI_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20171 {"PRI_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20172 {"PRI_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20173 {"PRI_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20174 {"PRI_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20175 {"PRI_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20176 {"PRI_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20177 {"PRI_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20178 {"PRI_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20179 {"PRI_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20180 {"PRI_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20181 {"PRI_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20182 {"PRI_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020183 {"PRI_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020184 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Audio Mixer"},
20185
20186 {"INT0_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20187 {"INT0_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20188 {"INT0_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20189 {"INT0_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20190 {"INT0_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20191 {"INT0_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20192 {"INT0_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20193 {"INT0_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20194 {"INT0_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20195 {"INT0_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20196 {"INT0_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20197 {"INT0_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20198 {"INT0_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20199 {"INT0_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20200 {"INT0_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20201 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Audio Mixer"},
20202
20203 {"INT4_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20204 {"INT4_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20205 {"INT4_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20206 {"INT4_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20207 {"INT4_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20208 {"INT4_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20209 {"INT4_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20210 {"INT4_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20211 {"INT4_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20212 {"INT4_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20213 {"INT4_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20214 {"INT4_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20215 {"INT4_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20216 {"INT4_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20217 {"INT4_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20218 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Audio Mixer"},
20219
20220 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20221 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20222 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20223 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20224 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20225 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20226 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20227 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20228 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20229 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20230 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20231 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20232 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20233 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20234 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20235 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20236 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20237 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Audio Mixer"},
20238
20239 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20240 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20241 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20242 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20243 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20244 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20245 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20246 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20247 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20248 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20249 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20250 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20251 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20252 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20253 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20254 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020255 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020256 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Audio Mixer"},
20257
20258 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20259 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20260 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20261 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20262 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20263 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20264 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20265 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20266 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20267 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20268 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20269 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20270 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20271 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20272 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20273 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020274 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020275 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Audio Mixer"},
20276
20277 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20278 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20279 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20280 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20281 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20282 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20283 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20284 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20285 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20286 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20287 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20288 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20289 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20290 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20291 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20292 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020293 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020294 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Audio Mixer"},
20295
20296 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20297 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20298 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20299 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20300 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20301 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20302 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20303 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20304 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20305 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20306 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20307 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20308 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20309 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20310 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20311 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020312 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020313 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Audio Mixer"},
20314
20315 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20316 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20317 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20318 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20319 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20320 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20321 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20322 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20323 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20324 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20325 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20326 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20327 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20328 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20329 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20330 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20331 {"PRI_TDM_TX_0", NULL, "PRI_TDM_TX_0 Audio Mixer"},
20332
20333 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20334 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20335 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20336 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20337 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20338 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20339 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20340 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20341 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20342 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20343 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20344 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20345 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20346 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20347 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20348 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020349 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020350 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Audio Mixer"},
20351
20352 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20353 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20354 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20355 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20356 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20357 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20358 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20359 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20360 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20361 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20362 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20363 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20364 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20365 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20366 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20367 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020368 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020369 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Audio Mixer"},
20370
20371 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20372 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20373 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20374 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20375 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20376 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20377 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20378 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20379 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20380 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20381 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20382 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20383 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20384 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20385 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20386 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020387 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020388 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Audio Mixer"},
20389
20390 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20391 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20392 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20393 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20394 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20395 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20396 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20397 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20398 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20399 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20400 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20401 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20402 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20403 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20404 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20405 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020406 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020407 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Audio Mixer"},
20408
20409 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20410 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20411 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20412 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20413 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20414 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20415 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20416 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20417 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20418 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20419 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20420 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20421 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20422 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20423 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20424 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20425 {"SEC_TDM_TX_0", NULL, "SEC_TDM_TX_0 Audio Mixer"},
20426
20427 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20428 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20429 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20430 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20431 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20432 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20433 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20434 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20435 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20436 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20437 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20438 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20439 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20440 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20441 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20442 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020443 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020444 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Audio Mixer"},
20445
20446 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20447 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20448 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20449 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20450 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20451 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20452 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20453 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20454 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20455 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20456 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20457 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20458 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20459 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20460 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20461 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20462 {"TERT_TDM_TX_0", NULL, "TERT_TDM_TX_0 Audio Mixer"},
20463
20464 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20465 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20466 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20467 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20468 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20469 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20470 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20471 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20472 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20473 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20474 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20475 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20476 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20477 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20478 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20479 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020480 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020481 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Audio Mixer"},
20482
20483 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20484 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20485 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20486 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20487 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20488 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20489 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20490 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20491 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20492 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20493 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20494 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20495 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20496 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20497 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20498 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020499 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020500 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Audio Mixer"},
20501
20502 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20503 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20504 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20505 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20506 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20507 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20508 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20509 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20510 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20511 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20512 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20513 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20514 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20515 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20516 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20517 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020518 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020519 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Audio Mixer"},
20520
20521 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
20522 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
20523 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
20524 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
20525 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
20526 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
20527 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
20528 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
20529 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
20530 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
20531 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
20532 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
20533 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
20534 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
20535 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
20536 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020537 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020538 {"TERT_TDM_RX_4", NULL, "TERT_TDM_RX_4 Audio Mixer"},
20539
20540 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20541 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20542 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20543 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20544 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20545 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20546 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20547 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20548 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20549 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20550 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20551 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20552 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20553 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20554 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20555 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20556 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020557 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020558 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Audio Mixer"},
20559
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020560 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20561 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20562 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20563 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20564 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20565 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20566 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20567 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20568 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20569 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20570 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20571 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20572 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20573 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20574 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20575 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20576 {"QUAT_TDM_TX_0", NULL, "QUAT_TDM_TX_0 Audio Mixer"},
20577
20578 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20579 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20580 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20581 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20582 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20583 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20584 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20585 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20586 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20587 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20588 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20589 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20590 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20591 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20592 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20593 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
20594 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020595 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020596 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Audio Mixer"},
20597
20598 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20599 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20600 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20601 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20602 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20603 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20604 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20605 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20606 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20607 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20608 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20609 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20610 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20611 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20612 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20613 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
20614 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020615 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020616 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Audio Mixer"},
20617
20618 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20619 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20620 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20621 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20622 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20623 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20624 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20625 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20626 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20627 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20628 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20629 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20630 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20631 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20632 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20633 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
20634 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020635 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020636 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Audio Mixer"},
20637
Rohit Kumara5077932017-09-10 22:05:05 +053020638 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20639 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20640 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20641 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20642 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20643 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20644 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20645 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20646 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20647 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20648 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20649 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20650 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20651 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20652 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20653 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20654 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020655 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053020656 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Audio Mixer"},
20657
20658 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20659 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20660 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20661 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20662 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20663 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20664 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20665 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20666 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20667 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20668 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20669 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20670 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20671 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20672 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20673 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20674 {"QUIN_TDM_TX_0", NULL, "QUIN_TDM_TX_0 Audio Mixer"},
20675
20676 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20677 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20678 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20679 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20680 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20681 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20682 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20683 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20684 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20685 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20686 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20687 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20688 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20689 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20690 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20691 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
20692 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020693 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053020694 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Audio Mixer"},
20695
20696 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20697 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20698 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20699 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20700 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20701 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20702 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20703 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20704 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20705 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20706 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20707 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20708 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20709 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20710 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20711 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
20712 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020713 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053020714 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Audio Mixer"},
20715
20716 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20717 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20718 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20719 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20720 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20721 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20722 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20723 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20724 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20725 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20726 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20727 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20728 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20729 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20730 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20731 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
20732 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020733 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053020734 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Audio Mixer"},
20735
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020736 {"MultiMedia1 Mixer", "PRI_TX", "PRI_I2S_TX"},
20737 {"MultiMedia1 Mixer", "MI2S_TX", "MI2S_TX"},
20738 {"MultiMedia2 Mixer", "MI2S_TX", "MI2S_TX"},
20739 {"MultiMedia3 Mixer", "MI2S_TX", "MI2S_TX"},
20740 {"MultiMedia5 Mixer", "MI2S_TX", "MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020741 {"MultiMedia10 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020742 {"MultiMedia16 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020743 {"MultiMedia1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20744 {"MultiMedia2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20745 {"MultiMedia6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20746 {"MultiMedia1 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
20747 {"MultiMedia2 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
20748 {"MultiMedia1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20749 {"MultiMedia2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20750 {"MultiMedia1 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20751 {"MultiMedia2 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20752 {"MultiMedia1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20753 {"MultiMedia2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20754 {"MultiMedia1 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20755 {"MultiMedia1 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
20756 {"MultiMedia3 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
20757 {"MultiMedia5 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020758 {"MultiMedia10 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020759 {"MultiMedia1 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
20760 {"MultiMedia3 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
20761 {"MultiMedia5 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020762 {"MultiMedia10 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020763 {"MultiMedia16 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
20764 {"MultiMedia16 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020765 {"MultiMedia1 Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
20766 {"MultiMedia3 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
20767 {"MultiMedia5 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020768 {"MultiMedia10 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020769 {"MultiMedia1 Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
20770 {"MultiMedia3 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
20771 {"MultiMedia5 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020772 {"MultiMedia10 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020773 {"MultiMedia16 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020774 {"MultiMedia1 Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
20775 {"MultiMedia3 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
20776 {"MultiMedia5 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020777 {"MultiMedia2 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20778 {"MultiMedia2 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
20779 {"MultiMedia2 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
20780 {"MultiMedia2 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
20781 {"MultiMedia1 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20782 {"MultiMedia1 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20783 {"MultiMedia2 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20784 {"MultiMedia6 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20785 {"MultiMedia6 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20786 {"MultiMedia3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20787 {"MultiMedia5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020788 {"MultiMedia10 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020789 {"MultiMedia6 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20790 {"MultiMedia3 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20791 {"MultiMedia5 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020792 {"MultiMedia10 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020793 {"MultiMedia16 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020794 {"MultiMedia6 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20795 {"MultiMedia3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20796 {"MultiMedia5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020797 {"MultiMedia10 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020798 {"MultiMedia16 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020799 {"MultiMedia17 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20800 {"MultiMedia18 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20801 {"MultiMedia19 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20802 {"MultiMedia28 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20803 {"MultiMedia29 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020804 {"MultiMedia6 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20805 {"MultiMedia6 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
20806 {"MultiMedia6 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
20807 {"MultiMedia6 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020808 {"MultiMedia6 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020809
20810 {"MultiMedia1 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20811 {"MultiMedia1 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20812 {"MultiMedia1 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20813 {"MultiMedia1 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20814 {"MultiMedia1 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20815 {"MultiMedia1 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20816 {"MultiMedia1 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20817 {"MultiMedia1 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20818 {"MultiMedia1 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20819 {"MultiMedia1 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20820 {"MultiMedia1 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20821 {"MultiMedia1 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20822 {"MultiMedia1 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20823 {"MultiMedia1 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20824 {"MultiMedia1 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20825 {"MultiMedia1 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053020826 {"MultiMedia1 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020827 {"MultiMedia1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20828 {"MultiMedia1 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20829 {"MultiMedia1 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20830 {"MultiMedia1 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020831 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20832 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20833 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20834 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20835 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020836 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20837 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20838 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20839 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20840 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20841 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020842 {"MultiMedia1 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20843 {"MultiMedia1 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020844
20845 {"MultiMedia2 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20846 {"MultiMedia2 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20847 {"MultiMedia2 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20848 {"MultiMedia2 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20849 {"MultiMedia2 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20850 {"MultiMedia2 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20851 {"MultiMedia2 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20852 {"MultiMedia2 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20853 {"MultiMedia2 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20854 {"MultiMedia2 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20855 {"MultiMedia2 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20856 {"MultiMedia2 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20857 {"MultiMedia2 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20858 {"MultiMedia2 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20859 {"MultiMedia2 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20860 {"MultiMedia2 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053020861 {"MultiMedia2 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020862 {"MultiMedia2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20863 {"MultiMedia2 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20864 {"MultiMedia2 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20865 {"MultiMedia2 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020866 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20867 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20868 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20869 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20870 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020871 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20872 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20873 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20874 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20875 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20876 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020877 {"MultiMedia2 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20878 {"MultiMedia2 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020879
20880 {"MultiMedia3 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20881 {"MultiMedia3 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20882 {"MultiMedia3 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20883 {"MultiMedia3 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20884 {"MultiMedia3 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20885 {"MultiMedia3 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20886 {"MultiMedia3 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20887 {"MultiMedia3 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20888 {"MultiMedia3 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20889 {"MultiMedia3 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20890 {"MultiMedia3 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20891 {"MultiMedia3 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20892 {"MultiMedia3 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20893 {"MultiMedia3 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20894 {"MultiMedia3 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20895 {"MultiMedia3 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053020896 {"MultiMedia3 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020897 {"MultiMedia3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20898 {"MultiMedia3 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20899 {"MultiMedia3 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20900 {"MultiMedia3 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020901 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20902 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20903 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20904 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20905 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020906 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20907 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20908 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20909 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20910 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20911 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020912 {"MultiMedia3 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20913 {"MultiMedia3 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020914
20915 {"MultiMedia4 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20916 {"MultiMedia4 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20917 {"MultiMedia4 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20918 {"MultiMedia4 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20919 {"MultiMedia4 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20920 {"MultiMedia4 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20921 {"MultiMedia4 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20922 {"MultiMedia4 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20923 {"MultiMedia4 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20924 {"MultiMedia4 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20925 {"MultiMedia4 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20926 {"MultiMedia4 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20927 {"MultiMedia4 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20928 {"MultiMedia4 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20929 {"MultiMedia4 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20930 {"MultiMedia4 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053020931 {"MultiMedia4 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020932 {"MultiMedia4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20933 {"MultiMedia4 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20934 {"MultiMedia4 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20935 {"MultiMedia4 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020936 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20937 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20938 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20939 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20940 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020941 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20942 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20943 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20944 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20945 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20946 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020947 {"MultiMedia4 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20948 {"MultiMedia4 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020949
20950 {"MultiMedia5 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20951 {"MultiMedia5 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20952 {"MultiMedia5 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20953 {"MultiMedia5 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20954 {"MultiMedia5 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20955 {"MultiMedia5 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20956 {"MultiMedia5 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20957 {"MultiMedia5 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20958 {"MultiMedia5 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20959 {"MultiMedia5 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20960 {"MultiMedia5 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20961 {"MultiMedia5 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20962 {"MultiMedia5 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20963 {"MultiMedia5 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20964 {"MultiMedia5 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20965 {"MultiMedia5 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053020966 {"MultiMedia5 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020967 {"MultiMedia5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20968 {"MultiMedia5 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20969 {"MultiMedia5 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20970 {"MultiMedia5 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020971 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20972 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20973 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20974 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20975 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020976 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20977 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20978 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20979 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20980 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20981 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020982 {"MultiMedia5 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20983 {"MultiMedia5 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020984
20985 {"MultiMedia6 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20986 {"MultiMedia6 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20987 {"MultiMedia6 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20988 {"MultiMedia6 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20989 {"MultiMedia6 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20990 {"MultiMedia6 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20991 {"MultiMedia6 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20992 {"MultiMedia6 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20993 {"MultiMedia6 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20994 {"MultiMedia6 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20995 {"MultiMedia6 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20996 {"MultiMedia6 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20997 {"MultiMedia6 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20998 {"MultiMedia6 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20999 {"MultiMedia6 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21000 {"MultiMedia6 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021001 {"MultiMedia6 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021002 {"MultiMedia6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21003 {"MultiMedia6 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21004 {"MultiMedia6 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21005 {"MultiMedia6 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021006 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21007 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21008 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21009 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21010 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021011 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21012 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21013 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21014 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21015 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21016 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021017 {"MultiMedia6 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21018 {"MultiMedia6 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021019
21020 {"MultiMedia8 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21021 {"MultiMedia8 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21022 {"MultiMedia8 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21023 {"MultiMedia8 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21024 {"MultiMedia8 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21025 {"MultiMedia8 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21026 {"MultiMedia8 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21027 {"MultiMedia8 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21028 {"MultiMedia8 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21029 {"MultiMedia8 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21030 {"MultiMedia8 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21031 {"MultiMedia8 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21032 {"MultiMedia8 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21033 {"MultiMedia8 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21034 {"MultiMedia8 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21035 {"MultiMedia8 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021036 {"MultiMedia8 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021037 {"MultiMedia8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21038 {"MultiMedia8 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21039 {"MultiMedia8 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21040 {"MultiMedia8 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021041 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21042 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21043 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21044 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21045 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021046 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21047 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21048 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21049 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21050 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21051 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021052 {"MultiMedia8 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21053 {"MultiMedia8 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021054
21055 {"MultiMedia9 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21056 {"MultiMedia9 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21057 {"MultiMedia9 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21058 {"MultiMedia9 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21059 {"MultiMedia9 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21060 {"MultiMedia9 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21061 {"MultiMedia9 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21062 {"MultiMedia9 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021063 {"MultiMedia9 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21064 {"MultiMedia9 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21065 {"MultiMedia9 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21066 {"MultiMedia9 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021067 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21068 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21069 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21070 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21071 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021072 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21073 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21074 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21075 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21076 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21077 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021078 {"MultiMedia9 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21079 {"MultiMedia9 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021080 {"MultiMedia9 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021081
Laxminath Kasam38070be2017-08-17 18:21:59 +053021082 {"MultiMedia10 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21083 {"MultiMedia10 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21084 {"MultiMedia10 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21085 {"MultiMedia10 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21086 {"MultiMedia10 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21087 {"MultiMedia10 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21088 {"MultiMedia10 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21089 {"MultiMedia10 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021090 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21091 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21092 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21093 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21094 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21095 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021096 {"MultiMedia10 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021097
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021098 {"MultiMedia20 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21099 {"MultiMedia20 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21100 {"MultiMedia20 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21101 {"MultiMedia20 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021102 {"MultiMedia20 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021103 {"MultiMedia20 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21104 {"MultiMedia20 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21105 {"MultiMedia20 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21106 {"MultiMedia20 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21107 {"MultiMedia20 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21108 {"MultiMedia20 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21109 {"MultiMedia20 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21110 {"MultiMedia20 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21111 {"MultiMedia20 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21112 {"MultiMedia20 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21113 {"MultiMedia20 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21114 {"MultiMedia20 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21115 {"MultiMedia20 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21116 {"MultiMedia20 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21117 {"MultiMedia20 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21118 {"MultiMedia20 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021119 {"MultiMedia20 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21120 {"MultiMedia20 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21121 {"MultiMedia20 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21122 {"MultiMedia20 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021123 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21124 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21125 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21126 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21127 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021128 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21129 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21130 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21131 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21132 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21133 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021134 {"MultiMedia20 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21135 {"MultiMedia20 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021136 {"MultiMedia20 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021137
Derek Chen07c6d1c2018-07-05 10:39:25 -070021138 {"MultiMedia21 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21139 {"MultiMedia21 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21140 {"MultiMedia21 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21141 {"MultiMedia21 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21142 {"MultiMedia21 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21143 {"MultiMedia21 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21144 {"MultiMedia21 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21145 {"MultiMedia21 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21146 {"MultiMedia21 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21147 {"MultiMedia21 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21148 {"MultiMedia21 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21149 {"MultiMedia21 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21150 {"MultiMedia21 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21151 {"MultiMedia21 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21152 {"MultiMedia21 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21153 {"MultiMedia21 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21154 {"MultiMedia21 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21155 {"MultiMedia21 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21156 {"MultiMedia21 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21157 {"MultiMedia21 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21158 {"MultiMedia21 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21159 {"MultiMedia21 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053021160 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21161 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21162 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21163 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21164 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
21165 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21166 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21167 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21168 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21169 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21170 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
21171 {"MultiMedia21 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21172 {"MultiMedia21 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021173 {"MultiMedia21 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021174
Surendar Karkac1cde372018-08-14 18:56:24 +053021175 {"MultiMedia27 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21176 {"MultiMedia27 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
21177 {"MultiMedia27 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053021178 {"MultiMedia27 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021179 {"MultiMedia27 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21180 {"MultiMedia27 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21181 {"MultiMedia27 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21182 {"MultiMedia27 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21183 {"MultiMedia27 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
21184 {"MultiMedia27 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21185 {"MultiMedia27 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021186 {"MultiMedia27 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021187
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021188 {"MultiMedia1 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21189 {"MultiMedia2 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21190 {"MultiMedia4 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21191 {"MultiMedia5 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21192 {"MultiMedia6 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21193 {"MultiMedia8 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021194 {"MultiMedia10 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021195
Asish Bhattacharya34504582017-08-08 12:55:01 +053021196 {"MultiMedia16 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21197 {"MultiMedia16 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21198 {"MultiMedia16 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21199 {"MultiMedia16 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21200 {"MultiMedia16 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21201 {"MultiMedia16 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21202 {"MultiMedia16 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21203 {"MultiMedia16 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21204 {"MultiMedia16 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21205 {"MultiMedia16 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21206 {"MultiMedia16 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21207 {"MultiMedia16 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21208 {"MultiMedia16 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21209 {"MultiMedia16 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21210 {"MultiMedia16 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21211 {"MultiMedia16 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21212 {"MultiMedia16 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021213 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21214 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21215 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21216 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21217 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021218 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21219 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21220 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21221 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21222 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21223 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021224 {"MultiMedia16 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21225 {"MultiMedia16 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021226 {"MultiMedia16 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021227
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021228 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21229 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21230 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21231 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21232 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21233 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021234 {"MultiMedia17 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021235
21236 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21237 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21238 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21239 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21240 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21241 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021242 {"MultiMedia18 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021243
21244 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21245 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21246 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21247 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21248 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21249 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021250 {"MultiMedia19 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021251
21252 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21253 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21254 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21255 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21256 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21257 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021258 {"MultiMedia28 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021259
21260 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21261 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21262 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21263 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21264 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21265 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021266 {"MultiMedia29 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021267
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021268 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21269 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21270 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21271 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21272 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21273 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21274 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21275 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21276 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21277 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21278 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21279 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21280 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21281 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21282 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21283 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21284 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
21285 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Audio Mixer"},
21286
21287 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21288 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21289 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21290 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21291 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21292 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21293 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21294 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21295 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21296 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21297 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21298 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21299 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21300 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21301 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21302 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21303 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
21304 {"INT_BT_A2DP_RX", NULL, "INTERNAL_A2DP_RX Audio Mixer"},
21305
21306 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21307 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21308 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21309 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21310 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21311 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21312 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21313 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21314 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21315 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21316 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21317 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21318 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21319 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21320 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21321 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21322 {"INT_FM_RX", NULL, "INTERNAL_FM_RX Audio Mixer"},
21323
21324 {"AFE_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21325 {"AFE_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21326 {"AFE_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21327 {"AFE_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21328 {"AFE_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21329 {"AFE_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21330 {"AFE_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21331 {"AFE_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21332 {"AFE_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21333 {"AFE_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21334 {"AFE_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21335 {"AFE_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21336 {"AFE_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21337 {"AFE_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21338 {"AFE_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21339 {"AFE_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21340 {"PCM_RX", NULL, "AFE_PCM_RX Audio Mixer"},
21341
21342 {"MultiMedia1 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21343 {"MultiMedia3 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21344 {"MultiMedia4 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021345 {"MultiMedia10 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021346 {"MultiMedia17 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21347 {"MultiMedia18 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21348 {"MultiMedia19 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021349 {"MultiMedia28 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21350 {"MultiMedia29 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021351 {"MultiMedia5 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21352 {"MultiMedia8 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021353 {"MultiMedia16 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021354 {"MultiMedia1 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21355 {"MultiMedia4 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021356 {"MultiMedia16 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021357 {"MultiMedia17 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21358 {"MultiMedia18 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21359 {"MultiMedia19 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021360 {"MultiMedia28 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21361 {"MultiMedia29 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021362 {"MultiMedia5 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21363 {"MultiMedia6 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21364 {"MultiMedia8 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21365
21366 {"MultiMedia1 Mixer", "AFE_PCM_TX", "PCM_TX"},
21367 {"MultiMedia3 Mixer", "AFE_PCM_TX", "PCM_TX"},
21368 {"MultiMedia4 Mixer", "AFE_PCM_TX", "PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021369 {"MultiMedia10 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021370 {"MultiMedia17 Mixer", "AFE_PCM_TX", "PCM_TX"},
21371 {"MultiMedia18 Mixer", "AFE_PCM_TX", "PCM_TX"},
21372 {"MultiMedia19 Mixer", "AFE_PCM_TX", "PCM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021373 {"MultiMedia28 Mixer", "AFE_PCM_TX", "PCM_TX"},
21374 {"MultiMedia29 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021375 {"MultiMedia5 Mixer", "AFE_PCM_TX", "PCM_TX"},
21376 {"MultiMedia8 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021377 {"MultiMedia16 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021378 {"MM_UL1", NULL, "MultiMedia1 Mixer"},
21379 {"MultiMedia2 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21380 {"MM_UL2", NULL, "MultiMedia2 Mixer"},
21381 {"MM_UL3", NULL, "MultiMedia3 Mixer"},
21382 {"MM_UL4", NULL, "MultiMedia4 Mixer"},
21383 {"MM_UL5", NULL, "MultiMedia5 Mixer"},
21384 {"MM_UL6", NULL, "MultiMedia6 Mixer"},
21385 {"MM_UL8", NULL, "MultiMedia8 Mixer"},
21386 {"MM_UL9", NULL, "MultiMedia9 Mixer"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021387 {"MM_UL10", NULL, "MultiMedia10 Mixer"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021388 {"MM_UL16", NULL, "MultiMedia16 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021389 {"MM_UL17", NULL, "MultiMedia17 Mixer"},
21390 {"MM_UL18", NULL, "MultiMedia18 Mixer"},
21391 {"MM_UL19", NULL, "MultiMedia19 Mixer"},
21392 {"MM_UL20", NULL, "MultiMedia20 Mixer"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021393 {"MM_UL21", NULL, "MultiMedia21 Mixer"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021394 {"MM_UL27", NULL, "MultiMedia27 Mixer"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021395 {"MM_UL28", NULL, "MultiMedia28 Mixer"},
21396 {"MM_UL29", NULL, "MultiMedia29 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021397
21398 {"AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21399 {"AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21400 {"AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21401 {"AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21402 {"AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21403 {"AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21404 {"AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21405 {"AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21406 {"AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21407 {"AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21408 {"AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21409 {"AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21410 {"AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21411 {"AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21412 {"AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21413 {"AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021414 {"AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021415 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Audio Mixer"},
21416
21417 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21418 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21419 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21420 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21421 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21422 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21423 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21424 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21425 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21426 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21427 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21428 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21429 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21430 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21431 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21432 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021433 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021434 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX Audio Mixer"},
21435
21436 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21437 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21438 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21439 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21440 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21441 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21442 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21443 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21444 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21445 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21446 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21447 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21448 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21449 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21450 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21451 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21452 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX Audio Mixer"},
21453
21454 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21455 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21456 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21457 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21458 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21459 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21460 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21461 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21462 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21463 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21464 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21465 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21466 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21467 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21468 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21469 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21470 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX Audio Mixer"},
21471
Rohit Kumara5077932017-09-10 22:05:05 +053021472 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21473 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21474 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21475 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21476 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21477 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21478 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21479 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21480 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21481 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21482 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21483 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21484 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21485 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21486 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21487 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21488 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX Audio Mixer"},
21489
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021490 {"PRI_RX_Voice Mixer", "Voip", "VOIP_DL"},
21491 {"PRI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21492 {"PRI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21493 {"PRI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21494 {"PRI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21495 {"PRI_I2S_RX", NULL, "PRI_RX_Voice Mixer"},
21496
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021497 {"SEC_RX_Voice Mixer", "Voip", "VOIP_DL"},
21498 {"SEC_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21499 {"SEC_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21500 {"SEC_I2S_RX", NULL, "SEC_RX_Voice Mixer"},
21501
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021502 {"SEC_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
21503 {"SEC_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21504 {"SEC_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21505 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21506 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21507 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_Voice Mixer"},
21508
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021509 {"SLIM_0_RX_Voice Mixer", "Voip", "VOIP_DL"},
21510 {"SLIM_0_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021511 {"SLIM_0_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21512 {"SLIM_0_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21513 {"SLIM_0_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21514 {"SLIMBUS_0_RX", NULL, "SLIM_0_RX_Voice Mixer"},
21515
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021516 {"SLIM_6_RX_Voice Mixer", "Voip", "VOIP_DL"},
21517 {"SLIM_6_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021518 {"SLIM_6_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21519 {"SLIM_6_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21520 {"SLIM_6_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21521 {"SLIMBUS_6_RX", NULL, "SLIM_6_RX_Voice Mixer"},
21522
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021523 {"USB_AUDIO_RX_Voice Mixer", "Voip", "VOIP_DL"},
21524 {"USB_AUDIO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021525 {"USB_AUDIO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21526 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21527 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21528 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX_Voice Mixer"},
21529
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080021530 {"DISPLAY_PORT_RX_Voice Mixer", "Voip", "VOIP_DL"},
21531 {"DISPLAY_PORT_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080021532 {"DISPLAY_PORT_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21533 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21534 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21535 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX_Voice Mixer"},
21536
Karthikeyan Mani57550082018-05-03 18:43:58 -070021537 {"DISPLAY_PORT_RX1_Voice Mixer", "Voip", "VOIP_DL"},
21538 {"DISPLAY_PORT_RX1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21539 {"DISPLAY_PORT_RX1_Voice Mixer", "QCHAT", "QCHAT_DL"},
21540 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21541 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21542 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1_Voice Mixer"},
21543
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021544 {"INTERNAL_BT_SCO_RX_Voice Mixer", "Voip", "VOIP_DL"},
21545 {"INTERNAL_BT_SCO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21546 {"INTERNAL_BT_SCO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21547 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21548 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021549 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX_Voice Mixer"},
21550
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021551 {"AFE_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21552 {"AFE_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21553 {"AFE_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21554 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21555 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21556 {"PCM_RX", NULL, "AFE_PCM_RX_Voice Mixer"},
21557
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021558 {"AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21559 {"AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021560 {"AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21561 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21562 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21563 {"AUX_PCM_RX", NULL, "AUX_PCM_RX_Voice Mixer"},
21564
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021565 {"SEC_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21566 {"SEC_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021567 {"SEC_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21568 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21569 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21570 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX_Voice Mixer"},
21571
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021572 {"TERT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21573 {"TERT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021574 {"TERT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21575 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21576 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21577 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX_Voice Mixer"},
21578
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021579 {"QUAT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21580 {"QUAT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021581 {"QUAT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21582 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21583 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21584 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX_Voice Mixer"},
21585
Rohit Kumara5077932017-09-10 22:05:05 +053021586 {"QUIN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21587 {"QUIN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053021588 {"QUIN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21589 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21590 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21591 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX_Voice Mixer"},
21592
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021593 {"HDMI_RX_Voice Mixer", "Voip", "VOIP_DL"},
21594 {"HDMI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21595 {"HDMI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21596 {"HDMI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21597 {"HDMI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21598 {"HDMI", NULL, "HDMI_RX_Voice Mixer"},
21599 {"HDMI", NULL, "HDMI_DL_HL"},
21600
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021601 {"MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021602 {"MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21603 {"MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21604 {"MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
kunleiz8a60b822017-10-11 15:04:02 +080021605 {"MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021606 {"MI2S_RX", NULL, "MI2S_RX_Voice Mixer"},
21607
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021608 {"PRI_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021609 {"PRI_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21610 {"PRI_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21611 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21612 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21613 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_Voice Mixer"},
21614
21615 {"INT0_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
21616 {"INT0_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21617 {"INT0_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21618 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21619 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21620 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_Voice Mixer"},
21621
21622 {"INT4_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
21623 {"INT4_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21624 {"INT4_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21625 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21626 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21627 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_Voice Mixer"},
21628
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021629 {"TERT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021630 {"TERT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21631 {"TERT_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21632 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21633 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21634 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_Voice Mixer"},
21635
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021636 {"QUAT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021637 {"QUAT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21638 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21639 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21640 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_Voice Mixer"},
21641
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021642 {"QUIN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021643 {"QUIN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21644 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21645 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21646 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_Voice Mixer"},
21647
21648 {"QUAT_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21649 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_Voice Mixer"},
21650
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053021651 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21652 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21653 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_Voice Mixer"},
21654
21655 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21656 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21657 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_Voice Mixer"},
21658
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021659 {"VOC_EXT_EC MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21660 {"VOC_EXT_EC MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21661 {"VOC_EXT_EC MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21662 {"VOC_EXT_EC MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021663 {"VOC_EXT_EC MUX", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021664 {"VOC_EXT_EC MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
Karthikeyan Mania1eb9382018-07-25 10:52:58 -070021665 {"VOC_EXT_EC MUX", "SEC_TDM_TX", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021666 {"VOIP_UL", NULL, "VOC_EXT_EC MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021667 {"VOICEMMODE1_UL", NULL, "VOC_EXT_EC MUX"},
21668 {"VOICEMMODE2_UL", NULL, "VOC_EXT_EC MUX"},
21669
21670 {"AUDIO_REF_EC_UL1 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21671 {"AUDIO_REF_EC_UL1 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21672 {"AUDIO_REF_EC_UL1 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21673 {"AUDIO_REF_EC_UL1 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21674 {"AUDIO_REF_EC_UL1 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
21675 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21676 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
21677 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
21678 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
21679 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070021680 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
21681 {"AUDIO_REF_EC_UL1 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021682
21683 {"AUDIO_REF_EC_UL2 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21684 {"AUDIO_REF_EC_UL2 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21685 {"AUDIO_REF_EC_UL2 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21686 {"AUDIO_REF_EC_UL2 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21687
21688 {"AUDIO_REF_EC_UL3 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21689 {"AUDIO_REF_EC_UL3 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21690 {"AUDIO_REF_EC_UL3 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21691 {"AUDIO_REF_EC_UL3 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21692
21693 {"AUDIO_REF_EC_UL4 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21694 {"AUDIO_REF_EC_UL4 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21695 {"AUDIO_REF_EC_UL4 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21696 {"AUDIO_REF_EC_UL4 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21697
21698 {"AUDIO_REF_EC_UL5 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21699 {"AUDIO_REF_EC_UL5 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21700 {"AUDIO_REF_EC_UL5 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21701 {"AUDIO_REF_EC_UL5 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21702
21703 {"AUDIO_REF_EC_UL6 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21704 {"AUDIO_REF_EC_UL6 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21705 {"AUDIO_REF_EC_UL6 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21706 {"AUDIO_REF_EC_UL6 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21707
21708 {"AUDIO_REF_EC_UL8 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21709 {"AUDIO_REF_EC_UL8 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21710 {"AUDIO_REF_EC_UL8 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21711 {"AUDIO_REF_EC_UL8 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21712
21713 {"AUDIO_REF_EC_UL9 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21714 {"AUDIO_REF_EC_UL9 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21715 {"AUDIO_REF_EC_UL9 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21716 {"AUDIO_REF_EC_UL9 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21717
Laxminath Kasam38070be2017-08-17 18:21:59 +053021718 {"AUDIO_REF_EC_UL10 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21719 {"AUDIO_REF_EC_UL10 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21720 {"AUDIO_REF_EC_UL10 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21721 {"AUDIO_REF_EC_UL10 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21722 {"AUDIO_REF_EC_UL10 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
21723 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21724 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
21725 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
21726 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
21727 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070021728 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
21729 {"AUDIO_REF_EC_UL10 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Vikram Panduranga016c49f2017-09-11 15:15:56 -070021730
21731 {"AUDIO_REF_EC_UL16 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21732 {"AUDIO_REF_EC_UL16 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21733 {"AUDIO_REF_EC_UL16 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21734 {"AUDIO_REF_EC_UL16 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21735
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021736 {"AUDIO_REF_EC_UL17 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21737 {"AUDIO_REF_EC_UL17 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21738 {"AUDIO_REF_EC_UL17 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21739 {"AUDIO_REF_EC_UL17 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21740
21741 {"AUDIO_REF_EC_UL18 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21742 {"AUDIO_REF_EC_UL18 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21743 {"AUDIO_REF_EC_UL18 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21744 {"AUDIO_REF_EC_UL18 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21745
21746 {"AUDIO_REF_EC_UL19 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21747 {"AUDIO_REF_EC_UL19 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21748 {"AUDIO_REF_EC_UL19 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21749 {"AUDIO_REF_EC_UL19 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21750
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021751 {"AUDIO_REF_EC_UL28 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21752 {"AUDIO_REF_EC_UL28 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21753 {"AUDIO_REF_EC_UL28 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21754 {"AUDIO_REF_EC_UL28 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21755
21756 {"AUDIO_REF_EC_UL29 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21757 {"AUDIO_REF_EC_UL29 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21758 {"AUDIO_REF_EC_UL29 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21759 {"AUDIO_REF_EC_UL29 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Yunfei Zhang3efc4a22017-11-07 16:30:13 +080021760
21761 {"LSM1_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21762 {"LSM2_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21763 {"LSM3_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21764 {"LSM4_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21765 {"LSM5_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21766 {"LSM6_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21767 {"LSM7_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21768 {"LSM8_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21769
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021770 {"MM_UL1", NULL, "AUDIO_REF_EC_UL1 MUX"},
21771 {"MM_UL2", NULL, "AUDIO_REF_EC_UL2 MUX"},
21772 {"MM_UL3", NULL, "AUDIO_REF_EC_UL3 MUX"},
21773 {"MM_UL4", NULL, "AUDIO_REF_EC_UL4 MUX"},
21774 {"MM_UL5", NULL, "AUDIO_REF_EC_UL5 MUX"},
21775 {"MM_UL6", NULL, "AUDIO_REF_EC_UL6 MUX"},
21776 {"MM_UL8", NULL, "AUDIO_REF_EC_UL8 MUX"},
21777 {"MM_UL9", NULL, "AUDIO_REF_EC_UL9 MUX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021778 {"MM_UL10", NULL, "AUDIO_REF_EC_UL10 MUX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021779 {"MM_UL16", NULL, "AUDIO_REF_EC_UL16 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021780 {"MM_UL17", NULL, "AUDIO_REF_EC_UL17 MUX"},
21781 {"MM_UL18", NULL, "AUDIO_REF_EC_UL18 MUX"},
21782 {"MM_UL19", NULL, "AUDIO_REF_EC_UL19 MUX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021783 {"MM_UL28", NULL, "AUDIO_REF_EC_UL28 MUX"},
21784 {"MM_UL29", NULL, "AUDIO_REF_EC_UL29 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021785
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021786 {"VoiceMMode1_Tx Mixer", "PRI_TX_MMode1", "PRI_I2S_TX"},
21787 {"VoiceMMode1_Tx Mixer", "PRI_MI2S_TX_MMode1", "PRI_MI2S_TX"},
21788 {"VoiceMMode1_Tx Mixer", "MI2S_TX_MMode1", "MI2S_TX"},
21789 {"VoiceMMode1_Tx Mixer", "TERT_MI2S_TX_MMode1", "TERT_MI2S_TX"},
21790 {"VoiceMMode1_Tx Mixer", "INT3_MI2S_TX_MMode1", "INT3_MI2S_TX"},
21791 {"VoiceMMode1_Tx Mixer", "SLIM_0_TX_MMode1", "SLIMBUS_0_TX"},
21792 {"VoiceMMode1_Tx Mixer", "SLIM_7_TX_MMode1", "SLIMBUS_7_TX"},
21793 {"VoiceMMode1_Tx Mixer", "SLIM_8_TX_MMode1", "SLIMBUS_8_TX"},
21794 {"VoiceMMode1_Tx Mixer", "USB_AUDIO_TX_MMode1", "USB_AUDIO_TX"},
21795 {"VoiceMMode1_Tx Mixer", "INT_BT_SCO_TX_MMode1", "INT_BT_SCO_TX"},
21796 {"VoiceMMode1_Tx Mixer", "AFE_PCM_TX_MMode1", "PCM_TX"},
21797 {"VoiceMMode1_Tx Mixer", "AUX_PCM_TX_MMode1", "AUX_PCM_TX"},
21798 {"VoiceMMode1_Tx Mixer", "SEC_AUX_PCM_TX_MMode1", "SEC_AUX_PCM_TX"},
21799 {"VoiceMMode1_Tx Mixer", "TERT_AUX_PCM_TX_MMode1", "TERT_AUX_PCM_TX"},
21800 {"VoiceMMode1_Tx Mixer", "QUAT_AUX_PCM_TX_MMode1", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021801 {"VoiceMMode1_Tx Mixer", "QUIN_AUX_PCM_TX_MMode1", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021802 {"VoiceMMode1_Tx Mixer", "QUAT_TDM_TX_0_MMode1", "QUAT_TDM_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053021803 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_0_MMode1", "TX_CDC_DMA_TX_0"},
21804 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_1_MMode1", "TX_CDC_DMA_TX_1"},
21805 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_2_MMode1", "TX_CDC_DMA_TX_2"},
21806 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_3_MMode1", "TX_CDC_DMA_TX_3"},
21807 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_4_MMode1", "TX_CDC_DMA_TX_4"},
21808 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_5_MMode1", "TX_CDC_DMA_TX_5"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021809 {"VOICEMMODE1_UL", NULL, "VoiceMMode1_Tx Mixer"},
21810
21811 {"VoiceMMode2_Tx Mixer", "PRI_TX_MMode2", "PRI_I2S_TX"},
21812 {"VoiceMMode2_Tx Mixer", "PRI_MI2S_TX_MMode2", "PRI_MI2S_TX"},
21813 {"VoiceMMode2_Tx Mixer", "MI2S_TX_MMode2", "MI2S_TX"},
21814 {"VoiceMMode2_Tx Mixer", "TERT_MI2S_TX_MMode2", "TERT_MI2S_TX"},
21815 {"VoiceMMode2_Tx Mixer", "INT3_MI2S_TX_MMode2", "INT3_MI2S_TX"},
21816 {"VoiceMMode2_Tx Mixer", "SLIM_0_TX_MMode2", "SLIMBUS_0_TX"},
21817 {"VoiceMMode2_Tx Mixer", "SLIM_7_TX_MMode2", "SLIMBUS_7_TX"},
21818 {"VoiceMMode2_Tx Mixer", "SLIM_8_TX_MMode2", "SLIMBUS_8_TX"},
21819 {"VoiceMMode2_Tx Mixer", "USB_AUDIO_TX_MMode2", "USB_AUDIO_TX"},
21820 {"VoiceMMode2_Tx Mixer", "INT_BT_SCO_TX_MMode2", "INT_BT_SCO_TX"},
21821 {"VoiceMMode2_Tx Mixer", "AFE_PCM_TX_MMode2", "PCM_TX"},
21822 {"VoiceMMode2_Tx Mixer", "AUX_PCM_TX_MMode2", "AUX_PCM_TX"},
21823 {"VoiceMMode2_Tx Mixer", "SEC_AUX_PCM_TX_MMode2", "SEC_AUX_PCM_TX"},
21824 {"VoiceMMode2_Tx Mixer", "TERT_AUX_PCM_TX_MMode2", "TERT_AUX_PCM_TX"},
21825 {"VoiceMMode2_Tx Mixer", "QUAT_AUX_PCM_TX_MMode2", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021826 {"VoiceMMode2_Tx Mixer", "QUIN_AUX_PCM_TX_MMode2", "QUIN_AUX_PCM_TX"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053021827 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_0_MMode2", "TX_CDC_DMA_TX_0"},
21828 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_1_MMode2", "TX_CDC_DMA_TX_1"},
21829 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_2_MMode2", "TX_CDC_DMA_TX_2"},
21830 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_3_MMode2", "TX_CDC_DMA_TX_3"},
21831 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_4_MMode2", "TX_CDC_DMA_TX_4"},
21832 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_5_MMode2", "TX_CDC_DMA_TX_5"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021833 {"VOICEMMODE2_UL", NULL, "VoiceMMode2_Tx Mixer"},
21834
21835 {"Voip_Tx Mixer", "PRI_TX_Voip", "PRI_I2S_TX"},
21836 {"Voip_Tx Mixer", "MI2S_TX_Voip", "MI2S_TX"},
21837 {"Voip_Tx Mixer", "TERT_MI2S_TX_Voip", "TERT_MI2S_TX"},
21838 {"Voip_Tx Mixer", "INT3_MI2S_TX_Voip", "INT3_MI2S_TX"},
21839 {"Voip_Tx Mixer", "SLIM_0_TX_Voip", "SLIMBUS_0_TX"},
21840 {"Voip_Tx Mixer", "SLIM_7_TX_Voip", "SLIMBUS_7_TX"},
21841 {"Voip_Tx Mixer", "SLIM_8_TX_Voip", "SLIMBUS_8_TX"},
21842 {"Voip_Tx Mixer", "USB_AUDIO_TX_Voip", "USB_AUDIO_TX"},
21843 {"Voip_Tx Mixer", "INTERNAL_BT_SCO_TX_Voip", "INT_BT_SCO_TX"},
21844 {"Voip_Tx Mixer", "AFE_PCM_TX_Voip", "PCM_TX"},
21845 {"Voip_Tx Mixer", "AUX_PCM_TX_Voip", "AUX_PCM_TX"},
21846 {"Voip_Tx Mixer", "SEC_AUX_PCM_TX_Voip", "SEC_AUX_PCM_TX"},
21847 {"Voip_Tx Mixer", "TERT_AUX_PCM_TX_Voip", "TERT_AUX_PCM_TX"},
21848 {"Voip_Tx Mixer", "QUAT_AUX_PCM_TX_Voip", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021849 {"Voip_Tx Mixer", "QUIN_AUX_PCM_TX_Voip", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021850 {"Voip_Tx Mixer", "PRI_MI2S_TX_Voip", "PRI_MI2S_TX"},
21851 {"VOIP_UL", NULL, "Voip_Tx Mixer"},
21852
21853 {"SLIMBUS_DL_HL", "Switch", "SLIM0_DL_HL"},
21854 {"SLIMBUS_0_RX", NULL, "SLIMBUS_DL_HL"},
21855 {"SLIMBUS1_DL_HL", "Switch", "SLIM1_DL_HL"},
21856 {"SLIMBUS_1_RX", NULL, "SLIMBUS1_DL_HL"},
21857 {"SLIMBUS3_DL_HL", "Switch", "SLIM3_DL_HL"},
21858 {"SLIMBUS_3_RX", NULL, "SLIMBUS3_DL_HL"},
21859 {"SLIMBUS4_DL_HL", "Switch", "SLIM4_DL_HL"},
21860 {"SLIMBUS_4_RX", NULL, "SLIMBUS4_DL_HL"},
21861 {"SLIMBUS6_DL_HL", "Switch", "SLIM0_DL_HL"},
21862 {"SLIMBUS_6_RX", NULL, "SLIMBUS6_DL_HL"},
21863 {"SLIM0_UL_HL", NULL, "SLIMBUS_0_TX"},
21864 {"SLIM1_UL_HL", NULL, "SLIMBUS_1_TX"},
21865 {"SLIM3_UL_HL", NULL, "SLIMBUS_3_TX"},
21866 {"SLIM4_UL_HL", NULL, "SLIMBUS_4_TX"},
21867 {"SLIM8_UL_HL", NULL, "SLIMBUS_8_TX"},
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053021868 {"WSA_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
21869 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_DL_HL"},
21870 {"CDC_DMA_UL_HL", NULL, "VA_CDC_DMA_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053021871 {"RX_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
21872 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_DL_HL"},
21873 {"TX3_CDC_DMA_UL_HL", NULL, "TX_CDC_DMA_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021874 {"LSM1 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21875 {"LSM1 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21876 {"LSM1 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21877 {"LSM1 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21878 {"LSM1 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21879 {"LSM1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21880 {"LSM1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21881 {"LSM1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021882 {"LSM1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21883 {"LSM1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021884 {"LSM1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021885 {"LSM1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021886 {"LSM1_UL_HL", NULL, "LSM1 Mixer"},
21887
21888 {"LSM2 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21889 {"LSM2 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21890 {"LSM2 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21891 {"LSM2 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21892 {"LSM2 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21893 {"LSM2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21894 {"LSM2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21895 {"LSM2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021896 {"LSM2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21897 {"LSM2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021898 {"LSM2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021899 {"LSM2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021900 {"LSM2_UL_HL", NULL, "LSM2 Mixer"},
21901
21902
21903 {"LSM3 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21904 {"LSM3 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21905 {"LSM3 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21906 {"LSM3 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21907 {"LSM3 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21908 {"LSM3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21909 {"LSM3 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21910 {"LSM3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021911 {"LSM3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21912 {"LSM3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021913 {"LSM3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021914 {"LSM3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021915 {"LSM3_UL_HL", NULL, "LSM3 Mixer"},
21916
21917
21918 {"LSM4 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21919 {"LSM4 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21920 {"LSM4 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21921 {"LSM4 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21922 {"LSM4 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21923 {"LSM4 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21924 {"LSM4 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21925 {"LSM4 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021926 {"LSM4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21927 {"LSM4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021928 {"LSM4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021929 {"LSM4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021930 {"LSM4_UL_HL", NULL, "LSM4 Mixer"},
21931
21932 {"LSM5 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21933 {"LSM5 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21934 {"LSM5 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21935 {"LSM5 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21936 {"LSM5 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21937 {"LSM5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21938 {"LSM5 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21939 {"LSM5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021940 {"LSM5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21941 {"LSM5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021942 {"LSM5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021943 {"LSM5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021944 {"LSM5_UL_HL", NULL, "LSM5 Mixer"},
21945
21946 {"LSM6 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21947 {"LSM6 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21948 {"LSM6 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21949 {"LSM6 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21950 {"LSM6 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21951 {"LSM6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021952 {"LSM6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21953 {"LSM6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021954 {"LSM6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021955 {"LSM6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021956 {"LSM6_UL_HL", NULL, "LSM6 Mixer"},
21957
21958 {"LSM7 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21959 {"LSM7 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21960 {"LSM7 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21961 {"LSM7 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21962 {"LSM7 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21963 {"LSM7 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021964 {"LSM7 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21965 {"LSM7 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021966 {"LSM7 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021967 {"LSM7 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021968 {"LSM7_UL_HL", NULL, "LSM7 Mixer"},
21969
21970 {"LSM8 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21971 {"LSM8 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21972 {"LSM8 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21973 {"LSM8 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21974 {"LSM8 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21975 {"LSM8 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021976 {"LSM8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21977 {"LSM8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021978 {"LSM8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021979 {"LSM8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021980 {"LSM8_UL_HL", NULL, "LSM8 Mixer"},
21981
21982
21983 {"CPE_LSM_UL_HL", NULL, "BE_IN"},
21984 {"QCHAT_Tx Mixer", "PRI_TX_QCHAT", "PRI_I2S_TX"},
21985 {"QCHAT_Tx Mixer", "SLIM_0_TX_QCHAT", "SLIMBUS_0_TX"},
21986 {"QCHAT_Tx Mixer", "SLIM_7_TX_QCHAT", "SLIMBUS_7_TX"},
21987 {"QCHAT_Tx Mixer", "SLIM_8_TX_QCHAT", "SLIMBUS_8_TX"},
21988 {"QCHAT_Tx Mixer", "INTERNAL_BT_SCO_TX_QCHAT", "INT_BT_SCO_TX"},
21989 {"QCHAT_Tx Mixer", "AFE_PCM_TX_QCHAT", "PCM_TX"},
21990 {"QCHAT_Tx Mixer", "AUX_PCM_TX_QCHAT", "AUX_PCM_TX"},
21991 {"QCHAT_Tx Mixer", "SEC_AUX_PCM_TX_QCHAT", "SEC_AUX_PCM_TX"},
21992 {"QCHAT_Tx Mixer", "TERT_AUX_PCM_TX_QCHAT", "TERT_AUX_PCM_TX"},
21993 {"QCHAT_Tx Mixer", "QUAT_AUX_PCM_TX_QCHAT", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021994 {"QCHAT_Tx Mixer", "QUIN_AUX_PCM_TX_QCHAT", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021995 {"QCHAT_Tx Mixer", "MI2S_TX_QCHAT", "MI2S_TX"},
21996 {"QCHAT_Tx Mixer", "PRI_MI2S_TX_QCHAT", "PRI_MI2S_TX"},
21997 {"QCHAT_Tx Mixer", "TERT_MI2S_TX_QCHAT", "TERT_MI2S_TX"},
21998 {"QCHAT_Tx Mixer", "INT3_MI2S_TX_QCHAT", "INT3_MI2S_TX"},
21999 {"QCHAT_Tx Mixer", "USB_AUDIO_TX_QCHAT", "USB_AUDIO_TX"},
22000 {"QCHAT_UL", NULL, "QCHAT_Tx Mixer"},
22001
22002 {"INT_FM_RX", NULL, "INTFM_DL_HL"},
22003 {"INTFM_UL_HL", NULL, "INT_FM_TX"},
22004 {"INTHFP_UL_HL", NULL, "HFP_PRI_AUX_UL_HL"},
22005 {"HFP_PRI_AUX_UL_HL", "Switch", "AUX_PCM_TX"},
22006 {"INTHFP_UL_HL", NULL, "HFP_AUX_UL_HL"},
22007 {"HFP_AUX_UL_HL", "Switch", "SEC_AUX_PCM_TX"},
22008 {"INTHFP_UL_HL", NULL, "HFP_INT_UL_HL"},
22009 {"HFP_INT_UL_HL", "Switch", "INT_BT_SCO_TX"},
22010 {"SLIM7_UL_HL", NULL, "HFP_SLIM7_UL_HL"},
22011 {"HFP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
22012 {"AUX_PCM_RX", NULL, "AUXPCM_DL_HL"},
22013 {"AUX_PCM_RX", NULL, "INTHFP_DL_HL"},
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080022014 {"SLIM7_UL_HL", NULL, "A2DP_SLIM7_UL_HL"},
22015 {"A2DP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022016 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022017 {"AUXPCM_UL_HL", NULL, "AUX_PCM_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022018 {"SEC_AUXPCM_UL_HL", NULL, "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022019 {"MI2S_RX", NULL, "MI2S_DL_HL"},
22020 {"MI2S_UL_HL", NULL, "MI2S_TX"},
22021 {"PCM_RX_DL_HL", "Switch", "SLIM0_DL_HL"},
22022 {"PCM_RX", NULL, "PCM_RX_DL_HL"},
22023
22024 /* connect to INT4_MI2S_DL_HL since same pcm_id */
22025 {"INT0_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
22026 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_DL_HL"},
22027 {"INT4_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
22028 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_DL_HL"},
22029 {"PRI_MI2S_RX_DL_HL", "Switch", "PRI_MI2S_DL_HL"},
22030 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_DL_HL"},
22031 {"SEC_MI2S_RX_DL_HL", "Switch", "SEC_MI2S_DL_HL"},
22032 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_DL_HL"},
22033 {"TERT_MI2S_RX_DL_HL", "Switch", "TERT_MI2S_DL_HL"},
22034 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_DL_HL"},
22035
22036 {"QUAT_MI2S_RX_DL_HL", "Switch", "QUAT_MI2S_DL_HL"},
22037 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053022038 {"QUIN_MI2S_RX_DL_HL", "Switch", "QUIN_MI2S_DL_HL"},
22039 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022040 {"MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
22041 {"INT3_MI2S_UL_HL", NULL, "INT3_MI2S_TX"},
22042 {"TERT_MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
22043 {"SEC_I2S_RX", NULL, "SEC_I2S_DL_HL"},
22044 {"PRI_MI2S_UL_HL", NULL, "PRI_MI2S_TX"},
22045 {"SEC_MI2S_UL_HL", NULL, "SEC_MI2S_TX"},
22046 {"SEC_MI2S_RX", NULL, "SEC_MI2S_DL_HL"},
22047 {"PRI_MI2S_RX", NULL, "PRI_MI2S_DL_HL"},
22048 {"TERT_MI2S_RX", NULL, "TERT_MI2S_DL_HL"},
22049 {"QUAT_MI2S_UL_HL", NULL, "QUAT_MI2S_TX"},
22050
22051 {"PRI_TDM_TX_0_UL_HL", NULL, "PRI_TDM_TX_0"},
22052 {"PRI_TDM_TX_1_UL_HL", NULL, "PRI_TDM_TX_1"},
22053 {"PRI_TDM_TX_2_UL_HL", NULL, "PRI_TDM_TX_2"},
22054 {"PRI_TDM_TX_3_UL_HL", NULL, "PRI_TDM_TX_3"},
22055 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_DL_HL"},
22056 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_DL_HL"},
22057 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_DL_HL"},
22058 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_DL_HL"},
22059 {"SEC_TDM_TX_0_UL_HL", NULL, "SEC_TDM_TX_0"},
22060 {"SEC_TDM_TX_1_UL_HL", NULL, "SEC_TDM_TX_1"},
22061 {"SEC_TDM_TX_2_UL_HL", NULL, "SEC_TDM_TX_2"},
22062 {"SEC_TDM_TX_3_UL_HL", NULL, "SEC_TDM_TX_3"},
22063 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0_DL_HL"},
22064 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1_DL_HL"},
22065 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2_DL_HL"},
22066 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3_DL_HL"},
Derek Chenfdcc0982018-10-02 15:14:03 -070022067 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022068 {"TERT_TDM_TX_0_UL_HL", NULL, "TERT_TDM_TX_0"},
22069 {"TERT_TDM_TX_1_UL_HL", NULL, "TERT_TDM_TX_1"},
22070 {"TERT_TDM_TX_2_UL_HL", NULL, "TERT_TDM_TX_2"},
22071 {"TERT_TDM_TX_3_UL_HL", NULL, "TERT_TDM_TX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070022072 {"TERT_TDM_TX_7_UL_HL", NULL, "TERT_TDM_TX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022073 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0_DL_HL"},
22074 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1_DL_HL"},
22075 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2_DL_HL"},
22076 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3_DL_HL"},
22077 {"QUAT_TDM_TX_0_UL_HL", NULL, "QUAT_TDM_TX_0"},
22078 {"QUAT_TDM_TX_1_UL_HL", NULL, "QUAT_TDM_TX_1"},
22079 {"QUAT_TDM_TX_2_UL_HL", NULL, "QUAT_TDM_TX_2"},
22080 {"QUAT_TDM_TX_3_UL_HL", NULL, "QUAT_TDM_TX_3"},
22081 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0_DL_HL"},
22082 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1_DL_HL"},
22083 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_DL_HL"},
22084 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053022085 {"QUIN_TDM_TX_0_UL_HL", NULL, "QUIN_TDM_TX_0"},
22086 {"QUIN_TDM_TX_1_UL_HL", NULL, "QUIN_TDM_TX_1"},
22087 {"QUIN_TDM_TX_2_UL_HL", NULL, "QUIN_TDM_TX_2"},
22088 {"QUIN_TDM_TX_3_UL_HL", NULL, "QUIN_TDM_TX_3"},
22089 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0_DL_HL"},
22090 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1_DL_HL"},
22091 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2_DL_HL"},
22092 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022093
22094 {"PRI_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22095 {"PRI_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22096 {"PRI_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22097 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22098 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22099 {"PRI_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22100 {"PRI_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22101 {"PRI_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22102 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22103 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22104 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22105 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22106 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22107 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22108 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22109 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022110 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22111 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22112 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22113 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022114 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Port Mixer"},
22115
22116 {"PRI_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22117 {"PRI_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22118 {"PRI_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22119 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22120 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22121 {"PRI_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22122 {"PRI_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22123 {"PRI_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22124 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22125 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22126 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22127 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22128 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22129 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22130 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22131 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022132 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22133 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22134 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22135 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022136 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Port Mixer"},
22137
22138 {"PRI_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22139 {"PRI_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22140 {"PRI_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22141 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22142 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22143 {"PRI_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22144 {"PRI_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22145 {"PRI_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22146 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22147 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22148 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22149 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22150 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22151 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22152 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22153 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022154 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22155 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22156 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22157 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022158 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Port Mixer"},
22159
22160 {"PRI_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22161 {"PRI_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22162 {"PRI_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22163 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22164 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22165 {"PRI_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22166 {"PRI_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22167 {"PRI_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22168 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22169 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22170 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22171 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22172 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22173 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22174 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22175 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022176 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22177 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22178 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22179 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022180 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Port Mixer"},
22181
22182 {"SEC_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22183 {"SEC_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22184 {"SEC_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22185 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22186 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22187 {"SEC_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22188 {"SEC_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22189 {"SEC_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22190 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22191 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22192 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22193 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22194 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22195 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22196 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22197 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022198 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22199 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22200 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22201 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022202 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Port Mixer"},
22203
22204 {"SEC_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22205 {"SEC_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22206 {"SEC_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22207 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22208 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22209 {"SEC_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22210 {"SEC_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22211 {"SEC_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22212 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22213 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22214 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22215 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22216 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22217 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22218 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22219 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022220 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22221 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22222 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22223 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022224 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Port Mixer"},
22225
22226 {"SEC_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22227 {"SEC_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22228 {"SEC_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22229 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22230 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22231 {"SEC_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22232 {"SEC_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22233 {"SEC_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22234 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22235 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22236 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22237 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22238 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22239 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22240 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22241 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022242 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22243 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22244 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22245 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022246 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Port Mixer"},
22247
22248 {"SEC_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22249 {"SEC_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22250 {"SEC_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22251 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22252 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22253 {"SEC_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22254 {"SEC_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22255 {"SEC_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22256 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22257 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22258 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22259 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22260 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22261 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22262 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22263 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022264 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22265 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22266 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22267 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022268 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Port Mixer"},
22269
Derek Chenfdcc0982018-10-02 15:14:03 -070022270 {"SEC_TDM_RX_7 Port Mixer", "TERT_TDM_TX_7", "TERT_TDM_TX_7"},
22271 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7 Port Mixer"},
22272
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022273 {"TERT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22274 {"TERT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22275 {"TERT_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22276 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22277 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22278 {"TERT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22279 {"TERT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22280 {"TERT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22281 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22282 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22283 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22284 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22285 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22286 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22287 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22288 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022289 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22290 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22291 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22292 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022293 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Port Mixer"},
22294
22295 {"TERT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22296 {"TERT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22297 {"TERT_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22298 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22299 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22300 {"TERT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22301 {"TERT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22302 {"TERT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22303 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22304 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22305 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22306 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22307 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22308 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22309 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22310 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022311 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22312 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22313 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22314 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022315 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Port Mixer"},
22316
22317 {"TERT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22318 {"TERT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22319 {"TERT_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22320 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22321 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22322 {"TERT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22323 {"TERT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22324 {"TERT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22325 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22326 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22327 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22328 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22329 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22330 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22331 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22332 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022333 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22334 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22335 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22336 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022337 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Port Mixer"},
22338
22339 {"TERT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22340 {"TERT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22341 {"TERT_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22342 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22343 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22344 {"TERT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22345 {"TERT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22346 {"TERT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22347 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22348 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22349 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22350 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22351 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22352 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22353 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22354 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022355 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22356 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22357 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22358 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022359 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Port Mixer"},
22360
22361 {"QUAT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22362 {"QUAT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22363 {"QUAT_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22364 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22365 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22366 {"QUAT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22367 {"QUAT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22368 {"QUAT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22369 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22370 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22371 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22372 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22373 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22374 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22375 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22376 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022377 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22378 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22379 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22380 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022381 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Port Mixer"},
22382
22383 {"QUAT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22384 {"QUAT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22385 {"QUAT_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22386 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22387 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22388 {"QUAT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22389 {"QUAT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22390 {"QUAT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22391 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22392 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22393 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22394 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22395 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22396 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22397 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22398 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022399 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22400 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22401 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22402 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022403 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Port Mixer"},
22404
22405 {"QUAT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22406 {"QUAT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22407 {"QUAT_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22408 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22409 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22410 {"QUAT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22411 {"QUAT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22412 {"QUAT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22413 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22414 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22415 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22416 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22417 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22418 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22419 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22420 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022421 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22422 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22423 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22424 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022425 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Port Mixer"},
22426
22427 {"QUAT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22428 {"QUAT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22429 {"QUAT_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22430 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22431 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22432 {"QUAT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22433 {"QUAT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22434 {"QUAT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22435 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22436 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22437 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22438 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22439 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22440 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22441 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22442 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022443 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22444 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22445 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22446 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022447 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Port Mixer"},
22448
Rohit Kumara5077932017-09-10 22:05:05 +053022449 {"QUIN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22450 {"QUIN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22451 {"QUIN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22452 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22453 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22454 {"QUIN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22455 {"QUIN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22456 {"QUIN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22457 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22458 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22459 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22460 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22461 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22462 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22463 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22464 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
22465 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22466 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22467 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22468 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053022469 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053022470
22471 {"QUIN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22472 {"QUIN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22473 {"QUIN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22474 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22475 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22476 {"QUIN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22477 {"QUIN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22478 {"QUIN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22479 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22480 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22481 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22482 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22483 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22484 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22485 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22486 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
22487 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22488 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22489 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22490 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053022491 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053022492
22493 {"QUIN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22494 {"QUIN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22495 {"QUIN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22496 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22497 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22498 {"QUIN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22499 {"QUIN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22500 {"QUIN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22501 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22502 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22503 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22504 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22505 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22506 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22507 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22508 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
22509 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22510 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22511 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22512 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053022513 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053022514
22515 {"QUIN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22516 {"QUIN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22517 {"QUIN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22518 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22519 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22520 {"QUIN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22521 {"QUIN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22522 {"QUIN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22523 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22524 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22525 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22526 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22527 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22528 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22529 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22530 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
22531 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22532 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22533 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22534 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053022535 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053022536
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022537 {"INT0_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22538 {"INT0_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22539 {"INT0_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22540 {"INT0_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022541 {"INT0_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022542 {"INT0_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
22543 {"INT0_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22544 {"INT0_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22545 {"INT0_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053022546 {"INT0_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022547 {"INT0_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22548 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Port Mixer"},
22549
22550 {"INT4_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22551 {"INT4_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22552 {"INT4_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22553 {"INT4_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022554 {"INT4_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022555 {"INT4_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
22556 {"INT4_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22557 {"INT4_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053022558 {"INT4_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022559 {"INT4_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22560 {"INT4_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22561 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Port Mixer"},
22562
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053022563 {"WSA_CDC_DMA_RX_0 Port Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22564 {"WSA_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
22565 {"RX_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080022566 {"WSA_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22567 {"RX_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22568
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053022569
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022570 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22571 {"SLIMBUS_0_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22572 {"SLIMBUS_0_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22573 {"SLIMBUS_0_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22574 {"SLIMBUS_0_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053022575 {"SLIMBUS_0_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022576 {"SLIMBUS_0_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22577 {"SLIMBUS_0_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22578 {"SLIMBUS_0_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
22579 {"SLIMBUS_0_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022580 {"SLIMBUS_0_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022581 {"SLIMBUS_0_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22582 {"SLIMBUS_0_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22583 {"SLIMBUS_0_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22584 {"SLIMBUS_0_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22585 {"SLIMBUS_0_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022586 {"SLIMBUS_0_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022587 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22588 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Port Mixer"},
22589 {"AFE_PCM_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22590 {"AFE_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22591 {"PCM_RX", NULL, "AFE_PCM_RX Port Mixer"},
22592 {"USB_AUDIO_RX Port Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
22593 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Port Mixer"},
22594 {"USB_DL_HL", "Switch", "USBAUDIO_DL_HL"},
22595 {"USB_AUDIO_RX", NULL, "USB_DL_HL"},
22596 {"USBAUDIO_UL_HL", NULL, "USB_AUDIO_TX"},
22597
22598
22599 {"AUX_PCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22600 {"AUX_PCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22601 {"AUX_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22602 {"AUX_PCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22603 {"AUX_PCM_RX Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022604 {"AUX_PCM_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022605 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Port Mixer"},
22606
22607 {"SEC_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22608 {"SEC_AUXPCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22609 {"SEC_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022610 {"SEC_AUXPCM_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022611 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_RX Port Mixer"},
22612
22613 {"TERT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22614 {"TERT_AUXPCM_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
22615 {"TERT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22616 {"TERT_AUX_PCM_RX", NULL, "TERT_AUXPCM_RX Port Mixer"},
22617
22618 {"QUAT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22619 {"QUAT_AUXPCM_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
22620 {"QUAT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22621 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUXPCM_RX Port Mixer"},
22622
Rohit Kumara5077932017-09-10 22:05:05 +053022623 {"QUIN_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22624 {"QUIN_AUXPCM_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
22625 {"QUIN_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22626 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUXPCM_RX Port Mixer"},
22627
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022628 {"Voice Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
22629 {"Voice Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22630 {"Voice Stub Tx Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22631 {"Voice Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
22632 {"Voice Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22633 {"Voice Stub Tx Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22634 {"Voice Stub Tx Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
22635 {"Voice Stub Tx Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022636 {"Voice Stub Tx Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022637 {"Voice Stub Tx Mixer", "MI2S_TX", "MI2S_TX"},
22638 {"Voice Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22639 {"Voice Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22640 {"Voice Stub Tx Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
22641 {"Voice Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22642 {"Voice Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22643 {"Voice Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
22644 {"Voice Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22645 {"Voice Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22646 {"Voice Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
22647 {"VOICE_STUB_UL", NULL, "Voice Stub Tx Mixer"},
22648
22649 {"VoLTE Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
22650 {"VoLTE Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22651 {"VoLTE Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
22652 {"VoLTE Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22653 {"VoLTE Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22654 {"VoLTE Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
22655 {"VoLTE Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22656 {"VoLTE Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22657 {"VoLTE Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
22658 {"VoLTE Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22659 {"VoLTE Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22660 {"VOLTE_STUB_UL", NULL, "VoLTE Stub Tx Mixer"},
22661
22662 {"Voice2 Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
22663 {"Voice2 Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22664 {"Voice2 Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
22665 {"Voice2 Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22666 {"Voice2 Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22667 {"Voice2 Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
22668 {"Voice2 Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22669 {"Voice2 Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22670 {"Voice2 Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
22671 {"Voice2 Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22672 {"Voice2 Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22673 {"VOICE2_STUB_UL", NULL, "Voice2 Stub Tx Mixer"},
22674
kunleizdf5a00a2017-11-27 15:27:36 +080022675 {"STUB_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22676 {"STUB_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022677 {"STUB_RX", NULL, "STUB_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080022678
22679 {"SLIMBUS_1_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22680 {"SLIMBUS_1_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022681 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080022682
22683 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22684 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022685 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX_Voice Mixer"},
22686
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022687 {"SLIM_7_RX_Voice Mixer", "Voip", "VOIP_DL"},
22688 {"SLIM_7_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022689 {"SLIM_7_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22690 {"SLIM_7_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22691 {"SLIM_7_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22692 {"SLIMBUS_7_RX", NULL, "SLIM_7_RX_Voice Mixer"},
22693
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022694 {"SLIM_8_RX_Voice Mixer", "Voip", "VOIP_DL"},
22695 {"SLIM_8_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022696 {"SLIM_8_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22697 {"SLIM_8_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22698 {"SLIM_8_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22699 {"SLIMBUS_8_RX", NULL, "SLIM_8_RX_Voice Mixer"},
22700
22701 {"SLIMBUS_1_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22702 {"SLIMBUS_1_RX Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22703 {"SLIMBUS_1_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22704 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Port Mixer"},
22705 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22706 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22707 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Port Mixer"},
22708 {"SLIMBUS_3_RX Port Mixer", "INTERNAL_BT_SCO_RX", "INT_BT_SCO_RX"},
22709 {"SLIMBUS_3_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22710 {"SLIMBUS_3_RX Port Mixer", "AFE_PCM_RX", "PCM_RX"},
22711 {"SLIMBUS_3_RX Port Mixer", "AUX_PCM_RX", "AUX_PCM_RX"},
22712 {"SLIMBUS_3_RX Port Mixer", "SLIM_0_RX", "SLIMBUS_0_RX"},
22713 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX Port Mixer"},
22714
22715 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22716 {"SLIMBUS_6_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22717 {"SLIMBUS_6_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22718 {"SLIMBUS_6_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22719 {"SLIMBUS_6_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053022720 {"SLIMBUS_6_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022721 {"SLIMBUS_6_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22722 {"SLIMBUS_6_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22723 {"SLIMBUS_6_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22724 {"SLIMBUS_6_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22725 {"SLIMBUS_6_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22726 {"SLIMBUS_6_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22727 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22728 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Port Mixer"},
22729
22730 {"HDMI_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22731 {"HDMI", NULL, "HDMI_RX Port Mixer"},
22732
22733 {"DISPLAY_PORT_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22734 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX Port Mixer"},
22735
Karthikeyan Mani57550082018-05-03 18:43:58 -070022736 {"DISPLAY_PORT_RX1 Port Mixer", "MI2S_TX", "MI2S_TX"},
22737 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1 Port Mixer"},
22738
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022739 {"SEC_I2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22740 {"SEC_I2S_RX", NULL, "SEC_I2S_RX Port Mixer"},
22741
22742 {"MI2S_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22743 {"MI2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22744 {"MI2S_RX", NULL, "MI2S_RX Port Mixer"},
22745
22746 {"PRI_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22747 {"PRI_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22748 {"PRI_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22749 {"PRI_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022750 {"PRI_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022751 {"PRI_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22752 {"PRI_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22753 {"PRI_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22754 {"PRI_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022755 {"PRI_MI2S_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022756 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Port Mixer"},
22757
22758 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22759 {"SEC_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22760 {"SEC_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22761 {"SEC_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022762 {"SEC_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022763 {"SEC_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22764 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22765 {"SEC_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022766 {"SEC_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022767 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Port Mixer"},
22768
22769 {"TERT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22770 {"TERT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22771 {"TERT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22772 {"TERT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022773 {"TERT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022774 {"TERT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22775 {"TERT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22776 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Port Mixer"},
22777
22778 {"QUAT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22779 {"QUAT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22780 {"QUAT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22781 {"QUAT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022782 {"QUAT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022783 {"QUAT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22784 {"QUAT_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22785 {"QUAT_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22786 {"QUAT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22787 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Port Mixer"},
22788
Rohit Kumara5077932017-09-10 22:05:05 +053022789 {"QUIN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22790 {"QUIN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22791 {"QUIN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22792 {"QUIN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22793 {"QUIN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
22794 {"QUIN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22795 {"QUIN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22796 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Port Mixer"},
22797
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022798 /* Backend Enablement */
22799
22800 {"BE_OUT", NULL, "PRI_I2S_RX"},
22801 {"BE_OUT", NULL, "SEC_I2S_RX"},
22802 {"BE_OUT", NULL, "SLIMBUS_0_RX"},
22803 {"BE_OUT", NULL, "SLIMBUS_1_RX"},
22804 {"BE_OUT", NULL, "SLIMBUS_2_RX"},
22805 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
22806 {"BE_OUT", NULL, "SLIMBUS_4_RX"},
22807 {"BE_OUT", NULL, "SLIMBUS_5_RX"},
22808 {"BE_OUT", NULL, "SLIMBUS_6_RX"},
22809 {"BE_OUT", NULL, "SLIMBUS_7_RX"},
22810 {"BE_OUT", NULL, "SLIMBUS_8_RX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053022811 {"BE_OUT", NULL, "SLIMBUS_9_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022812 {"BE_OUT", NULL, "USB_AUDIO_RX"},
22813 {"BE_OUT", NULL, "HDMI"},
22814 {"BE_OUT", NULL, "DISPLAY_PORT"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070022815 {"BE_OUT", NULL, "DISPLAY_PORT1"},
Ralf Herzc8701f72018-06-20 11:37:35 +020022816 {"BE_OUT", NULL, "PRI_SPDIF_RX"},
22817 {"BE_OUT", NULL, "SEC_SPDIF_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022818 {"BE_OUT", NULL, "MI2S_RX"},
22819 {"BE_OUT", NULL, "QUAT_MI2S_RX"},
22820 {"BE_OUT", NULL, "QUIN_MI2S_RX"},
22821 {"BE_OUT", NULL, "TERT_MI2S_RX"},
22822 {"BE_OUT", NULL, "SEC_MI2S_RX"},
22823 {"BE_OUT", NULL, "SEC_MI2S_RX_SD1"},
22824 {"BE_OUT", NULL, "PRI_MI2S_RX"},
22825 {"BE_OUT", NULL, "INT0_MI2S_RX"},
22826 {"BE_OUT", NULL, "INT4_MI2S_RX"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053022827 {"BE_OUT", NULL, "INT2_MI2S_RX"},
22828 {"BE_OUT", NULL, "INT3_MI2S_RX"},
22829 {"BE_OUT", NULL, "INT5_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022830 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
22831 {"BE_OUT", NULL, "INT_BT_A2DP_RX"},
22832 {"BE_OUT", NULL, "INT_FM_RX"},
22833 {"BE_OUT", NULL, "PCM_RX"},
22834 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
22835 {"BE_OUT", NULL, "AUX_PCM_RX"},
22836 {"BE_OUT", NULL, "SEC_AUX_PCM_RX"},
22837 {"BE_OUT", NULL, "TERT_AUX_PCM_RX"},
22838 {"BE_OUT", NULL, "QUAT_AUX_PCM_RX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022839 {"BE_OUT", NULL, "QUIN_AUX_PCM_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022840 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
22841 {"BE_OUT", NULL, "INT_FM_RX"},
22842 {"BE_OUT", NULL, "PCM_RX"},
22843 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
22844 {"BE_OUT", NULL, "VOICE_PLAYBACK_TX"},
22845 {"BE_OUT", NULL, "VOICE2_PLAYBACK_TX"},
22846 {"BE_OUT", NULL, "PRI_TDM_RX_0"},
22847 {"BE_OUT", NULL, "PRI_TDM_RX_1"},
22848 {"BE_OUT", NULL, "PRI_TDM_RX_2"},
22849 {"BE_OUT", NULL, "PRI_TDM_RX_3"},
22850 {"BE_OUT", NULL, "SEC_TDM_RX_0"},
22851 {"BE_OUT", NULL, "SEC_TDM_RX_1"},
22852 {"BE_OUT", NULL, "SEC_TDM_RX_2"},
22853 {"BE_OUT", NULL, "SEC_TDM_RX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070022854 {"BE_OUT", NULL, "SEC_TDM_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022855 {"BE_OUT", NULL, "TERT_TDM_RX_0"},
22856 {"BE_OUT", NULL, "TERT_TDM_RX_1"},
22857 {"BE_OUT", NULL, "TERT_TDM_RX_2"},
22858 {"BE_OUT", NULL, "TERT_TDM_RX_3"},
22859 {"BE_OUT", NULL, "TERT_TDM_RX_4"},
22860 {"BE_OUT", NULL, "QUAT_TDM_RX_0"},
22861 {"BE_OUT", NULL, "QUAT_TDM_RX_1"},
22862 {"BE_OUT", NULL, "QUAT_TDM_RX_2"},
22863 {"BE_OUT", NULL, "QUAT_TDM_RX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022864 {"BE_OUT", NULL, "QUIN_TDM_RX_0"},
22865 {"BE_OUT", NULL, "QUIN_TDM_RX_1"},
22866 {"BE_OUT", NULL, "QUIN_TDM_RX_2"},
22867 {"BE_OUT", NULL, "QUIN_TDM_RX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022868 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_0"},
22869 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022870 {"BE_OUT", NULL, "RX_CDC_DMA_RX_0"},
22871 {"BE_OUT", NULL, "RX_CDC_DMA_RX_1"},
22872 {"BE_OUT", NULL, "RX_CDC_DMA_RX_2"},
22873 {"BE_OUT", NULL, "RX_CDC_DMA_RX_3"},
22874 {"BE_OUT", NULL, "RX_CDC_DMA_RX_4"},
22875 {"BE_OUT", NULL, "RX_CDC_DMA_RX_5"},
22876 {"BE_OUT", NULL, "RX_CDC_DMA_RX_6"},
22877 {"BE_OUT", NULL, "RX_CDC_DMA_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022878
22879 {"PRI_I2S_TX", NULL, "BE_IN"},
22880 {"MI2S_TX", NULL, "BE_IN"},
22881 {"QUAT_MI2S_TX", NULL, "BE_IN"},
22882 {"QUIN_MI2S_TX", NULL, "BE_IN"},
22883 {"PRI_MI2S_TX", NULL, "BE_IN"},
22884 {"TERT_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053022885 {"INT0_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022886 {"INT2_MI2S_TX", NULL, "BE_IN"},
22887 {"INT3_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053022888 {"INT4_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022889 {"INT5_MI2S_TX", NULL, "BE_IN"},
22890 {"SEC_MI2S_TX", NULL, "BE_IN"},
22891 {"SENARY_MI2S_TX", NULL, "BE_IN" },
22892 {"SLIMBUS_0_TX", NULL, "BE_IN" },
22893 {"SLIMBUS_1_TX", NULL, "BE_IN" },
22894 {"SLIMBUS_3_TX", NULL, "BE_IN" },
22895 {"SLIMBUS_4_TX", NULL, "BE_IN" },
22896 {"SLIMBUS_5_TX", NULL, "BE_IN" },
22897 {"SLIMBUS_6_TX", NULL, "BE_IN" },
22898 {"SLIMBUS_7_TX", NULL, "BE_IN" },
22899 {"SLIMBUS_8_TX", NULL, "BE_IN" },
Surendar Karka3ef3d812018-09-28 18:52:35 +053022900 {"SLIMBUS_9_TX", NULL, "BE_IN" },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022901 {"USB_AUDIO_TX", NULL, "BE_IN" },
22902 {"INT_BT_SCO_TX", NULL, "BE_IN"},
22903 {"INT_FM_TX", NULL, "BE_IN"},
22904 {"PCM_TX", NULL, "BE_IN"},
22905 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
22906 {"BE_OUT", NULL, "STUB_RX"},
22907 {"STUB_TX", NULL, "BE_IN"},
22908 {"STUB_1_TX", NULL, "BE_IN"},
22909 {"BE_OUT", NULL, "AUX_PCM_RX"},
22910 {"AUX_PCM_TX", NULL, "BE_IN"},
22911 {"SEC_AUX_PCM_TX", NULL, "BE_IN"},
22912 {"TERT_AUX_PCM_TX", NULL, "BE_IN"},
22913 {"QUAT_AUX_PCM_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053022914 {"QUIN_AUX_PCM_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022915 {"INCALL_RECORD_TX", NULL, "BE_IN"},
22916 {"INCALL_RECORD_RX", NULL, "BE_IN"},
22917 {"SLIM0_RX_VI_FB_LCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
22918 {"SLIM0_RX_VI_FB_RCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022919 {"WSA_RX_0_VI_FB_LCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
22920 {"WSA_RX_0_VI_FB_RCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022921 {"PRI_MI2S_RX_VI_FB_MUX", "SENARY_TX", "SENARY_TX"},
22922 {"INT4_MI2S_RX_VI_FB_MONO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
22923 {"INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
22924 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_LCH_MUX"},
22925 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_RCH_MUX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022926 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_LCH_MUX"},
22927 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_RCH_MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022928 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_VI_FB_MUX"},
22929 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_MONO_CH_MUX"},
22930 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_STEREO_CH_MUX"},
22931 {"PRI_TDM_TX_0", NULL, "BE_IN"},
22932 {"PRI_TDM_TX_1", NULL, "BE_IN"},
22933 {"PRI_TDM_TX_2", NULL, "BE_IN"},
22934 {"PRI_TDM_TX_3", NULL, "BE_IN"},
22935 {"SEC_TDM_TX_0", NULL, "BE_IN"},
22936 {"SEC_TDM_TX_1", NULL, "BE_IN"},
22937 {"SEC_TDM_TX_2", NULL, "BE_IN"},
22938 {"SEC_TDM_TX_3", NULL, "BE_IN"},
22939 {"TERT_TDM_TX_0", NULL, "BE_IN"},
22940 {"TERT_TDM_TX_1", NULL, "BE_IN"},
22941 {"TERT_TDM_TX_2", NULL, "BE_IN"},
22942 {"TERT_TDM_TX_3", NULL, "BE_IN"},
Derek Chenfdcc0982018-10-02 15:14:03 -070022943 {"TERT_TDM_TX_7", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022944 {"QUAT_TDM_TX_0", NULL, "BE_IN"},
22945 {"QUAT_TDM_TX_1", NULL, "BE_IN"},
22946 {"QUAT_TDM_TX_2", NULL, "BE_IN"},
22947 {"QUAT_TDM_TX_3", NULL, "BE_IN"},
Surendar Karkad47fda42018-05-20 19:21:10 +053022948 {"AFE_LOOPBACK_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053022949 {"QUIN_TDM_TX_0", NULL, "BE_IN"},
22950 {"QUIN_TDM_TX_1", NULL, "BE_IN"},
22951 {"QUIN_TDM_TX_2", NULL, "BE_IN"},
22952 {"QUIN_TDM_TX_3", NULL, "BE_IN"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022953 {"WSA_CDC_DMA_TX_0", NULL, "BE_IN"},
22954 {"WSA_CDC_DMA_TX_1", NULL, "BE_IN"},
22955 {"WSA_CDC_DMA_TX_2", NULL, "BE_IN"},
22956 {"VA_CDC_DMA_TX_0", NULL, "BE_IN"},
22957 {"VA_CDC_DMA_TX_1", NULL, "BE_IN"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022958 {"TX_CDC_DMA_TX_0", NULL, "BE_IN"},
22959 {"TX_CDC_DMA_TX_1", NULL, "BE_IN"},
22960 {"TX_CDC_DMA_TX_2", NULL, "BE_IN"},
22961 {"TX_CDC_DMA_TX_3", NULL, "BE_IN"},
22962 {"TX_CDC_DMA_TX_4", NULL, "BE_IN"},
22963 {"TX_CDC_DMA_TX_5", NULL, "BE_IN"},
Ralf Herzc8701f72018-06-20 11:37:35 +020022964 {"PRI_SPDIF_TX", NULL, "BE_IN"},
22965 {"SEC_SPDIF_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022966};
22967
22968static int msm_pcm_routing_hw_params(struct snd_pcm_substream *substream,
22969 struct snd_pcm_hw_params *params)
22970{
22971 struct snd_soc_pcm_runtime *rtd = substream->private_data;
22972 unsigned int be_id = rtd->dai_link->id;
22973
22974 if (be_id >= MSM_BACKEND_DAI_MAX) {
22975 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
22976 return -EINVAL;
22977 }
22978
22979 mutex_lock(&routing_lock);
22980 msm_bedais[be_id].sample_rate = params_rate(params);
22981 msm_bedais[be_id].channel = params_channels(params);
22982 msm_bedais[be_id].format = params_format(params);
22983 pr_debug("%s: BE Sample Rate (%d) format (%d) BE id %d\n",
22984 __func__, msm_bedais[be_id].sample_rate,
22985 msm_bedais[be_id].format, be_id);
22986 mutex_unlock(&routing_lock);
22987 return 0;
22988}
22989
22990static int msm_pcm_routing_close(struct snd_pcm_substream *substream)
22991{
22992 struct snd_soc_pcm_runtime *rtd = substream->private_data;
22993 unsigned int be_id = rtd->dai_link->id;
22994 int i, session_type, path_type, topology;
22995 struct msm_pcm_routing_bdai_data *bedai;
22996 struct msm_pcm_routing_fdai_data *fdai;
22997
22998 pr_debug("%s: substream->pcm->id:%s\n",
22999 __func__, substream->pcm->id);
23000
23001 if (be_id >= MSM_BACKEND_DAI_MAX) {
23002 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
23003 return -EINVAL;
23004 }
23005
23006 bedai = &msm_bedais[be_id];
23007 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK ?
23008 0 : 1);
23009 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
23010 path_type = ADM_PATH_PLAYBACK;
23011 else
23012 path_type = ADM_PATH_LIVE_REC;
23013
23014 mutex_lock(&routing_lock);
23015 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
23016 if (!is_mm_lsm_fe_id(i))
23017 continue;
23018 fdai = &fe_dai_map[i][session_type];
23019 if (fdai->strm_id != INVALID_SESSION) {
23020 int idx;
23021 int port_id;
23022 unsigned long copp =
23023 session_copp_map[i][session_type][be_id];
23024 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
23025 if (test_bit(idx, &copp))
23026 break;
Vignesh Kulothungane59d3152018-10-10 14:19:59 -070023027
23028 if (idx >= MAX_COPPS_PER_PORT) {
23029 pr_debug("%s: copp idx is invalid, exiting\n",
23030 __func__);
23031 continue;
23032 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023033 fdai->be_srate = bedai->sample_rate;
Surendar Karkae7507512018-07-20 15:46:54 +053023034 port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023035 topology = adm_get_topology_for_port_copp_idx(port_id,
23036 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023037 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +053023038 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023039 pr_debug("%s: copp:%ld,idx bit fe:%d, type:%d,be:%d topology=0x%x\n",
23040 __func__, copp, i, session_type, be_id,
23041 topology);
23042 clear_bit(idx,
23043 &session_copp_map[i][session_type][be_id]);
23044 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023045 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +053023046 msm_pcm_routing_deinit_pp(port_id,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023047 topology);
23048 }
23049 }
23050
23051 bedai->active = 0;
23052 bedai->sample_rate = 0;
23053 bedai->channel = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023054 mutex_unlock(&routing_lock);
23055
23056 return 0;
23057}
23058
23059static int msm_pcm_routing_prepare(struct snd_pcm_substream *substream)
23060{
23061 struct snd_soc_pcm_runtime *rtd = substream->private_data;
23062 unsigned int be_id = rtd->dai_link->id;
23063 int i, path_type, topology;
23064 int session_type = INVALID_SESSION;
23065 struct msm_pcm_routing_bdai_data *bedai;
23066 u32 channels, sample_rate;
23067 uint16_t bits_per_sample = 16, voc_path_type;
23068 struct msm_pcm_routing_fdai_data *fdai;
23069 u32 session_id;
23070 struct media_format_info voc_be_media_format;
23071 bool is_lsm;
23072
23073 pr_debug("%s: substream->pcm->id:%s\n",
23074 __func__, substream->pcm->id);
23075
23076 if (be_id >= MSM_BACKEND_DAI_MAX) {
23077 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
23078 return -EINVAL;
23079 }
23080
23081 bedai = &msm_bedais[be_id];
23082
23083 mutex_lock(&routing_lock);
23084 if (bedai->active == 1)
23085 goto done; /* Ignore prepare if back-end already active */
23086
23087 /* AFE port is not active at this point. However, still
23088 * go ahead setting active flag under the notion that
23089 * QDSP6 is able to handle ADM starting before AFE port
23090 * is started.
23091 */
23092 bedai->active = 1;
23093
23094 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
23095 if (!(is_mm_lsm_fe_id(i) &&
23096 route_check_fe_id_adm_support(i)))
23097 continue;
23098
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023099 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) ?
23100 SESSION_TYPE_RX : SESSION_TYPE_TX;
23101 fdai = &fe_dai_map[i][session_type];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023102 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023103 if (fdai->passthr_mode != LEGACY_PCM)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023104 path_type = ADM_PATH_COMPRESSED_RX;
23105 else
23106 path_type = ADM_PATH_PLAYBACK;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023107 } else {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023108 if ((fdai->passthr_mode != LEGACY_PCM) &&
23109 (fdai->passthr_mode != LISTEN))
Ralf Herzc8701f72018-06-20 11:37:35 +020023110 path_type = ADM_PATH_COMPRESSED_TX;
23111 else
23112 path_type = ADM_PATH_LIVE_REC;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023113 }
23114
23115 is_lsm = (i >= MSM_FRONTEND_DAI_LSM1) &&
23116 (i <= MSM_FRONTEND_DAI_LSM8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023117 if (fdai->strm_id != INVALID_SESSION) {
23118 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +053023119 int port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023120
23121 if (session_type == SESSION_TYPE_TX &&
23122 fdai->be_srate &&
23123 (fdai->be_srate != bedai->sample_rate)) {
23124 pr_debug("%s: flush strm %d diff BE rates\n",
23125 __func__,
23126 fdai->strm_id);
23127
23128 if (fdai->event_info.event_func)
23129 fdai->event_info.event_func(
23130 MSM_PCM_RT_EVT_BUF_RECFG,
23131 fdai->event_info.priv_data);
23132 fdai->be_srate = 0; /* might not need it */
23133 }
23134 bits_per_sample = msm_routing_get_bit_width(
23135 bedai->format);
23136
23137 app_type =
23138 fe_dai_app_type_cfg[i][session_type][be_id].app_type;
23139 if (app_type && is_lsm) {
23140 app_type_idx =
23141 msm_pcm_routing_get_lsm_app_type_idx(app_type);
23142 sample_rate =
23143 fe_dai_app_type_cfg[i][session_type][be_id]
23144 .sample_rate;
23145 bits_per_sample =
23146 lsm_app_type_cfg[app_type_idx].bit_width;
23147 } else if (app_type) {
23148 app_type_idx =
23149 msm_pcm_routing_get_app_type_idx(app_type);
23150 sample_rate =
23151 fe_dai_app_type_cfg[i][session_type]
23152 [be_id].sample_rate;
23153 bits_per_sample =
23154 app_type_cfg[app_type_idx].bit_width;
23155 } else
23156 sample_rate = bedai->sample_rate;
23157 /*
23158 * check if ADM needs to be configured with different
23159 * channel mapping than backend
23160 */
23161 if (!bedai->adm_override_ch)
23162 channels = bedai->channel;
23163 else
23164 channels = bedai->adm_override_ch;
23165 acdb_dev_id =
23166 fe_dai_app_type_cfg[i][session_type][be_id].acdb_dev_id;
23167 topology = msm_routing_get_adm_topology(i, session_type,
23168 be_id);
Ralf Herzc8701f72018-06-20 11:37:35 +020023169
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023170 if ((fdai->passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
23171 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_GEN)
23172 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_IEC61937))
Ralf Herzc8701f72018-06-20 11:37:35 +020023173 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
23174
Surendar Karkae7507512018-07-20 15:46:54 +053023175 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023176 sample_rate, channels, topology,
23177 fdai->perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +053023178 app_type, acdb_dev_id,
23179 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023180 if ((copp_idx < 0) ||
23181 (copp_idx >= MAX_COPPS_PER_PORT)) {
23182 pr_err("%s: adm open failed\n", __func__);
23183 mutex_unlock(&routing_lock);
23184 return -EINVAL;
23185 }
23186 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
23187 __func__, i, session_type, be_id);
23188 set_bit(copp_idx,
23189 &session_copp_map[i][session_type][be_id]);
23190
23191 if (msm_is_resample_needed(
23192 sample_rate,
23193 bedai->sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +053023194 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023195 bedai->sample_rate);
23196
23197 msm_pcm_routing_build_matrix(i, session_type, path_type,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023198 fdai->perf_mode, fdai->passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023199 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023200 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +053023201 msm_pcm_routing_cfg_pp(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023202 topology, channels);
23203 }
23204 }
23205
23206 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
23207 session_id = msm_pcm_routing_get_voc_sessionid(i);
23208 if (session_id) {
23209 pr_debug("%s voice session_id: 0x%x\n", __func__,
23210 session_id);
23211
23212 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
23213 voc_path_type = RX_PATH;
23214 else
23215 voc_path_type = TX_PATH;
23216
23217 voc_set_route_flag(session_id, voc_path_type, 1);
23218
23219 memset(&voc_be_media_format, 0,
23220 sizeof(struct media_format_info));
23221
23222 voc_be_media_format.port_id = bedai->port_id;
23223 voc_be_media_format.num_channels = bedai->channel;
23224 voc_be_media_format.sample_rate = bedai->sample_rate;
23225 voc_be_media_format.bits_per_sample = bedai->format;
23226 /* Defaulting this to 1 for voice call usecases */
23227 voc_be_media_format.channel_mapping[0] = 1;
23228
23229 voc_set_device_config(session_id, voc_path_type,
23230 &voc_be_media_format);
23231
23232 if (voc_get_route_flag(session_id, RX_PATH) &&
23233 voc_get_route_flag(session_id, TX_PATH))
23234 voc_enable_device(session_id);
23235 }
23236 }
23237
23238 /* Check if backend is an external ec ref port and set as needed */
23239 if (unlikely(bedai->port_id == voc_get_ext_ec_ref_port_id())) {
23240
23241 memset(&voc_be_media_format, 0,
23242 sizeof(struct media_format_info));
23243
23244 /* Get format info for ec ref port from msm_bedais[] */
23245 voc_be_media_format.port_id = bedai->port_id;
23246 voc_be_media_format.num_channels = bedai->channel;
23247 voc_be_media_format.bits_per_sample = bedai->format;
23248 voc_be_media_format.sample_rate = bedai->sample_rate;
23249 /* Defaulting this to 1 for voice call usecases */
23250 voc_be_media_format.channel_mapping[0] = 1;
23251 voc_set_ext_ec_ref_media_fmt_info(&voc_be_media_format);
23252 pr_debug("%s: EC Ref media format info set to port_id=%d, num_channels=%d, bits_per_sample=%d, sample_rate=%d\n",
23253 __func__, voc_be_media_format.port_id,
23254 voc_be_media_format.num_channels,
23255 voc_be_media_format.bits_per_sample,
23256 voc_be_media_format.sample_rate);
23257 }
23258
23259done:
23260 mutex_unlock(&routing_lock);
23261
23262 return 0;
23263}
23264
23265static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
23266 int fe_id)
23267{
23268 int index, topo_id, be_idx;
23269 unsigned long pp_config = 0;
23270 bool mute_on;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023271 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023272 bool compr_passthr_mode = true;
23273
23274 pr_debug("%s: port_id %d, copp_idx %d\n", __func__, port_id, copp_idx);
23275
23276 if (port_id != HDMI_RX && port_id != DISPLAY_PORT_RX) {
23277 pr_err("%s: Device pp params on invalid port %d\n",
23278 __func__, port_id);
23279 return -EINVAL;
23280 }
23281
23282 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
23283 if (port_id == msm_bedais[be_idx].port_id)
23284 break;
23285 }
23286
23287 if (be_idx >= MSM_BACKEND_DAI_MAX) {
23288 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
23289 return -EINVAL;
23290 }
23291
23292 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
23293 if (msm_bedais_pp_params[index].port_id == port_id)
23294 break;
23295 }
23296 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
23297 pr_err("%s: Invalid backend pp params index %d\n",
23298 __func__, index);
23299 return -EINVAL;
23300 }
23301
23302 topo_id = adm_get_topology_for_port_copp_idx(port_id, copp_idx);
23303 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY) {
23304 pr_err("%s: Invalid passthrough topology 0x%x\n",
23305 __func__, topo_id);
23306 return -EINVAL;
23307 }
23308
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023309 session_type =
23310 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
23311 SESSION_TYPE_RX : SESSION_TYPE_TX;
23312
23313 if ((fe_dai_map[fe_id][session_type].passthr_mode == LEGACY_PCM) ||
23314 (fe_dai_map[fe_id][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023315 compr_passthr_mode = false;
23316
23317 pp_config = msm_bedais_pp_params[index].pp_params_config;
23318 if (test_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config)) {
23319 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
23320 clear_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config);
23321 mute_on = msm_bedais_pp_params[index].mute_on;
23322 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23323 adm_send_compressed_device_mute(port_id,
23324 copp_idx,
23325 mute_on);
23326 }
23327 if (test_bit(ADM_PP_PARAM_LATENCY_BIT, &pp_config)) {
23328 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
23329 clear_bit(ADM_PP_PARAM_LATENCY_BIT,
23330 &pp_config);
23331 latency = msm_bedais_pp_params[index].latency;
23332 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23333 adm_send_compressed_device_latency(port_id,
23334 copp_idx,
23335 latency);
23336 }
23337 return 0;
23338}
23339
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023340static uint32_t msm_routing_get_topology(size_t data_size, void *data)
23341{
23342 uint32_t topology = NULL_COPP_TOPOLOGY;
23343 void *cal_info = NULL;
23344 uint32_t size = 0;
23345
23346 /* Retrieve cal_info size from cal data*/
23347 size = data_size - sizeof(struct audio_cal_type_basic);
23348 cal_info = kzalloc(size, GFP_KERNEL);
23349
23350 if (!cal_info)
23351 goto done;
23352
23353 memcpy(cal_info,
23354 ((uint8_t *)data + sizeof(struct audio_cal_type_basic)), size);
23355
23356 topology = ((struct audio_cal_info_adm_top *)cal_info)->topology;
23357 kfree(cal_info);
23358 cal_info = NULL;
23359
23360done:
23361 pr_debug("%s: Using topology %d\n", __func__, topology);
23362
23363 return topology;
23364}
23365
23366static void msm_routing_load_topology(size_t data_size, void *data)
23367{
23368 uint32_t topology_id;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053023369 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023370
23371 topology_id = msm_routing_get_topology(data_size, data);
23372 if (topology_id != NULL_COPP_TOPOLOGY)
23373 ret = q6core_load_unload_topo_modules(topology_id,
23374 CORE_LOAD_TOPOLOGY);
23375 if (ret < 0)
23376 pr_debug("%s %d load topology failed\n",
23377 __func__, topology_id);
23378
23379}
23380
23381static void msm_routing_unload_topology(uint32_t topology_id)
23382{
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053023383 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023384
23385 if (topology_id != NULL_COPP_TOPOLOGY)
23386 ret = q6core_load_unload_topo_modules(topology_id,
23387 CORE_UNLOAD_TOPOLOGY);
23388 if (ret < 0)
23389 pr_debug("%s %d unload topology failed\n",
23390 __func__, topology_id);
23391
23392}
23393
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023394static int msm_routing_put_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
23395 struct snd_ctl_elem_value *ucontrol)
23396{
23397 int pp_id = ucontrol->value.integer.value[0];
23398 int port_id = 0;
23399 int index, be_idx, i, topo_id, idx;
23400 bool mute;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023401 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023402 bool compr_passthr_mode = true;
23403
23404 pr_debug("%s: pp_id: 0x%x\n", __func__, pp_id);
23405
23406 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
23407 port_id = msm_bedais[be_idx].port_id;
23408 if (port_id == HDMI_RX || port_id == DISPLAY_PORT_RX)
23409 break;
23410 }
23411
23412 if (be_idx >= MSM_BACKEND_DAI_MAX) {
23413 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
23414 return -EINVAL;
23415 }
23416
23417 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
23418 if (msm_bedais_pp_params[index].port_id == port_id)
23419 break;
23420 }
23421 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
23422 pr_err("%s: Invalid pp params backend index %d\n",
23423 __func__, index);
23424 return -EINVAL;
23425 }
23426
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023427 session_type =
23428 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
23429 SESSION_TYPE_RX : SESSION_TYPE_TX;
23430
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023431 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
23432 MSM_FRONTEND_DAI_MM_SIZE) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023433 if ((fe_dai_map[i][session_type].passthr_mode == LEGACY_PCM) ||
23434 (fe_dai_map[i][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023435 compr_passthr_mode = false;
23436
23437 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
23438 unsigned long copp =
23439 session_copp_map[i]
23440 [SESSION_TYPE_RX][be_idx];
23441 if (!test_bit(idx, &copp))
23442 continue;
23443 topo_id = adm_get_topology_for_port_copp_idx(port_id,
23444 idx);
23445 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY)
23446 continue;
23447 pr_debug("%s: port: 0x%x, copp %ld, be active: %d, passt: %d\n",
23448 __func__, port_id, copp, msm_bedais[be_idx].active,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023449 fe_dai_map[i][session_type].passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023450 switch (pp_id) {
23451 case ADM_PP_PARAM_MUTE_ID:
23452 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
23453 mute = ucontrol->value.integer.value[1] ? true : false;
23454 msm_bedais_pp_params[index].mute_on = mute;
23455 set_bit(ADM_PP_PARAM_MUTE_BIT,
23456 &msm_bedais_pp_params[index].pp_params_config);
23457 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23458 adm_send_compressed_device_mute(port_id,
23459 idx, mute);
23460 break;
23461 case ADM_PP_PARAM_LATENCY_ID:
23462 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
23463 msm_bedais_pp_params[index].latency =
23464 ucontrol->value.integer.value[1];
23465 set_bit(ADM_PP_PARAM_LATENCY_BIT,
23466 &msm_bedais_pp_params[index].pp_params_config);
23467 latency = msm_bedais_pp_params[index].latency =
23468 ucontrol->value.integer.value[1];
23469 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23470 adm_send_compressed_device_latency(port_id,
23471 idx, latency);
23472 break;
23473 default:
23474 pr_info("%s, device pp param %d not supported\n",
23475 __func__, pp_id);
23476 break;
23477 }
23478 }
23479 }
23480 return 0;
23481}
23482
23483static int msm_routing_get_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
23484 struct snd_ctl_elem_value *ucontrol)
23485{
23486 pr_debug("%s:msm_routing_get_device_pp_params_mixer", __func__);
23487 return 0;
23488}
23489
23490static const struct snd_kcontrol_new device_pp_params_mixer_controls[] = {
23491 SOC_SINGLE_MULTI_EXT("Device PP Params", SND_SOC_NOPM, 0, 0xFFFFFFFF,
23492 0, 3, msm_routing_get_device_pp_params_mixer,
23493 msm_routing_put_device_pp_params_mixer),
23494};
23495
23496static int msm_aptx_dec_license_control_get(struct snd_kcontrol *kcontrol,
23497 struct snd_ctl_elem_value *ucontrol)
23498{
23499 ucontrol->value.integer.value[0] =
23500 core_get_license_status(ASM_MEDIA_FMT_APTX);
23501 pr_debug("%s: status %ld\n", __func__,
23502 ucontrol->value.integer.value[0]);
23503 return 0;
23504}
23505
23506static int msm_aptx_dec_license_control_put(struct snd_kcontrol *kcontrol,
23507 struct snd_ctl_elem_value *ucontrol)
23508{
23509 int32_t status = 0;
23510
23511 status = core_set_license(ucontrol->value.integer.value[0],
23512 APTX_CLASSIC_DEC_LICENSE_ID);
23513 pr_debug("%s: status %d\n", __func__, status);
23514 return status;
23515}
23516
23517static const struct snd_kcontrol_new aptx_dec_license_controls[] = {
23518 SOC_SINGLE_EXT("APTX Dec License", SND_SOC_NOPM, 0,
23519 0xFFFF, 0, msm_aptx_dec_license_control_get,
23520 msm_aptx_dec_license_control_put),
23521};
23522
23523static int msm_routing_be_dai_name_table_info(struct snd_kcontrol *kcontrol,
23524 struct snd_ctl_elem_info *uinfo)
23525{
23526 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
23527 uinfo->count = sizeof(be_dai_name_table);
23528 return 0;
23529}
23530
23531static int msm_routing_be_dai_name_table_tlv_get(struct snd_kcontrol *kcontrol,
23532 unsigned int __user *bytes,
23533 unsigned int size)
23534{
23535 int i;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053023536 int ret = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023537
23538 if (size < sizeof(be_dai_name_table)) {
23539 pr_err("%s: invalid size %d requested, returning\n",
23540 __func__, size);
23541 ret = -EINVAL;
23542 goto done;
23543 }
23544
23545 /*
23546 * Fill be_dai_name_table from msm_bedais table to reduce code changes
23547 * needed when adding new backends
23548 */
23549 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
23550 be_dai_name_table[i].be_id = i;
23551 strlcpy(be_dai_name_table[i].be_name,
23552 msm_bedais[i].name,
23553 LPASS_BE_NAME_MAX_LENGTH);
23554 }
23555
23556 ret = copy_to_user(bytes, &be_dai_name_table,
23557 sizeof(be_dai_name_table));
23558 if (ret) {
23559 pr_err("%s: failed to copy be_dai_name_table\n", __func__);
23560 ret = -EFAULT;
23561 }
23562
23563done:
23564 return ret;
23565}
23566
23567static const struct snd_kcontrol_new
23568 msm_routing_be_dai_name_table_mixer_controls[] = {
23569 {
23570 .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |
23571 SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK,
23572 .info = msm_routing_be_dai_name_table_info,
23573 .name = "Backend DAI Name Table",
23574 .tlv.c = snd_soc_bytes_tlv_callback,
23575 .private_value = (unsigned long) &(struct soc_bytes_ext) {
23576 .max = sizeof(be_dai_name_table),
23577 .get = msm_routing_be_dai_name_table_tlv_get,
23578 }
23579 },
23580};
23581
23582static int msm_routing_stereo_channel_reverse_control_get(
23583 struct snd_kcontrol *kcontrol,
23584 struct snd_ctl_elem_value *ucontrol)
23585{
23586 ucontrol->value.integer.value[0] = swap_ch;
23587 pr_debug("%s: Swap channel value: %ld\n", __func__,
23588 ucontrol->value.integer.value[0]);
23589 return 0;
23590}
23591
23592static int msm_routing_stereo_channel_reverse_control_put(
23593 struct snd_kcontrol *kcontrol,
23594 struct snd_ctl_elem_value *ucontrol)
23595{
23596 int i, idx, be_index, port_id;
23597 int ret = 0;
23598 unsigned long copp;
23599
23600 pr_debug("%s Swap channel value:%ld\n", __func__,
23601 ucontrol->value.integer.value[0]);
23602
23603 swap_ch = ucontrol->value.integer.value[0];
23604
23605 mutex_lock(&routing_lock);
23606 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
23607 port_id = msm_bedais[be_index].port_id;
23608 if (!msm_bedais[be_index].active)
23609 continue;
23610
23611 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
23612 MSM_FRONTEND_DAI_MM_SIZE) {
23613 copp = session_copp_map[i][SESSION_TYPE_RX][be_index];
23614 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
23615 if (!test_bit(idx, &copp))
23616 continue;
23617
23618 pr_debug("%s: swap channel control of portid:%d, coppid:%d\n",
23619 __func__, port_id, idx);
23620 ret = adm_swap_speaker_channels(
23621 port_id, idx,
23622 msm_bedais[be_index].sample_rate,
23623 swap_ch);
23624 if (ret) {
23625 pr_err("%s:Swap_channel failed, err=%d\n",
23626 __func__, ret);
23627 goto done;
23628 }
23629 }
23630 }
23631 }
23632done:
23633 mutex_unlock(&routing_lock);
23634 return ret;
23635}
23636
23637static const struct snd_kcontrol_new stereo_channel_reverse_control[] = {
23638 SOC_SINGLE_EXT("Swap channel", SND_SOC_NOPM, 0,
23639 1, 0, msm_routing_stereo_channel_reverse_control_get,
23640 msm_routing_stereo_channel_reverse_control_put),
23641};
23642
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080023643static int msm_routing_instance_id_support_info(struct snd_kcontrol *kcontrol,
23644 struct snd_ctl_elem_info *uinfo)
23645{
23646 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
23647 uinfo->count = 1;
23648 return 0;
23649}
23650
23651static int msm_routing_instance_id_support_put(
23652 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
23653{
23654 bool supported = ucontrol->value.integer.value[0] ? true : false;
23655
23656 q6common_update_instance_id_support(supported);
23657 return 0;
23658}
23659
23660static int msm_routing_instance_id_support_get(
23661 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
23662{
23663 bool supported = false;
23664
23665 supported = q6common_is_instance_id_supported();
23666 ucontrol->value.integer.value[0] = supported ? 1 : 0;
23667
23668 return 0;
23669}
23670
23671static const struct snd_kcontrol_new
23672 msm_routing_feature_support_mixer_controls[] = {
23673 {
23674 .access = SNDRV_CTL_ELEM_ACCESS_READ |
23675 SNDRV_CTL_ELEM_ACCESS_WRITE,
23676 .info = msm_routing_instance_id_support_info,
23677 .name = "Instance ID Support",
23678 .put = msm_routing_instance_id_support_put,
23679 .get = msm_routing_instance_id_support_get,
23680 },
23681};
23682
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023683static const struct snd_pcm_ops msm_routing_pcm_ops = {
23684 .hw_params = msm_pcm_routing_hw_params,
23685 .close = msm_pcm_routing_close,
23686 .prepare = msm_pcm_routing_prepare,
23687};
23688
23689/* Not used but frame seems to require it */
Meng Wangee084a02018-09-04 16:11:58 +080023690static int msm_routing_probe(struct snd_soc_component *component)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023691{
Meng Wangee084a02018-09-04 16:11:58 +080023692 snd_soc_dapm_new_controls(&component->dapm, msm_qdsp6_widgets,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023693 ARRAY_SIZE(msm_qdsp6_widgets));
Meng Wangee084a02018-09-04 16:11:58 +080023694 snd_soc_dapm_add_routes(&component->dapm, intercon,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023695 ARRAY_SIZE(intercon));
23696
Meng Wangee084a02018-09-04 16:11:58 +080023697 snd_soc_dapm_new_widgets(component->dapm.card);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023698
Meng Wangee084a02018-09-04 16:11:58 +080023699 snd_soc_add_component_controls(component, lsm_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023700 ARRAY_SIZE(lsm_controls));
23701
Meng Wangee084a02018-09-04 16:11:58 +080023702 snd_soc_add_component_controls(component, aanc_slim_0_rx_mux,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023703 ARRAY_SIZE(aanc_slim_0_rx_mux));
23704
Meng Wangee084a02018-09-04 16:11:58 +080023705 snd_soc_add_component_controls(component, aanc_noise_level,
Sudheer Papothic07b37a2018-05-04 05:56:47 +053023706 ARRAY_SIZE(aanc_noise_level));
23707
Meng Wangee084a02018-09-04 16:11:58 +080023708 snd_soc_add_component_controls(component, msm_voc_session_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023709 ARRAY_SIZE(msm_voc_session_controls));
23710
Meng Wangee084a02018-09-04 16:11:58 +080023711 snd_soc_add_component_controls(component, app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023712 ARRAY_SIZE(app_type_cfg_controls));
23713
Meng Wangee084a02018-09-04 16:11:58 +080023714 snd_soc_add_component_controls(component, lsm_app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023715 ARRAY_SIZE(lsm_app_type_cfg_controls));
23716
Meng Wangee084a02018-09-04 16:11:58 +080023717 snd_soc_add_component_controls(component, module_cfg_controls,
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070023718 ARRAY_SIZE(module_cfg_controls));
23719
Meng Wangee084a02018-09-04 16:11:58 +080023720 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023721 stereo_to_custom_stereo_controls,
23722 ARRAY_SIZE(stereo_to_custom_stereo_controls));
23723
Meng Wangee084a02018-09-04 16:11:58 +080023724 snd_soc_add_component_controls(component, ec_ref_param_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023725 ARRAY_SIZE(ec_ref_param_controls));
23726
Meng Wangee084a02018-09-04 16:11:58 +080023727 snd_soc_add_component_controls(component, channel_mixer_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023728 ARRAY_SIZE(channel_mixer_controls));
23729
Meng Wangee084a02018-09-04 16:11:58 +080023730 msm_qti_pp_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023731
Meng Wangee084a02018-09-04 16:11:58 +080023732 msm_dts_srs_tm_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023733
Meng Wangee084a02018-09-04 16:11:58 +080023734 msm_dolby_dap_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023735
Meng Wangee084a02018-09-04 16:11:58 +080023736 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023737 use_ds1_or_ds2_controls,
23738 ARRAY_SIZE(use_ds1_or_ds2_controls));
23739
Meng Wangee084a02018-09-04 16:11:58 +080023740 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023741 device_pp_params_mixer_controls,
23742 ARRAY_SIZE(device_pp_params_mixer_controls));
23743
Meng Wangee084a02018-09-04 16:11:58 +080023744 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023745 msm_routing_be_dai_name_table_mixer_controls,
23746 ARRAY_SIZE(msm_routing_be_dai_name_table_mixer_controls));
23747
Meng Wangee084a02018-09-04 16:11:58 +080023748 snd_soc_add_component_controls(component, msm_source_tracking_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023749 ARRAY_SIZE(msm_source_tracking_controls));
Meng Wangee084a02018-09-04 16:11:58 +080023750 snd_soc_add_component_controls(component, adm_channel_config_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023751 ARRAY_SIZE(adm_channel_config_controls));
23752
Meng Wangee084a02018-09-04 16:11:58 +080023753 snd_soc_add_component_controls(component, aptx_dec_license_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023754 ARRAY_SIZE(aptx_dec_license_controls));
Meng Wangee084a02018-09-04 16:11:58 +080023755 snd_soc_add_component_controls(component,
23756 stereo_channel_reverse_control,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023757 ARRAY_SIZE(stereo_channel_reverse_control));
Meng Wangee084a02018-09-04 16:11:58 +080023758 snd_soc_add_component_controls(
23759 component, msm_routing_feature_support_mixer_controls,
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080023760 ARRAY_SIZE(msm_routing_feature_support_mixer_controls));
23761
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023762 return 0;
23763}
23764
23765int msm_routing_pcm_new(struct snd_soc_pcm_runtime *runtime)
23766{
23767 return msm_pcm_routing_hwdep_new(runtime, msm_bedais);
23768}
23769
23770void msm_routing_pcm_free(struct snd_pcm *pcm)
23771{
23772 msm_pcm_routing_hwdep_free(pcm);
23773}
23774
Meng Wangee084a02018-09-04 16:11:58 +080023775static struct snd_soc_component_driver msm_soc_routing_component = {
23776 .name = DRV_NAME,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023777 .ops = &msm_routing_pcm_ops,
23778 .probe = msm_routing_probe,
23779 .pcm_new = msm_routing_pcm_new,
23780 .pcm_free = msm_routing_pcm_free,
23781};
23782
23783static int msm_routing_pcm_probe(struct platform_device *pdev)
23784{
23785
23786 dev_dbg(&pdev->dev, "dev name %s\n", dev_name(&pdev->dev));
Meng Wangee084a02018-09-04 16:11:58 +080023787 return snd_soc_register_component(&pdev->dev,
23788 &msm_soc_routing_component,
23789 NULL, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023790}
23791
23792static int msm_routing_pcm_remove(struct platform_device *pdev)
23793{
Meng Wangee084a02018-09-04 16:11:58 +080023794 snd_soc_unregister_component(&pdev->dev);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023795 return 0;
23796}
23797
23798static const struct of_device_id msm_pcm_routing_dt_match[] = {
23799 {.compatible = "qcom,msm-pcm-routing"},
23800 {}
23801};
23802MODULE_DEVICE_TABLE(of, msm_pcm_routing_dt_match);
23803
23804static struct platform_driver msm_routing_pcm_driver = {
23805 .driver = {
23806 .name = "msm-pcm-routing",
23807 .owner = THIS_MODULE,
23808 .of_match_table = msm_pcm_routing_dt_match,
23809 },
23810 .probe = msm_routing_pcm_probe,
23811 .remove = msm_routing_pcm_remove,
23812};
23813
23814int msm_routing_check_backend_enabled(int fedai_id)
23815{
23816 int i;
23817
23818 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
23819 /* bad ID assigned in machine driver */
23820 pr_err("%s: bad MM ID\n", __func__);
23821 return 0;
23822 }
23823 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
23824 if (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))
23825 return msm_bedais[i].active;
23826 }
23827 return 0;
23828}
23829
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023830static int get_cal_type_index(int32_t cal_type)
23831{
23832 int ret = -EINVAL;
23833
23834 switch (cal_type) {
23835 case ADM_TOPOLOGY_CAL_TYPE:
23836 ret = ADM_TOPOLOGY_CAL_TYPE_IDX;
23837 break;
23838 case ADM_LSM_TOPOLOGY_CAL_TYPE:
23839 ret = ADM_LSM_TOPOLOGY_CAL_TYPE_IDX;
23840 break;
23841 default:
23842 pr_err("%s: Invalid cal type %d\n", __func__, cal_type);
23843 }
23844 return ret;
23845}
23846
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023847static int msm_routing_set_cal(int32_t cal_type,
23848 size_t data_size, void *data)
23849{
23850 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023851 int cal_index;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023852 pr_debug("%s\n", __func__);
23853
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023854 cal_index = get_cal_type_index(cal_type);
23855 if (cal_index < 0) {
23856 pr_err("%s: Could not get cal index %d\n",
23857 __func__, cal_index);
23858 ret = -EINVAL;
23859 goto done;
23860 }
23861
23862 ret = cal_utils_set_cal(data_size, data, cal_data[cal_index], 0, NULL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023863 if (ret < 0) {
23864 pr_err("%s: cal_utils_set_cal failed, ret = %d, cal type = %d!\n",
23865 __func__, ret, cal_type);
23866 ret = -EINVAL;
23867 goto done;
23868 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023869 /* Pre-load if it is ADM topology */
23870 if ((cal_index == ADM_TOPOLOGY_CAL_TYPE_IDX) ||
23871 (cal_index == ADM_LSM_TOPOLOGY_CAL_TYPE_IDX)) {
23872 msm_routing_load_topology(data_size, data);
23873 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023874done:
23875 return ret;
23876}
23877
23878static void msm_routing_delete_cal_data(void)
23879{
23880 pr_debug("%s\n", __func__);
23881
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023882 cal_utils_destroy_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023883}
23884
23885static int msm_routing_init_cal_data(void)
23886{
23887 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023888 struct cal_type_info cal_type_info[] = {
23889 {{ADM_TOPOLOGY_CAL_TYPE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023890 {NULL, NULL, NULL,
23891 msm_routing_set_cal, NULL, NULL} },
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023892 {NULL, NULL, cal_utils_match_buf_num} },
23893
23894 {{ADM_LSM_TOPOLOGY_CAL_TYPE,
23895 {NULL, NULL, NULL,
23896 msm_routing_set_cal, NULL, NULL} },
23897 {NULL, NULL, cal_utils_match_buf_num} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023898 };
23899 pr_debug("%s\n", __func__);
23900
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023901 ret = cal_utils_create_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0],
23902 &cal_type_info[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023903 if (ret < 0) {
23904 pr_err("%s: could not create cal type!\n",
23905 __func__);
23906 ret = -EINVAL;
23907 goto err;
23908 }
23909
23910 return ret;
23911err:
23912 msm_routing_delete_cal_data();
23913 return ret;
23914}
23915
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053023916int __init msm_soc_routing_platform_init(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023917{
23918 mutex_init(&routing_lock);
23919 if (msm_routing_init_cal_data())
23920 pr_err("%s: could not init cal data!\n", __func__);
23921
23922 afe_set_routing_callback(
23923 (routing_cb)msm_pcm_get_dev_acdb_id_by_port_id);
23924
23925 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
23926 memset(&last_be_id_configured, 0, sizeof(last_be_id_configured));
23927
23928 return platform_driver_register(&msm_routing_pcm_driver);
23929}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023930
Asish Bhattacharya5faacb32017-12-04 17:23:15 +053023931void msm_soc_routing_platform_exit(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023932{
23933 msm_routing_delete_cal_data();
23934 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
23935 mutex_destroy(&routing_lock);
23936 platform_driver_unregister(&msm_routing_pcm_driver);
23937}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023938
23939MODULE_DESCRIPTION("MSM routing platform driver");
23940MODULE_LICENSE("GPL v2");