blob: 7292949073bfad7d88536d31326e2a85a361ac6b [file] [log] [blame]
Vignesh Kulothungan5c109922018-01-24 17:36:18 -08001/* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302 *
3 * This program is free software; you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License version 2 and
5 * only version 2 as published by the Free Software Foundation.
6 *
7 * This program is distributed in the hope that it will be useful,
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 * GNU General Public License for more details.
11 */
12
13#include <linux/init.h>
14#include <linux/err.h>
15#include <linux/module.h>
16#include <linux/moduleparam.h>
17#include <linux/platform_device.h>
18#include <linux/bitops.h>
19#include <linux/mutex.h>
20#include <linux/of_device.h>
21#include <linux/slab.h>
22#include <sound/core.h>
23#include <sound/soc.h>
24#include <sound/soc-dapm.h>
25#include <sound/pcm.h>
26#include <sound/initval.h>
27#include <sound/control.h>
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028#include <sound/tlv.h>
29#include <sound/asound.h>
30#include <sound/pcm_params.h>
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053031#include <sound/hwdep.h>
Laxminath Kasam605b42f2017-08-01 22:02:15 +053032#include <sound/audio_effects.h>
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053033#include <dsp/msm-dts-srs-tm-config.h>
Laxminath Kasam605b42f2017-08-01 22:02:15 +053034#include <dsp/q6voice.h>
35#include <dsp/q6adm-v2.h>
36#include <dsp/q6asm-v2.h>
37#include <dsp/q6afe-v2.h>
38#include <dsp/q6lsm.h>
39#include <dsp/q6core.h>
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080040#include <dsp/q6common.h>
Laxminath Kasam605b42f2017-08-01 22:02:15 +053041#include <dsp/audio_cal_utils.h>
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053042
43#include "msm-pcm-routing-v2.h"
44#include "msm-pcm-routing-devdep.h"
45#include "msm-qti-pp-config.h"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053046#include "msm-dolby-dap-config.h"
47#include "msm-ds2-dap-config.h"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053048
49#ifndef CONFIG_DOLBY_DAP
50#undef DOLBY_ADM_COPP_TOPOLOGY_ID
51#define DOLBY_ADM_COPP_TOPOLOGY_ID 0xFFFFFFFE
52#endif
53
54#ifndef CONFIG_DOLBY_DS2
55#undef DS2_ADM_COPP_TOPOLOGY_ID
56#define DS2_ADM_COPP_TOPOLOGY_ID 0xFFFFFFFF
57#endif
58
59static struct mutex routing_lock;
60
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053061static struct cal_type_data *cal_data[MAX_ROUTING_CAL_TYPES];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053062
63static int fm_switch_enable;
64static int hfp_switch_enable;
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080065static int a2dp_switch_enable;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053066static int int0_mi2s_switch_enable;
67static int int4_mi2s_switch_enable;
68static int pri_mi2s_switch_enable;
69static int sec_mi2s_switch_enable;
70static int tert_mi2s_switch_enable;
71static int quat_mi2s_switch_enable;
Rohit Kumara5077932017-09-10 22:05:05 +053072static int quin_mi2s_switch_enable;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053073static int fm_pcmrx_switch_enable;
74static int usb_switch_enable;
75static int lsm_port_index;
76static int slim0_rx_aanc_fb_port;
77static int msm_route_ec_ref_rx;
78static int msm_ec_ref_ch = 4;
79static int msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
80static int msm_ec_ref_sampling_rate = 48000;
81static uint32_t voc_session_id = ALL_SESSION_VSID;
82static int msm_route_ext_ec_ref;
83static bool is_custom_stereo_on;
84static bool is_ds2_on;
85static bool swap_ch;
Sudheer Papothic07b37a2018-05-04 05:56:47 +053086static int aanc_level;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053087
88#define WEIGHT_0_DB 0x4000
89/* all the FEs which can support channel mixer */
90static struct msm_pcm_channel_mixer channel_mixer[MSM_FRONTEND_DAI_MM_SIZE];
91/* input BE for each FE */
92static int channel_input[MSM_FRONTEND_DAI_MM_SIZE][ADM_MAX_CHANNELS];
93
94enum {
95 MADNONE,
96 MADAUDIO,
97 MADBEACON,
98 MADULTRASOUND,
99 MADSWAUDIO,
100};
101
102#define ADM_LSM_PORT_INDEX 9
103
104#define SLIMBUS_0_TX_TEXT "SLIMBUS_0_TX"
105#define SLIMBUS_1_TX_TEXT "SLIMBUS_1_TX"
106#define SLIMBUS_2_TX_TEXT "SLIMBUS_2_TX"
107#define SLIMBUS_3_TX_TEXT "SLIMBUS_3_TX"
108#define SLIMBUS_4_TX_TEXT "SLIMBUS_4_TX"
109#define SLIMBUS_5_TX_TEXT "SLIMBUS_5_TX"
110#define TERT_MI2S_TX_TEXT "TERT_MI2S_TX"
111#define QUAT_MI2S_TX_TEXT "QUAT_MI2S_TX"
112#define ADM_LSM_TX_TEXT "ADM_LSM_TX"
113#define INT3_MI2S_TX_TEXT "INT3_MI2S_TX"
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +0530114#define VA_CDC_DMA_TX_0_TEXT "VA_CDC_DMA_TX_0"
115#define VA_CDC_DMA_TX_1_TEXT "VA_CDC_DMA_TX_1"
Aditya Bavanarie9454c62018-08-23 23:45:20 +0530116#define TX_CDC_DMA_TX_3_TEXT "TX_CDC_DMA_TX_3"
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +0530117#define QUIN_TDM_TX_TEXT "QUIN_TDM_TX_0"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530118
119#define LSM_FUNCTION_TEXT "LSM Function"
120static const char * const lsm_port_text[] = {
121 "None",
122 SLIMBUS_0_TX_TEXT, SLIMBUS_1_TX_TEXT, SLIMBUS_2_TX_TEXT,
123 SLIMBUS_3_TX_TEXT, SLIMBUS_4_TX_TEXT, SLIMBUS_5_TX_TEXT,
124 TERT_MI2S_TX_TEXT, QUAT_MI2S_TX_TEXT, ADM_LSM_TX_TEXT,
Aditya Bavanarie9454c62018-08-23 23:45:20 +0530125 INT3_MI2S_TX_TEXT, VA_CDC_DMA_TX_0_TEXT, VA_CDC_DMA_TX_1_TEXT,
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +0530126 TX_CDC_DMA_TX_3_TEXT, QUIN_TDM_TX_TEXT
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530127};
128
129struct msm_pcm_route_bdai_pp_params {
130 u16 port_id; /* AFE port ID */
131 unsigned long pp_params_config;
132 bool mute_on;
133 int latency;
134};
135
136static struct msm_pcm_route_bdai_pp_params
137 msm_bedais_pp_params[MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX] = {
138 {HDMI_RX, 0, 0, 0},
139 {DISPLAY_PORT_RX, 0, 0, 0},
140};
141
142/*
143 * The be_dai_name_table is passed to HAL so that it can specify the
144 * BE ID for the BE it wants to enable based on the name. Thus there
145 * is a matching table and structure in HAL that need to be updated
146 * if any changes to these are made.
147 */
148struct msm_pcm_route_bdai_name {
149 unsigned int be_id;
150 char be_name[LPASS_BE_NAME_MAX_LENGTH];
151};
152static struct msm_pcm_route_bdai_name be_dai_name_table[MSM_BACKEND_DAI_MAX];
153
154static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
155 int fe_id);
156
Vikram Panduranga6e55ad82018-03-14 13:56:18 -0700157static void msm_routing_load_topology(size_t data_size, void *data);
158static void msm_routing_unload_topology(uint32_t topology_id);
159
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530160static int msm_routing_get_bit_width(unsigned int format)
161{
162 int bit_width;
163
164 switch (format) {
165 case SNDRV_PCM_FORMAT_S32_LE:
166 bit_width = 32;
167 break;
168 case SNDRV_PCM_FORMAT_S24_LE:
169 case SNDRV_PCM_FORMAT_S24_3LE:
170 bit_width = 24;
171 break;
172 case SNDRV_PCM_FORMAT_S16_LE:
173 default:
174 bit_width = 16;
175 }
176 return bit_width;
177}
178
179static bool msm_is_resample_needed(int input_sr, int output_sr)
180{
181 bool rc = false;
182
183 if (input_sr != output_sr)
184 rc = true;
185
186 pr_debug("perform resampling (%s) for copp rate (%d)afe rate (%d)",
187 (rc ? "oh yes" : "not really"),
188 input_sr, output_sr);
189
190 return rc;
191}
192
193static void msm_pcm_routing_cfg_pp(int port_id, int copp_idx, int topology,
194 int channels)
195{
196 int rc = 0;
197
198 switch (topology) {
199 case SRS_TRUMEDIA_TOPOLOGY_ID:
200 pr_debug("%s: SRS_TRUMEDIA_TOPOLOGY_ID\n", __func__);
201 msm_dts_srs_tm_init(port_id, copp_idx);
202 break;
203 case DS2_ADM_COPP_TOPOLOGY_ID:
204 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY %d\n",
205 __func__, DS2_ADM_COPP_TOPOLOGY_ID);
206 rc = msm_ds2_dap_init(port_id, copp_idx, channels,
207 is_custom_stereo_on);
208 if (rc < 0)
209 pr_err("%s: DS2 topo_id 0x%x, port %d, CS %d rc %d\n",
210 __func__, topology, port_id,
211 is_custom_stereo_on, rc);
212 break;
213 case DOLBY_ADM_COPP_TOPOLOGY_ID:
214 if (is_ds2_on) {
215 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY\n", __func__);
216 rc = msm_ds2_dap_init(port_id, copp_idx, channels,
217 is_custom_stereo_on);
218 if (rc < 0)
219 pr_err("%s:DS2 topo_id 0x%x, port %d, rc %d\n",
220 __func__, topology, port_id, rc);
221 } else {
222 pr_debug("%s: DOLBY_ADM_COPP_TOPOLOGY_ID\n", __func__);
223 rc = msm_dolby_dap_init(port_id, copp_idx, channels,
224 is_custom_stereo_on);
225 if (rc < 0)
226 pr_err("%s: DS1 topo_id 0x%x, port %d, rc %d\n",
227 __func__, topology, port_id, rc);
228 }
229 break;
230 case ADM_CMD_COPP_OPEN_TOPOLOGY_ID_AUDIOSPHERE:
231 pr_debug("%s: TOPOLOGY_ID_AUDIOSPHERE\n", __func__);
232 rc = msm_qti_pp_asphere_init(port_id, copp_idx);
233 if (rc < 0)
234 pr_err("%s: topo_id 0x%x, port %d, copp %d, rc %d\n",
235 __func__, topology, port_id, copp_idx, rc);
236 break;
237 default:
238 /* custom topology specific feature param handlers */
239 break;
240 }
241}
242
243static void msm_pcm_routing_deinit_pp(int port_id, int topology)
244{
245 switch (topology) {
246 case SRS_TRUMEDIA_TOPOLOGY_ID:
247 pr_debug("%s: SRS_TRUMEDIA_TOPOLOGY_ID\n", __func__);
248 msm_dts_srs_tm_deinit(port_id);
249 break;
250 case DS2_ADM_COPP_TOPOLOGY_ID:
251 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY_ID %d\n",
252 __func__, DS2_ADM_COPP_TOPOLOGY_ID);
253 msm_ds2_dap_deinit(port_id);
254 break;
255 case DOLBY_ADM_COPP_TOPOLOGY_ID:
256 if (is_ds2_on) {
257 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY_ID\n", __func__);
258 msm_ds2_dap_deinit(port_id);
259 } else {
260 pr_debug("%s: DOLBY_ADM_COPP_TOPOLOGY_ID\n", __func__);
261 msm_dolby_dap_deinit(port_id);
262 }
263 break;
264 case ADM_CMD_COPP_OPEN_TOPOLOGY_ID_AUDIOSPHERE:
265 pr_debug("%s: TOPOLOGY_ID_AUDIOSPHERE\n", __func__);
266 msm_qti_pp_asphere_deinit(port_id);
267 break;
268 default:
269 /* custom topology specific feature deinit handlers */
270 break;
271 }
272}
273
274static void msm_pcm_routng_cfg_matrix_map_pp(struct route_payload payload,
275 int path_type, int perf_mode)
276{
277 int itr = 0, rc = 0;
278
279 if ((path_type == ADM_PATH_PLAYBACK) &&
280 (perf_mode == LEGACY_PCM_MODE) &&
281 is_custom_stereo_on) {
282 for (itr = 0; itr < payload.num_copps; itr++) {
283 if ((payload.port_id[itr] != SLIMBUS_0_RX) &&
284 (payload.port_id[itr] != RT_PROXY_PORT_001_RX)) {
285 continue;
286 }
287
288 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd(
289 payload.port_id[itr],
290 payload.copp_idx[itr],
291 payload.session_id,
292 Q14_GAIN_ZERO_POINT_FIVE,
293 Q14_GAIN_ZERO_POINT_FIVE,
294 Q14_GAIN_ZERO_POINT_FIVE,
295 Q14_GAIN_ZERO_POINT_FIVE);
296 if (rc < 0)
297 pr_err("%s: err setting custom stereo\n",
298 __func__);
299 }
300 }
301}
302
303#define SLIMBUS_EXTPROC_RX AFE_PORT_INVALID
304struct msm_pcm_routing_bdai_data msm_bedais[MSM_BACKEND_DAI_MAX] = {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530305 { PRIMARY_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_PRI_I2S_RX},
306 { PRIMARY_I2S_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_PRI_I2S_TX},
307 { SLIMBUS_0_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_0_RX},
308 { SLIMBUS_0_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_0_TX},
309 { HDMI_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_HDMI},
310 { INT_BT_SCO_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_BT_SCO_RX},
311 { INT_BT_SCO_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_BT_SCO_TX},
312 { INT_FM_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_FM_RX},
313 { INT_FM_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_FM_TX},
314 { RT_PROXY_PORT_001_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530315 LPASS_BE_AFE_PCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530316 { RT_PROXY_PORT_001_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530317 LPASS_BE_AFE_PCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530318 { AFE_PORT_ID_PRIMARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530319 LPASS_BE_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530320 { AFE_PORT_ID_PRIMARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530321 LPASS_BE_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530322 { VOICE_PLAYBACK_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530323 LPASS_BE_VOICE_PLAYBACK_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530324 { VOICE2_PLAYBACK_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530325 LPASS_BE_VOICE2_PLAYBACK_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530326 { VOICE_RECORD_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530327 LPASS_BE_INCALL_RECORD_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530328 { VOICE_RECORD_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530329 LPASS_BE_INCALL_RECORD_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530330 { MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_MI2S_RX},
331 { MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_MI2S_TX},
332 { SECONDARY_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SEC_I2S_RX},
333 { SLIMBUS_1_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_1_RX},
334 { SLIMBUS_1_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_1_TX},
335 { SLIMBUS_2_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_2_RX},
336 { SLIMBUS_2_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_2_TX},
337 { SLIMBUS_3_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_3_RX},
338 { SLIMBUS_3_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_3_TX},
339 { SLIMBUS_4_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_4_RX},
340 { SLIMBUS_4_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_4_TX},
341 { SLIMBUS_5_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_5_RX},
342 { SLIMBUS_5_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_5_TX},
343 { SLIMBUS_6_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_6_RX},
344 { SLIMBUS_6_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_6_TX},
345 { SLIMBUS_7_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_7_RX},
346 { SLIMBUS_7_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_7_TX},
347 { SLIMBUS_8_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_8_RX},
348 { SLIMBUS_8_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_8_TX},
349 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_RX},
350 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_TX},
351 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_1_TX},
352 { AFE_PORT_ID_QUATERNARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530353 LPASS_BE_QUAT_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530354 { AFE_PORT_ID_QUATERNARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530355 LPASS_BE_QUAT_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530356 { AFE_PORT_ID_SECONDARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530357 LPASS_BE_SEC_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530358 { AFE_PORT_ID_SECONDARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530359 LPASS_BE_SEC_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530360 { AFE_PORT_ID_PRIMARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530361 LPASS_BE_PRI_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530362 { AFE_PORT_ID_PRIMARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530363 LPASS_BE_PRI_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530364 { AFE_PORT_ID_TERTIARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530365 LPASS_BE_TERT_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530366 { AFE_PORT_ID_TERTIARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530367 LPASS_BE_TERT_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530368 { AUDIO_PORT_ID_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530369 LPASS_BE_AUDIO_I2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530370 { AFE_PORT_ID_SECONDARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530371 LPASS_BE_SEC_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530372 { AFE_PORT_ID_SECONDARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530373 LPASS_BE_SEC_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530374 { AFE_PORT_ID_PRIMARY_SPDIF_RX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200375 LPASS_BE_PRI_SPDIF_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530376 { AFE_PORT_ID_SECONDARY_MI2S_RX_SD1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530377 LPASS_BE_SEC_MI2S_RX_SD1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530378 { AFE_PORT_ID_QUINARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530379 LPASS_BE_QUIN_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530380 { AFE_PORT_ID_QUINARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530381 LPASS_BE_QUIN_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530382 { AFE_PORT_ID_SENARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530383 LPASS_BE_SENARY_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530384 { AFE_PORT_ID_PRIMARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530385 LPASS_BE_PRI_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530386 { AFE_PORT_ID_PRIMARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530387 LPASS_BE_PRI_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530388 { AFE_PORT_ID_PRIMARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530389 LPASS_BE_PRI_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530390 { AFE_PORT_ID_PRIMARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530391 LPASS_BE_PRI_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530392 { AFE_PORT_ID_PRIMARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530393 LPASS_BE_PRI_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530394 { AFE_PORT_ID_PRIMARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530395 LPASS_BE_PRI_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530396 { AFE_PORT_ID_PRIMARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530397 LPASS_BE_PRI_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530398 { AFE_PORT_ID_PRIMARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530399 LPASS_BE_PRI_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530400 { AFE_PORT_ID_PRIMARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530401 LPASS_BE_PRI_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530402 { AFE_PORT_ID_PRIMARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530403 LPASS_BE_PRI_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530404 { AFE_PORT_ID_PRIMARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530405 LPASS_BE_PRI_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530406 { AFE_PORT_ID_PRIMARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530407 LPASS_BE_PRI_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530408 { AFE_PORT_ID_PRIMARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530409 LPASS_BE_PRI_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530410 { AFE_PORT_ID_PRIMARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530411 LPASS_BE_PRI_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530412 { AFE_PORT_ID_PRIMARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530413 LPASS_BE_PRI_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530414 { AFE_PORT_ID_PRIMARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530415 LPASS_BE_PRI_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530416 { AFE_PORT_ID_SECONDARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530417 LPASS_BE_SEC_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530418 { AFE_PORT_ID_SECONDARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530419 LPASS_BE_SEC_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530420 { AFE_PORT_ID_SECONDARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530421 LPASS_BE_SEC_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530422 { AFE_PORT_ID_SECONDARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530423 LPASS_BE_SEC_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530424 { AFE_PORT_ID_SECONDARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530425 LPASS_BE_SEC_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530426 { AFE_PORT_ID_SECONDARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530427 LPASS_BE_SEC_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530428 { AFE_PORT_ID_SECONDARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530429 LPASS_BE_SEC_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530430 { AFE_PORT_ID_SECONDARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530431 LPASS_BE_SEC_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530432 { AFE_PORT_ID_SECONDARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530433 LPASS_BE_SEC_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530434 { AFE_PORT_ID_SECONDARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530435 LPASS_BE_SEC_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530436 { AFE_PORT_ID_SECONDARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530437 LPASS_BE_SEC_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530438 { AFE_PORT_ID_SECONDARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530439 LPASS_BE_SEC_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530440 { AFE_PORT_ID_SECONDARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530441 LPASS_BE_SEC_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530442 { AFE_PORT_ID_SECONDARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530443 LPASS_BE_SEC_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530444 { AFE_PORT_ID_SECONDARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530445 LPASS_BE_SEC_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530446 { AFE_PORT_ID_SECONDARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530447 LPASS_BE_SEC_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530448 { AFE_PORT_ID_TERTIARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530449 LPASS_BE_TERT_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530450 { AFE_PORT_ID_TERTIARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530451 LPASS_BE_TERT_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530452 { AFE_PORT_ID_TERTIARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530453 LPASS_BE_TERT_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530454 { AFE_PORT_ID_TERTIARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530455 LPASS_BE_TERT_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530456 { AFE_PORT_ID_TERTIARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530457 LPASS_BE_TERT_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530458 { AFE_PORT_ID_TERTIARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530459 LPASS_BE_TERT_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530460 { AFE_PORT_ID_TERTIARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530461 LPASS_BE_TERT_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530462 { AFE_PORT_ID_TERTIARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530463 LPASS_BE_TERT_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530464 { AFE_PORT_ID_TERTIARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530465 LPASS_BE_TERT_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530466 { AFE_PORT_ID_TERTIARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530467 LPASS_BE_TERT_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530468 { AFE_PORT_ID_TERTIARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530469 LPASS_BE_TERT_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530470 { AFE_PORT_ID_TERTIARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530471 LPASS_BE_TERT_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530472 { AFE_PORT_ID_TERTIARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530473 LPASS_BE_TERT_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530474 { AFE_PORT_ID_TERTIARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530475 LPASS_BE_TERT_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530476 { AFE_PORT_ID_TERTIARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530477 LPASS_BE_TERT_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530478 { AFE_PORT_ID_TERTIARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530479 LPASS_BE_TERT_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530480 { AFE_PORT_ID_QUATERNARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530481 LPASS_BE_QUAT_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530482 { AFE_PORT_ID_QUATERNARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530483 LPASS_BE_QUAT_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530484 { AFE_PORT_ID_QUATERNARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530485 LPASS_BE_QUAT_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530486 { AFE_PORT_ID_QUATERNARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530487 LPASS_BE_QUAT_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530488 { AFE_PORT_ID_QUATERNARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530489 LPASS_BE_QUAT_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530490 { AFE_PORT_ID_QUATERNARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530491 LPASS_BE_QUAT_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530492 { AFE_PORT_ID_QUATERNARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530493 LPASS_BE_QUAT_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530494 { AFE_PORT_ID_QUATERNARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530495 LPASS_BE_QUAT_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530496 { AFE_PORT_ID_QUATERNARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530497 LPASS_BE_QUAT_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530498 { AFE_PORT_ID_QUATERNARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530499 LPASS_BE_QUAT_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530500 { AFE_PORT_ID_QUATERNARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530501 LPASS_BE_QUAT_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530502 { AFE_PORT_ID_QUATERNARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530503 LPASS_BE_QUAT_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530504 { AFE_PORT_ID_QUATERNARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530505 LPASS_BE_QUAT_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530506 { AFE_PORT_ID_QUATERNARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530507 LPASS_BE_QUAT_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530508 { AFE_PORT_ID_QUATERNARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530509 LPASS_BE_QUAT_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530510 { AFE_PORT_ID_QUATERNARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530511 LPASS_BE_QUAT_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530512 { AFE_PORT_ID_QUINARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530513 LPASS_BE_QUIN_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530514 { AFE_PORT_ID_QUINARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530515 LPASS_BE_QUIN_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530516 { AFE_PORT_ID_QUINARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530517 LPASS_BE_QUIN_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530518 { AFE_PORT_ID_QUINARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530519 LPASS_BE_QUIN_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530520 { AFE_PORT_ID_QUINARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530521 LPASS_BE_QUIN_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530522 { AFE_PORT_ID_QUINARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530523 LPASS_BE_QUIN_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530524 { AFE_PORT_ID_QUINARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530525 LPASS_BE_QUIN_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530526 { AFE_PORT_ID_QUINARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530527 LPASS_BE_QUIN_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530528 { AFE_PORT_ID_QUINARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530529 LPASS_BE_QUIN_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530530 { AFE_PORT_ID_QUINARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530531 LPASS_BE_QUIN_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530532 { AFE_PORT_ID_QUINARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530533 LPASS_BE_QUIN_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530534 { AFE_PORT_ID_QUINARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530535 LPASS_BE_QUIN_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530536 { AFE_PORT_ID_QUINARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530537 LPASS_BE_QUIN_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530538 { AFE_PORT_ID_QUINARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530539 LPASS_BE_QUIN_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530540 { AFE_PORT_ID_QUINARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530541 LPASS_BE_QUIN_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530542 { AFE_PORT_ID_QUINARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530543 LPASS_BE_QUIN_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530544 { INT_BT_A2DP_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530545 LPASS_BE_INT_BT_A2DP_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530546 { AFE_PORT_ID_USB_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530547 LPASS_BE_USB_AUDIO_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530548 { AFE_PORT_ID_USB_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530549 LPASS_BE_USB_AUDIO_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530550 { DISPLAY_PORT_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530551 LPASS_BE_DISPLAY_PORT},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530552 { DISPLAY_PORT_RX, 0, {0}, {0}, 0, 0, 0, 0,
Karthikeyan Mani57550082018-05-03 18:43:58 -0700553 LPASS_BE_DISPLAY_PORT1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530554 { AFE_PORT_ID_TERTIARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530555 LPASS_BE_TERT_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530556 { AFE_PORT_ID_TERTIARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530557 LPASS_BE_TERT_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530558 { AFE_PORT_ID_QUATERNARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530559 LPASS_BE_QUAT_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530560 { AFE_PORT_ID_QUATERNARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530561 LPASS_BE_QUAT_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530562 { AFE_PORT_ID_QUINARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530563 LPASS_BE_QUIN_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530564 { AFE_PORT_ID_QUINARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530565 LPASS_BE_QUIN_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530566 { AFE_PORT_ID_INT0_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530567 LPASS_BE_INT0_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530568 { AFE_PORT_ID_INT0_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530569 LPASS_BE_INT0_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530570 { AFE_PORT_ID_INT1_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530571 LPASS_BE_INT1_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530572 { AFE_PORT_ID_INT1_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530573 LPASS_BE_INT1_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530574 { AFE_PORT_ID_INT2_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530575 LPASS_BE_INT2_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530576 { AFE_PORT_ID_INT2_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530577 LPASS_BE_INT2_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530578 { AFE_PORT_ID_INT3_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530579 LPASS_BE_INT3_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530580 { AFE_PORT_ID_INT3_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530581 LPASS_BE_INT3_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530582 { AFE_PORT_ID_INT4_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530583 LPASS_BE_INT4_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530584 { AFE_PORT_ID_INT4_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530585 LPASS_BE_INT4_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530586 { AFE_PORT_ID_INT5_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530587 LPASS_BE_INT5_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530588 { AFE_PORT_ID_INT5_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530589 LPASS_BE_INT5_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530590 { AFE_PORT_ID_INT6_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530591 LPASS_BE_INT6_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530592 { AFE_PORT_ID_INT6_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530593 LPASS_BE_INT6_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530594 { AFE_PORT_ID_WSA_CODEC_DMA_RX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530595 LPASS_BE_WSA_CDC_DMA_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530596 { AFE_PORT_ID_WSA_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530597 LPASS_BE_WSA_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530598 { AFE_PORT_ID_WSA_CODEC_DMA_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530599 LPASS_BE_WSA_CDC_DMA_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530600 { AFE_PORT_ID_WSA_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530601 LPASS_BE_WSA_CDC_DMA_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530602 { AFE_PORT_ID_WSA_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530603 LPASS_BE_WSA_CDC_DMA_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530604 { AFE_PORT_ID_VA_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530605 LPASS_BE_VA_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530606 { AFE_PORT_ID_VA_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530607 LPASS_BE_VA_CDC_DMA_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530608 { AFE_PORT_ID_RX_CODEC_DMA_RX_0, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530609 LPASS_BE_RX_CDC_DMA_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530610 { AFE_PORT_ID_TX_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530611 LPASS_BE_TX_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530612 { AFE_PORT_ID_RX_CODEC_DMA_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530613 LPASS_BE_RX_CDC_DMA_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530614 { AFE_PORT_ID_TX_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530615 LPASS_BE_TX_CDC_DMA_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530616 { AFE_PORT_ID_RX_CODEC_DMA_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530617 LPASS_BE_RX_CDC_DMA_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530618 { AFE_PORT_ID_TX_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530619 LPASS_BE_TX_CDC_DMA_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530620 { AFE_PORT_ID_RX_CODEC_DMA_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530621 LPASS_BE_RX_CDC_DMA_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530622 { AFE_PORT_ID_TX_CODEC_DMA_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530623 LPASS_BE_TX_CDC_DMA_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530624 { AFE_PORT_ID_RX_CODEC_DMA_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530625 LPASS_BE_RX_CDC_DMA_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530626 { AFE_PORT_ID_TX_CODEC_DMA_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530627 LPASS_BE_TX_CDC_DMA_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530628 { AFE_PORT_ID_RX_CODEC_DMA_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530629 LPASS_BE_RX_CDC_DMA_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530630 { AFE_PORT_ID_TX_CODEC_DMA_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530631 LPASS_BE_TX_CDC_DMA_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530632 { AFE_PORT_ID_RX_CODEC_DMA_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530633 LPASS_BE_RX_CDC_DMA_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530634 { AFE_PORT_ID_RX_CODEC_DMA_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530635 LPASS_BE_RX_CDC_DMA_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530636 { AFE_PORT_ID_PRIMARY_SPDIF_TX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200637 LPASS_BE_PRI_SPDIF_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530638 { AFE_PORT_ID_SECONDARY_SPDIF_RX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200639 LPASS_BE_SEC_SPDIF_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530640 { AFE_PORT_ID_SECONDARY_SPDIF_TX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200641 LPASS_BE_SEC_SPDIF_TX},
Surendar Karka3ef3d812018-09-28 18:52:35 +0530642 { SLIMBUS_9_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_9_RX},
643 { SLIMBUS_9_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_9_TX},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530644};
645
646/* Track ASM playback & capture sessions of DAI
647 * Track LSM listen sessions
648 */
649static struct msm_pcm_routing_fdai_data
650 fe_dai_map[MSM_FRONTEND_DAI_MAX][2] = {
651 /* MULTIMEDIA1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530652 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
653 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530654 /* MULTIMEDIA2 */
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 /* MULTIMEDIA3 */
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 /* MULTIMEDIA4 */
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 /* MULTIMEDIA5 */
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 /* MULTIMEDIA6 */
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 /* MULTIMEDIA7*/
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 /* MULTIMEDIA8 */
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 /* MULTIMEDIA9 */
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 /* MULTIMEDIA10 */
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 /* MULTIMEDIA11 */
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 /* MULTIMEDIA12 */
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 /* MULTIMEDIA13 */
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 /* MULTIMEDIA14 */
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 /* MULTIMEDIA15 */
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 /* MULTIMEDIA16 */
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 /* MULTIMEDIA17 */
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 /* MULTIMEDIA18 */
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 /* MULTIMEDIA19 */
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 /* MULTIMEDIA20 */
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} },
Derek Chen07c6d1c2018-07-05 10:39:25 -0700711 /* MULTIMEDIA21 */
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} },
Surendar Karkac1cde372018-08-14 18:56:24 +0530714 /* MULTIMEDIA26 */
715 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
716 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
717 /* MULTIMEDIA27 */
718 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
719 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +0530720 /* MULTIMEDIA28 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530721 {{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 /* MULTIMEDIA29 */
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} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530726 /* VOIP */
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 /* AFE_RX */
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_TX */
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 /* VOICE_STUB */
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 /* DTMF_RX */
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 /* QCHAT */
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 /* VOLTE_STUB */
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 /* LSM1 */
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 /* LSM2 */
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 /* LSM3 */
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 /* LSM4 */
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 /* LSM5 */
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 /* LSM6 */
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 /* LSM7 */
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 /* LSM8 */
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 /* VOICE2_STUB */
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 /* VOICEMMODE1 */
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 /* VOICEMMODE2 */
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};
781
782static unsigned long session_copp_map[MSM_FRONTEND_DAI_MAX][2]
783 [MSM_BACKEND_DAI_MAX];
784static struct msm_pcm_routing_app_type_data app_type_cfg[MAX_APP_TYPES];
785static struct msm_pcm_routing_app_type_data lsm_app_type_cfg[MAX_APP_TYPES];
786static struct msm_pcm_stream_app_type_cfg
787 fe_dai_app_type_cfg[MSM_FRONTEND_DAI_MAX][2][MSM_BACKEND_DAI_MAX];
788
789static int last_be_id_configured[MSM_FRONTEND_DAI_MAX][MAX_SESSION_TYPES];
790
791/* The caller of this should aqcuire routing lock */
792void msm_pcm_routing_get_bedai_info(int be_idx,
793 struct msm_pcm_routing_bdai_data *be_dai)
794{
795 if (be_idx >= 0 && be_idx < MSM_BACKEND_DAI_MAX)
796 memcpy(be_dai, &msm_bedais[be_idx],
797 sizeof(struct msm_pcm_routing_bdai_data));
798}
799
800/* The caller of this should aqcuire routing lock */
801void msm_pcm_routing_get_fedai_info(int fe_idx, int sess_type,
802 struct msm_pcm_routing_fdai_data *fe_dai)
803{
804 if ((sess_type == SESSION_TYPE_TX) || (sess_type == SESSION_TYPE_RX))
805 memcpy(fe_dai, &fe_dai_map[fe_idx][sess_type],
806 sizeof(struct msm_pcm_routing_fdai_data));
807}
808
809void msm_pcm_routing_acquire_lock(void)
810{
811 mutex_lock(&routing_lock);
812}
813
814void msm_pcm_routing_release_lock(void)
815{
816 mutex_unlock(&routing_lock);
817}
818
819static int msm_pcm_routing_get_app_type_idx(int app_type)
820{
821 int idx;
822
823 pr_debug("%s: app_type: %d\n", __func__, app_type);
824 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
825 if (app_type_cfg[idx].app_type == app_type)
826 return idx;
827 }
828 pr_info("%s: App type not available, fallback to default\n", __func__);
829 return 0;
830}
831
832static int msm_pcm_routing_get_lsm_app_type_idx(int app_type)
833{
834 int idx;
835
836 pr_debug("%s: app_type: %d\n", __func__, app_type);
837 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
838 if (lsm_app_type_cfg[idx].app_type == app_type)
839 return idx;
840 }
841 pr_debug("%s: App type not available, fallback to default\n", __func__);
842 return 0;
843}
844
845static bool is_mm_lsm_fe_id(int fe_id)
846{
847 bool rc = true;
848
849 if (fe_id > MSM_FRONTEND_DAI_MM_MAX_ID &&
850 ((fe_id < MSM_FRONTEND_DAI_LSM1) ||
851 (fe_id > MSM_FRONTEND_DAI_LSM8))) {
852 rc = false;
853 }
854 return rc;
855}
856
Bhalchandra Gajareeed46bd2018-05-15 16:48:07 -0700857/*
858 * msm_pcm_routing_send_chmix_cfg:
859 * send the channel mixer command to mix the input channels
860 * into output channels.
861 *
862 * @fe_id: front end id
863 * @ip_channel_cnt: input channel count
864 * @op_channel_cnt: output channel count
865 * @ch_wght_coeff: channel weight co-efficients for channel mixing
866 * @session_type: indicates session is of type TX or RX
867 * @stream_type: indicates either Audio or Listen stream type
868 */
869int msm_pcm_routing_send_chmix_cfg(int fe_id, int ip_channel_cnt,
870 int op_channel_cnt, int *ch_wght_coeff,
871 int session_type, int stream_type)
872{
873
874 int rc = 0, idx = 0;
875 int be_index = 0, port_id;
876 unsigned int session_id = 0;
877
878 pr_debug("%s:fe_id[%d] ip_ch[%d] op_ch[%d] sess_type [%d], stream_type[%d]",
879 __func__, fe_id, ip_channel_cnt, op_channel_cnt, session_type,
880 stream_type);
881 if (!is_mm_lsm_fe_id(fe_id)) {
882 /* bad ID assigned in machine driver */
883 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
884 return -EINVAL;
885 }
886
887 if (ch_wght_coeff == NULL) {
888 pr_err("%s: Null channel weightage coefficients passed\n",
889 __func__);
890 return -EINVAL;
891 }
892
893 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
894 port_id = msm_bedais[be_index].port_id;
895 if (!msm_bedais[be_index].active ||
896 !test_bit(fe_id, &msm_bedais[be_index].fe_sessions[0]))
897 continue;
898
899 session_id = fe_dai_map[fe_id][session_type].strm_id;
900
901 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
902 unsigned long copp =
903 session_copp_map[fe_id][session_type][be_index];
904 if (!test_bit(idx, &copp))
905 continue;
906 msm_qti_pp_send_chmix_cfg_cmd(port_id, idx,
907 session_id, ip_channel_cnt,
908 op_channel_cnt, ch_wght_coeff,
909 session_type, stream_type);
910 if (rc < 0)
911 pr_err("%s: err setting channel mix config\n",
912 __func__);
913 }
914 }
915
916 return 0;
917}
918EXPORT_SYMBOL(msm_pcm_routing_send_chmix_cfg);
919
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530920int msm_pcm_routing_reg_stream_app_type_cfg(
921 int fedai_id, int session_type, int be_id,
922 struct msm_pcm_stream_app_type_cfg *cfg_data)
923{
924 int ret = 0;
925
926 if (cfg_data == NULL) {
927 pr_err("%s: Received NULL pointer for cfg_data\n", __func__);
928 ret = -EINVAL;
929 goto done;
930 }
931
932 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
933 __func__, fedai_id, session_type, be_id,
934 cfg_data->app_type, cfg_data->acdb_dev_id,
935 cfg_data->sample_rate);
936
937 if (!is_mm_lsm_fe_id(fedai_id)) {
938 pr_err("%s: Invalid machine driver ID %d\n",
939 __func__, fedai_id);
940 ret = -EINVAL;
941 goto done;
942 }
943 if (session_type != SESSION_TYPE_RX &&
944 session_type != SESSION_TYPE_TX) {
945 pr_err("%s: Invalid session type %d\n",
946 __func__, session_type);
947 ret = -EINVAL;
948 goto done;
949 }
950 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
951 pr_err("%s: Received out of bounds be_id %d\n",
952 __func__, be_id);
953 ret = -EINVAL;
954 goto done;
955 }
956
957 fe_dai_app_type_cfg[fedai_id][session_type][be_id] = *cfg_data;
958
959 /*
960 * Store the BE ID of the configuration information set as the latest so
961 * the get mixer control knows what to return.
962 */
963 last_be_id_configured[fedai_id][session_type] = be_id;
964
965done:
966 return ret;
967}
968EXPORT_SYMBOL(msm_pcm_routing_reg_stream_app_type_cfg);
969
970/**
971 * msm_pcm_routing_get_stream_app_type_cfg
972 *
973 * Receives fedai_id, session_type, be_id, and populates app_type,
974 * acdb_dev_id, & sample rate. Returns 0 on success. On failure returns
975 * -EINVAL and does not alter passed values.
976 *
977 * fedai_id - Passed value, front end ID for which app type config is wanted
978 * session_type - Passed value, session type for which app type config
979 * is wanted
980 * be_id - Returned value, back end device id the app type config data is for
981 * cfg_data - Returned value, configuration data used by app type config
982 */
983int msm_pcm_routing_get_stream_app_type_cfg(
984 int fedai_id, int session_type, int *bedai_id,
985 struct msm_pcm_stream_app_type_cfg *cfg_data)
986{
987 int be_id;
988 int ret = 0;
989
990 if (bedai_id == NULL) {
991 pr_err("%s: Received NULL pointer for backend ID\n", __func__);
992 ret = -EINVAL;
993 goto done;
994 } else if (cfg_data == NULL) {
995 pr_err("%s: NULL pointer sent for cfg_data\n", __func__);
996 ret = -EINVAL;
997 goto done;
998 } else if (!is_mm_lsm_fe_id(fedai_id)) {
999 pr_err("%s: Invalid FE ID %d\n", __func__, fedai_id);
1000 ret = -EINVAL;
1001 goto done;
1002 } else if (session_type != SESSION_TYPE_RX &&
1003 session_type != SESSION_TYPE_TX) {
1004 pr_err("%s: Invalid session type %d\n", __func__, session_type);
1005 ret = -EINVAL;
1006 goto done;
1007 }
1008
1009 be_id = last_be_id_configured[fedai_id][session_type];
1010 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1011 pr_err("%s: Invalid BE ID %d\n", __func__, be_id);
1012 ret = -EINVAL;
1013 goto done;
1014 }
1015
1016 *bedai_id = be_id;
1017 *cfg_data = fe_dai_app_type_cfg[fedai_id][session_type][be_id];
1018 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
1019 __func__, fedai_id, session_type, *bedai_id,
1020 cfg_data->app_type, cfg_data->acdb_dev_id,
1021 cfg_data->sample_rate);
1022done:
1023 return ret;
1024}
1025EXPORT_SYMBOL(msm_pcm_routing_get_stream_app_type_cfg);
1026
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301027static struct cal_block_data *msm_routing_find_topology_by_path(int path,
1028 int cal_index)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301029{
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301030 struct list_head *ptr, *next;
1031 struct cal_block_data *cal_block = NULL;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301032 pr_debug("%s\n", __func__);
1033
1034 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301035 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301036
1037 cal_block = list_entry(ptr,
1038 struct cal_block_data, list);
1039
Vikram Panduranga770b8382017-09-27 12:17:36 -07001040 if (cal_utils_is_cal_stale(cal_block))
1041 continue;
1042
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301043 if (((struct audio_cal_info_adm_top *)cal_block
1044 ->cal_info)->path == path) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301045 return cal_block;
1046 }
1047 }
1048 pr_debug("%s: Can't find topology for path %d\n", __func__, path);
1049 return NULL;
1050}
1051
1052static struct cal_block_data *msm_routing_find_topology(int path,
1053 int app_type,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301054 int acdb_id,
1055 int cal_index)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301056{
1057 struct list_head *ptr, *next;
1058 struct cal_block_data *cal_block = NULL;
1059 struct audio_cal_info_adm_top *cal_info;
1060
1061 pr_debug("%s\n", __func__);
1062
1063 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301064 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301065
1066 cal_block = list_entry(ptr,
1067 struct cal_block_data, list);
1068
Vikram Panduranga770b8382017-09-27 12:17:36 -07001069 if (cal_utils_is_cal_stale(cal_block))
1070 continue;
1071
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301072 cal_info = (struct audio_cal_info_adm_top *)
1073 cal_block->cal_info;
1074 if ((cal_info->path == path) &&
1075 (cal_info->app_type == app_type) &&
1076 (cal_info->acdb_id == acdb_id)) {
1077 return cal_block;
1078 }
1079 }
1080 pr_debug("%s: Can't find topology for path %d, app %d, acdb_id %d defaulting to search by path\n",
1081 __func__, path, app_type, acdb_id);
Vikram Panduranga770b8382017-09-27 12:17:36 -07001082 return msm_routing_find_topology_by_path(path, cal_index);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301083}
1084
Vikram Panduranga770b8382017-09-27 12:17:36 -07001085/*
1086 * Retrieving cal_block will mark cal_block as stale.
1087 * Hence it cannot be reused or resent unless the flag
1088 * is reset.
1089 */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301090static int msm_routing_get_adm_topology(int fedai_id, int session_type,
1091 int be_id)
1092{
1093 int topology = NULL_COPP_TOPOLOGY;
1094 struct cal_block_data *cal_block = NULL;
1095 int app_type = 0, acdb_dev_id = 0;
1096
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301097 pr_debug("%s: fedai_id %d, session_type %d, be_id %d\n",
1098 __func__, fedai_id, session_type, be_id);
1099
1100 if (cal_data == NULL)
1101 goto done;
1102
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301103 app_type = fe_dai_app_type_cfg[fedai_id][session_type][be_id].app_type;
1104 acdb_dev_id =
1105 fe_dai_app_type_cfg[fedai_id][session_type][be_id].acdb_dev_id;
1106
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301107 mutex_lock(&cal_data[ADM_TOPOLOGY_CAL_TYPE_IDX]->lock);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301108 cal_block = msm_routing_find_topology(session_type, app_type,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301109 acdb_dev_id,
1110 ADM_TOPOLOGY_CAL_TYPE_IDX);
Vikram Panduranga770b8382017-09-27 12:17:36 -07001111 if (cal_block != NULL) {
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301112 topology = ((struct audio_cal_info_adm_top *)
1113 cal_block->cal_info)->topology;
Vikram Panduranga770b8382017-09-27 12:17:36 -07001114 cal_utils_mark_cal_used(cal_block);
1115 mutex_unlock(&cal_data[ADM_TOPOLOGY_CAL_TYPE_IDX]->lock);
1116 } else {
1117 mutex_unlock(&cal_data[ADM_TOPOLOGY_CAL_TYPE_IDX]->lock);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301118
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301119 pr_debug("%s: Check for LSM topology\n", __func__);
1120 mutex_lock(&cal_data[ADM_LSM_TOPOLOGY_CAL_TYPE_IDX]->lock);
1121 cal_block = msm_routing_find_topology(session_type, app_type,
1122 acdb_dev_id,
1123 ADM_LSM_TOPOLOGY_CAL_TYPE_IDX);
Vikram Panduranga770b8382017-09-27 12:17:36 -07001124 if (cal_block != NULL) {
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301125 topology = ((struct audio_cal_info_adm_top *)
1126 cal_block->cal_info)->topology;
Vikram Panduranga770b8382017-09-27 12:17:36 -07001127 cal_utils_mark_cal_used(cal_block);
1128 }
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301129 mutex_unlock(&cal_data[ADM_LSM_TOPOLOGY_CAL_TYPE_IDX]->lock);
1130 }
1131
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301132done:
1133 pr_debug("%s: Using topology %d\n", __func__, topology);
1134 return topology;
1135}
1136
1137static uint8_t is_be_dai_extproc(int be_dai)
1138{
1139 if (be_dai == MSM_BACKEND_DAI_EXTPROC_RX ||
1140 be_dai == MSM_BACKEND_DAI_EXTPROC_TX ||
1141 be_dai == MSM_BACKEND_DAI_EXTPROC_EC_TX)
1142 return 1;
1143 else
1144 return 0;
1145}
1146
1147static void msm_pcm_routing_build_matrix(int fedai_id, int sess_type,
1148 int path_type, int perf_mode,
1149 uint32_t passthr_mode)
1150{
1151 int i, port_type, j, num_copps = 0;
1152 struct route_payload payload;
1153
1154 port_type = ((path_type == ADM_PATH_PLAYBACK ||
1155 path_type == ADM_PATH_COMPRESSED_RX) ?
1156 MSM_AFE_PORT_TYPE_RX : MSM_AFE_PORT_TYPE_TX);
1157
1158 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1159 if (!is_be_dai_extproc(i) &&
1160 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1161 (msm_bedais[i].active) &&
1162 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1163 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1164 unsigned long copp =
1165 session_copp_map[fedai_id][sess_type][i];
1166 if (test_bit(j, &copp)) {
1167 payload.port_id[num_copps] =
1168 msm_bedais[i].port_id;
1169 payload.copp_idx[num_copps] = j;
1170 payload.app_type[num_copps] =
1171 fe_dai_app_type_cfg
1172 [fedai_id][sess_type][i]
1173 .app_type;
1174 payload.acdb_dev_id[num_copps] =
1175 fe_dai_app_type_cfg
1176 [fedai_id][sess_type][i]
1177 .acdb_dev_id;
1178 payload.sample_rate[num_copps] =
1179 fe_dai_app_type_cfg
1180 [fedai_id][sess_type][i]
1181 .sample_rate;
1182 num_copps++;
1183 }
1184 }
1185 }
1186 }
1187
1188 if (num_copps) {
1189 payload.num_copps = num_copps;
1190 payload.session_id = fe_dai_map[fedai_id][sess_type].strm_id;
1191 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1192 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1193 }
1194}
1195
1196void msm_pcm_routing_reg_psthr_stream(int fedai_id, int dspst_id,
1197 int stream_type)
1198{
1199 int i, session_type, path_type, port_type;
1200 u32 mode = 0;
1201
1202 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1203 /* bad ID assigned in machine driver */
1204 pr_err("%s: bad MM ID\n", __func__);
1205 return;
1206 }
1207
1208 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1209 session_type = SESSION_TYPE_RX;
1210 path_type = ADM_PATH_PLAYBACK;
1211 port_type = MSM_AFE_PORT_TYPE_RX;
1212 } else {
1213 session_type = SESSION_TYPE_TX;
1214 path_type = ADM_PATH_LIVE_REC;
1215 port_type = MSM_AFE_PORT_TYPE_TX;
1216 }
1217
1218 mutex_lock(&routing_lock);
1219
1220 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1221 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1222 if (!is_be_dai_extproc(i) &&
1223 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1224 (msm_bedais[i].active) &&
1225 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1226 mode = afe_get_port_type(msm_bedais[i].port_id);
1227 adm_connect_afe_port(mode, dspst_id,
1228 msm_bedais[i].port_id);
1229 break;
1230 }
1231 }
1232 mutex_unlock(&routing_lock);
1233}
1234
1235static bool route_check_fe_id_adm_support(int fe_id)
1236{
1237 bool rc = true;
1238
1239 if ((fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1240 (fe_id <= MSM_FRONTEND_DAI_LSM8)) {
1241 /* fe id is listen while port is set to afe */
1242 if (lsm_port_index != ADM_LSM_PORT_INDEX) {
1243 pr_debug("%s: fe_id %d, lsm mux slim port %d\n",
1244 __func__, fe_id, lsm_port_index);
1245 rc = false;
1246 }
1247 }
1248
1249 return rc;
1250}
1251
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001252/*
1253 * msm_pcm_routing_get_pp_ch_cnt:
1254 * Read the processed channel count
1255 *
1256 * @fe_id: Front end ID
1257 * @session_type: Inidicates RX or TX session type
1258 */
1259int msm_pcm_routing_get_pp_ch_cnt(int fe_id, int session_type)
1260{
1261 struct msm_pcm_stream_app_type_cfg cfg_data;
1262 int be_id = 0, app_type_idx = 0, app_type = 0;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +05301263 int ret = -EINVAL;
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001264
1265 memset(&cfg_data, 0, sizeof(cfg_data));
1266
1267 if (!is_mm_lsm_fe_id(fe_id)) {
1268 pr_err("%s: bad MM ID\n", __func__);
1269 return -EINVAL;
1270 }
1271
1272 ret = msm_pcm_routing_get_stream_app_type_cfg(fe_id, session_type,
1273 &be_id, &cfg_data);
1274 if (ret) {
Mangesh Kunchamwardaf02b02018-06-28 19:42:24 +05301275 pr_err("%s: cannot get stream app type cfg\n", __func__);
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001276 return ret;
1277 }
1278
1279 app_type = cfg_data.app_type;
1280 app_type_idx = msm_pcm_routing_get_lsm_app_type_idx(app_type);
1281 return lsm_app_type_cfg[app_type_idx].num_out_channels;
1282}
1283EXPORT_SYMBOL(msm_pcm_routing_get_pp_ch_cnt);
1284
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301285int msm_pcm_routing_reg_phy_compr_stream(int fe_id, int perf_mode,
1286 int dspst_id, int stream_type,
1287 uint32_t passthr_mode)
1288{
1289 int i, j, session_type, path_type, port_type, topology;
1290 int num_copps = 0;
1291 struct route_payload payload;
1292 u32 channels, sample_rate;
1293 u16 bit_width = 16;
1294 bool is_lsm;
1295
1296 pr_debug("%s:fe_id[%d] perf_mode[%d] id[%d] stream_type[%d] passt[%d]",
1297 __func__, fe_id, perf_mode, dspst_id,
1298 stream_type, passthr_mode);
1299 if (!is_mm_lsm_fe_id(fe_id)) {
1300 /* bad ID assigned in machine driver */
1301 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
1302 return -EINVAL;
1303 }
1304
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301305 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1306 session_type = SESSION_TYPE_RX;
1307 if (passthr_mode != LEGACY_PCM)
1308 path_type = ADM_PATH_COMPRESSED_RX;
1309 else
1310 path_type = ADM_PATH_PLAYBACK;
1311 port_type = MSM_AFE_PORT_TYPE_RX;
1312 } else if (stream_type == SNDRV_PCM_STREAM_CAPTURE) {
1313 session_type = SESSION_TYPE_TX;
Laxminath Kasam38070be2017-08-17 18:21:59 +05301314 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301315 path_type = ADM_PATH_COMPRESSED_TX;
1316 else
1317 path_type = ADM_PATH_LIVE_REC;
1318 port_type = MSM_AFE_PORT_TYPE_TX;
1319 } else {
1320 pr_err("%s: invalid stream type %d\n", __func__, stream_type);
1321 return -EINVAL;
1322 }
1323
1324 is_lsm = (fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1325 (fe_id <= MSM_FRONTEND_DAI_LSM8);
1326 mutex_lock(&routing_lock);
1327
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301328 fe_dai_map[fe_id][session_type].strm_id = dspst_id;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301329 fe_dai_map[fe_id][session_type].perf_mode = perf_mode;
1330 fe_dai_map[fe_id][session_type].passthr_mode = passthr_mode;
1331 if (!route_check_fe_id_adm_support(fe_id)) {
1332 /* ignore adm open if not supported for fe_id */
1333 pr_debug("%s: No ADM support for fe id %d\n", __func__, fe_id);
1334 mutex_unlock(&routing_lock);
1335 return 0;
1336 }
1337
1338 payload.num_copps = 0; /* only RX needs to use payload */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301339 /* re-enable EQ if active */
1340 msm_qti_pp_send_eq_values(fe_id);
1341 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301342 if (!is_be_dai_extproc(i) &&
1343 (afe_get_port_type(msm_bedais[i].port_id) ==
1344 port_type) &&
1345 (msm_bedais[i].active) &&
1346 (test_bit(fe_id, &msm_bedais[i].fe_sessions[0]))) {
1347 int app_type, app_type_idx, copp_idx, acdb_dev_id;
1348
1349 /*
1350 * check if ADM needs to be configured with different
1351 * channel mapping than backend
1352 */
1353 if (!msm_bedais[i].adm_override_ch)
1354 channels = msm_bedais[i].channel;
1355 else
1356 channels = msm_bedais[i].adm_override_ch;
1357
1358 bit_width = msm_routing_get_bit_width(
1359 msm_bedais[i].format);
1360 app_type =
1361 fe_dai_app_type_cfg[fe_id][session_type][i].app_type;
1362 if (app_type && is_lsm) {
1363 app_type_idx =
1364 msm_pcm_routing_get_lsm_app_type_idx(app_type);
1365 sample_rate =
1366 fe_dai_app_type_cfg[fe_id][session_type][i]
1367 .sample_rate;
1368 bit_width =
1369 lsm_app_type_cfg[app_type_idx].bit_width;
1370 } else if (app_type) {
1371 app_type_idx =
1372 msm_pcm_routing_get_app_type_idx(
1373 app_type);
1374 sample_rate =
1375 fe_dai_app_type_cfg[fe_id][session_type][i].sample_rate;
1376 bit_width =
1377 app_type_cfg[app_type_idx].bit_width;
1378 } else {
1379 sample_rate = msm_bedais[i].sample_rate;
1380 }
1381 acdb_dev_id =
1382 fe_dai_app_type_cfg[fe_id][session_type][i].acdb_dev_id;
1383 topology = msm_routing_get_adm_topology(fe_id,
1384 session_type,
1385 i);
1386 if ((passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
1387 || (passthr_mode ==
Ralf Herzc8701f72018-06-20 11:37:35 +02001388 COMPRESSED_PASSTHROUGH_GEN)
1389 || (passthr_mode ==
1390 COMPRESSED_PASSTHROUGH_IEC61937))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301391 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
1392 pr_debug("%s: Before adm open topology %d\n", __func__,
1393 topology);
1394
1395 copp_idx =
1396 adm_open(msm_bedais[i].port_id,
1397 path_type, sample_rate, channels,
1398 topology, perf_mode, bit_width,
1399 app_type, acdb_dev_id);
1400 if ((copp_idx < 0) ||
1401 (copp_idx >= MAX_COPPS_PER_PORT)) {
1402 pr_err("%s:adm open failed coppid:%d\n",
1403 __func__, copp_idx);
1404 mutex_unlock(&routing_lock);
1405 return -EINVAL;
1406 }
1407 pr_debug("%s: set idx bit of fe:%d, type: %d, be:%d\n",
1408 __func__, fe_id, session_type, i);
1409 set_bit(copp_idx,
1410 &session_copp_map[fe_id][session_type][i]);
1411
1412 if (msm_is_resample_needed(
1413 sample_rate,
1414 msm_bedais[i].sample_rate))
1415 adm_copp_mfc_cfg(
1416 msm_bedais[i].port_id, copp_idx,
1417 msm_bedais[i].sample_rate);
1418
1419 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1420 unsigned long copp =
1421 session_copp_map[fe_id][session_type][i];
1422 if (test_bit(j, &copp)) {
1423 payload.port_id[num_copps] =
1424 msm_bedais[i].port_id;
1425 payload.copp_idx[num_copps] = j;
1426 payload.app_type[num_copps] =
1427 fe_dai_app_type_cfg
1428 [fe_id][session_type][i]
1429 .app_type;
1430 payload.acdb_dev_id[num_copps] =
1431 fe_dai_app_type_cfg
1432 [fe_id][session_type][i]
1433 .acdb_dev_id;
1434 payload.sample_rate[num_copps] =
1435 fe_dai_app_type_cfg
1436 [fe_id][session_type][i]
1437 .sample_rate;
1438 num_copps++;
1439 }
1440 }
1441 if (passthr_mode != COMPRESSED_PASSTHROUGH_DSD
Ralf Herzc8701f72018-06-20 11:37:35 +02001442 && passthr_mode != COMPRESSED_PASSTHROUGH_GEN
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301443 && passthr_mode != COMPRESSED_PASSTHROUGH_IEC61937)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301444 msm_routing_send_device_pp_params(
Ralf Herzc8701f72018-06-20 11:37:35 +02001445 msm_bedais[i].port_id,
1446 copp_idx, fe_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301447 }
1448 }
1449 if (num_copps) {
1450 payload.num_copps = num_copps;
1451 payload.session_id = fe_dai_map[fe_id][session_type].strm_id;
1452 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1453 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1454 }
1455 mutex_unlock(&routing_lock);
1456 return 0;
1457}
1458
1459static u32 msm_pcm_routing_get_voc_sessionid(u16 val)
1460{
1461 u32 session_id;
1462
1463 switch (val) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301464 case MSM_FRONTEND_DAI_QCHAT:
1465 session_id = voc_get_session_id(QCHAT_SESSION_NAME);
1466 break;
1467 case MSM_FRONTEND_DAI_VOIP:
1468 session_id = voc_get_session_id(VOIP_SESSION_NAME);
1469 break;
1470 case MSM_FRONTEND_DAI_VOICEMMODE1:
1471 session_id = voc_get_session_id(VOICEMMODE1_NAME);
1472 break;
1473 case MSM_FRONTEND_DAI_VOICEMMODE2:
1474 session_id = voc_get_session_id(VOICEMMODE2_NAME);
1475 break;
1476 default:
1477 session_id = 0;
1478 }
1479
1480 pr_debug("%s session_id 0x%x", __func__, session_id);
1481 return session_id;
1482}
1483
1484static int msm_pcm_routing_channel_mixer(int fe_id, bool perf_mode,
1485 int dspst_id, int stream_type)
1486{
1487 int copp_idx = 0;
1488 int sess_type = 0;
1489 int i = 0, j = 0, be_id;
1490 int ret = 0;
1491
1492 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
1493 pr_err("%s: invalid FE %d\n", __func__, fe_id);
1494 return 0;
1495 }
1496
1497 if (!(channel_mixer[fe_id].enable)) {
1498 pr_debug("%s: channel mixer not enabled for FE %d\n",
1499 __func__, fe_id);
1500 return 0;
1501 }
1502
1503 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1504 sess_type = SESSION_TYPE_RX;
1505 else
1506 sess_type = SESSION_TYPE_TX;
1507
1508 for (i = 0; i < ADM_MAX_CHANNELS && channel_input[fe_id][i] > 0;
1509 ++i) {
1510 be_id = channel_input[fe_id][i] - 1;
1511 channel_mixer[fe_id].input_channels[i] =
1512 msm_bedais[be_id].channel;
1513
1514 if ((msm_bedais[be_id].active) &&
1515 test_bit(fe_id,
1516 &msm_bedais[be_id].fe_sessions[0])) {
1517 unsigned long copp =
1518 session_copp_map[fe_id][sess_type][be_id];
1519 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1520 if (test_bit(j, &copp)) {
1521 copp_idx = j;
1522 break;
1523 }
1524 }
1525
1526 pr_debug("%s: fe %d, be %d, channel %d, copp %d\n",
1527 __func__,
1528 fe_id, be_id, msm_bedais[be_id].channel,
1529 copp_idx);
1530 ret = adm_programable_channel_mixer(
1531 msm_bedais[be_id].port_id,
1532 copp_idx, dspst_id, sess_type,
1533 channel_mixer + fe_id, i);
1534 }
1535 }
1536
1537 return ret;
1538}
1539
1540int msm_pcm_routing_reg_phy_stream(int fedai_id, int perf_mode,
1541 int dspst_id, int stream_type)
1542{
1543 int i, j, session_type, path_type, port_type, topology, num_copps = 0;
1544 struct route_payload payload;
1545 u32 channels, sample_rate;
1546 uint16_t bits_per_sample = 16;
1547 uint32_t passthr_mode = LEGACY_PCM;
1548 int ret = 0;
1549
1550 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1551 /* bad ID assigned in machine driver */
1552 pr_err("%s: bad MM ID %d\n", __func__, fedai_id);
1553 return -EINVAL;
1554 }
1555
1556 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1557 session_type = SESSION_TYPE_RX;
1558 path_type = ADM_PATH_PLAYBACK;
1559 port_type = MSM_AFE_PORT_TYPE_RX;
1560 } else {
1561 session_type = SESSION_TYPE_TX;
1562 path_type = ADM_PATH_LIVE_REC;
1563 port_type = MSM_AFE_PORT_TYPE_TX;
1564 }
1565
1566 mutex_lock(&routing_lock);
1567
1568 payload.num_copps = 0; /* only RX needs to use payload */
1569 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1570 fe_dai_map[fedai_id][session_type].perf_mode = perf_mode;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301571 fe_dai_map[fedai_id][session_type].passthr_mode = LEGACY_PCM;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301572
1573 /* re-enable EQ if active */
1574 msm_qti_pp_send_eq_values(fedai_id);
1575 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1576 if (!is_be_dai_extproc(i) &&
1577 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1578 (msm_bedais[i].active) &&
1579 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1580 int app_type, app_type_idx, copp_idx, acdb_dev_id;
1581 /*
1582 * check if ADM needs to be configured with different
1583 * channel mapping than backend
1584 */
1585 if (!msm_bedais[i].adm_override_ch)
1586 channels = msm_bedais[i].channel;
1587 else
1588 channels = msm_bedais[i].adm_override_ch;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301589
1590 bits_per_sample = msm_routing_get_bit_width(
1591 msm_bedais[i].format);
1592
1593 app_type =
1594 fe_dai_app_type_cfg[fedai_id][session_type][i].app_type;
1595 if (app_type) {
1596 app_type_idx =
1597 msm_pcm_routing_get_app_type_idx(app_type);
1598 sample_rate =
1599 fe_dai_app_type_cfg[fedai_id][session_type][i]
1600 .sample_rate;
1601 bits_per_sample =
1602 app_type_cfg[app_type_idx].bit_width;
1603 } else
1604 sample_rate = msm_bedais[i].sample_rate;
1605
1606 acdb_dev_id =
1607 fe_dai_app_type_cfg[fedai_id][session_type][i]
1608 .acdb_dev_id;
1609 topology = msm_routing_get_adm_topology(fedai_id,
1610 session_type,
1611 i);
1612 copp_idx = adm_open(msm_bedais[i].port_id, path_type,
1613 sample_rate, channels, topology,
1614 perf_mode, bits_per_sample,
1615 app_type, acdb_dev_id);
1616 if ((copp_idx < 0) ||
1617 (copp_idx >= MAX_COPPS_PER_PORT)) {
1618 pr_err("%s: adm open failed copp_idx:%d\n",
Vikram Panduranga770b8382017-09-27 12:17:36 -07001619 __func__, copp_idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301620 mutex_unlock(&routing_lock);
1621 return -EINVAL;
1622 }
1623 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
1624 __func__, fedai_id, session_type, i);
1625 set_bit(copp_idx,
1626 &session_copp_map[fedai_id][session_type][i]);
1627
1628 if (msm_is_resample_needed(
1629 sample_rate,
1630 msm_bedais[i].sample_rate))
1631 adm_copp_mfc_cfg(
1632 msm_bedais[i].port_id, copp_idx,
1633 msm_bedais[i].sample_rate);
1634
1635 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1636 unsigned long copp =
1637 session_copp_map[fedai_id][session_type][i];
1638 if (test_bit(j, &copp)) {
1639 payload.port_id[num_copps] =
1640 msm_bedais[i].port_id;
1641 payload.copp_idx[num_copps] = j;
1642 payload.app_type[num_copps] =
1643 fe_dai_app_type_cfg
1644 [fedai_id][session_type]
1645 [i].app_type;
1646 payload.acdb_dev_id[num_copps] =
1647 fe_dai_app_type_cfg
1648 [fedai_id][session_type]
1649 [i].acdb_dev_id;
1650 payload.sample_rate[num_copps] =
1651 fe_dai_app_type_cfg
1652 [fedai_id][session_type]
1653 [i].sample_rate;
1654 num_copps++;
1655 }
1656 }
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301657 if (perf_mode == LEGACY_PCM_MODE)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301658 msm_pcm_routing_cfg_pp(msm_bedais[i].port_id,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301659 copp_idx, topology, channels);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301660 }
1661 }
1662 if (num_copps) {
1663 payload.num_copps = num_copps;
1664 payload.session_id = fe_dai_map[fedai_id][session_type].strm_id;
1665 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1666 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1667 }
1668
1669 ret = msm_pcm_routing_channel_mixer(fedai_id, perf_mode,
1670 dspst_id, stream_type);
1671 mutex_unlock(&routing_lock);
1672 return ret;
1673}
1674
1675int msm_pcm_routing_reg_phy_stream_v2(int fedai_id, int perf_mode,
1676 int dspst_id, int stream_type,
1677 struct msm_pcm_routing_evt event_info)
1678{
1679 if (msm_pcm_routing_reg_phy_stream(fedai_id, perf_mode, dspst_id,
1680 stream_type)) {
1681 pr_err("%s: failed to reg phy stream\n", __func__);
1682 return -EINVAL;
1683 }
1684
1685 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1686 fe_dai_map[fedai_id][SESSION_TYPE_RX].event_info = event_info;
1687 else
1688 fe_dai_map[fedai_id][SESSION_TYPE_TX].event_info = event_info;
1689 return 0;
1690}
1691
1692void msm_pcm_routing_dereg_phy_stream(int fedai_id, int stream_type)
1693{
1694 int i, port_type, session_type, path_type, topology;
1695 struct msm_pcm_routing_fdai_data *fdai;
1696
1697 if (!is_mm_lsm_fe_id(fedai_id)) {
1698 /* bad ID assigned in machine driver */
1699 pr_err("%s: bad MM ID\n", __func__);
1700 return;
1701 }
1702
1703 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1704 port_type = MSM_AFE_PORT_TYPE_RX;
1705 session_type = SESSION_TYPE_RX;
1706 path_type = ADM_PATH_PLAYBACK;
1707 } else {
1708 port_type = MSM_AFE_PORT_TYPE_TX;
1709 session_type = SESSION_TYPE_TX;
1710 path_type = ADM_PATH_LIVE_REC;
1711 }
1712
1713 mutex_lock(&routing_lock);
1714 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1715 if (!is_be_dai_extproc(i) &&
1716 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1717 (msm_bedais[i].active) &&
1718 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1719 int idx;
1720 unsigned long copp =
1721 session_copp_map[fedai_id][session_type][i];
1722 fdai = &fe_dai_map[fedai_id][session_type];
1723
1724 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
1725 if (test_bit(idx, &copp))
1726 break;
1727
1728 if (idx >= MAX_COPPS_PER_PORT || idx < 0) {
1729 pr_debug("%s: copp idx is invalid, exiting\n",
1730 __func__);
1731 continue;
1732 }
1733 topology = adm_get_topology_for_port_copp_idx(
1734 msm_bedais[i].port_id, idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07001735 msm_routing_unload_topology(topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301736 adm_close(msm_bedais[i].port_id, fdai->perf_mode, idx);
1737 pr_debug("%s:copp:%ld,idx bit fe:%d,type:%d,be:%d\n",
1738 __func__, copp, fedai_id, session_type, i);
1739 clear_bit(idx,
1740 &session_copp_map[fedai_id][session_type][i]);
1741 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
1742 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
1743 (fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301744 (fdai->passthr_mode == LEGACY_PCM))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301745 msm_pcm_routing_deinit_pp(msm_bedais[i].port_id,
1746 topology);
1747 }
1748 }
1749
1750 fe_dai_map[fedai_id][session_type].strm_id = INVALID_SESSION;
1751 fe_dai_map[fedai_id][session_type].be_srate = 0;
1752 mutex_unlock(&routing_lock);
1753}
1754
1755/* Check if FE/BE route is set */
1756static bool msm_pcm_routing_route_is_set(u16 be_id, u16 fe_id)
1757{
1758 bool rc = false;
1759
1760 if (!is_mm_lsm_fe_id(fe_id)) {
1761 /* recheck FE ID in the mixer control defined in this file */
1762 pr_err("%s: bad MM ID\n", __func__);
1763 return rc;
1764 }
1765
1766 if (test_bit(fe_id, &msm_bedais[be_id].fe_sessions[0]))
1767 rc = true;
1768
1769 return rc;
1770}
1771
1772static void msm_pcm_routing_process_audio(u16 reg, u16 val, int set)
1773{
1774 int session_type, path_type, topology;
1775 u32 channels, sample_rate;
1776 uint16_t bits_per_sample = 16;
1777 struct msm_pcm_routing_fdai_data *fdai;
1778 uint32_t passthr_mode;
1779 bool is_lsm;
1780
1781 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
1782
1783 if (!is_mm_lsm_fe_id(val)) {
1784 /* recheck FE ID in the mixer control defined in this file */
1785 pr_err("%s: bad MM ID\n", __func__);
1786 return;
1787 }
1788
1789 if (!route_check_fe_id_adm_support(val)) {
1790 /* ignore adm open if not supported for fe_id */
1791 pr_debug("%s: No ADM support for fe id %d\n", __func__, val);
1792 return;
1793 }
1794
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301795 session_type =
1796 (afe_get_port_type(msm_bedais[reg].port_id) == MSM_AFE_PORT_TYPE_RX) ?
1797 SESSION_TYPE_RX : SESSION_TYPE_TX;
1798 fdai = &fe_dai_map[val][session_type];
1799 passthr_mode = fdai->passthr_mode;
1800 if (session_type == SESSION_TYPE_RX) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301801 if (passthr_mode != LEGACY_PCM)
1802 path_type = ADM_PATH_COMPRESSED_RX;
1803 else
1804 path_type = ADM_PATH_PLAYBACK;
1805 } else {
Ralf Herzc8701f72018-06-20 11:37:35 +02001806 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301807 path_type = ADM_PATH_COMPRESSED_TX;
1808 else
1809 path_type = ADM_PATH_LIVE_REC;
1810 }
1811 is_lsm = (val >= MSM_FRONTEND_DAI_LSM1) &&
1812 (val <= MSM_FRONTEND_DAI_LSM8);
1813
1814 mutex_lock(&routing_lock);
1815 if (set) {
1816 if (!test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
1817 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
1818 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
1819 voc_start_playback(set, msm_bedais[reg].port_id);
1820
1821 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301822 if (msm_bedais[reg].active && fdai->strm_id !=
1823 INVALID_SESSION) {
1824 int app_type, app_type_idx, copp_idx, acdb_dev_id;
1825 /*
1826 * check if ADM needs to be configured with different
1827 * channel mapping than backend
1828 */
1829 if (!msm_bedais[reg].adm_override_ch)
1830 channels = msm_bedais[reg].channel;
1831 else
1832 channels = msm_bedais[reg].adm_override_ch;
1833 if (session_type == SESSION_TYPE_TX &&
1834 fdai->be_srate &&
1835 (fdai->be_srate != msm_bedais[reg].sample_rate)) {
1836 pr_debug("%s: flush strm %d diff BE rates\n",
1837 __func__, fdai->strm_id);
1838
1839 if (fdai->event_info.event_func)
1840 fdai->event_info.event_func(
1841 MSM_PCM_RT_EVT_BUF_RECFG,
1842 fdai->event_info.priv_data);
1843 fdai->be_srate = 0; /* might not need it */
1844 }
1845
1846 bits_per_sample = msm_routing_get_bit_width(
1847 msm_bedais[reg].format);
1848
1849 app_type =
1850 fe_dai_app_type_cfg[val][session_type][reg].app_type;
1851 if (app_type && is_lsm) {
1852 app_type_idx =
1853 msm_pcm_routing_get_lsm_app_type_idx(app_type);
1854 sample_rate =
1855 fe_dai_app_type_cfg[val][session_type][reg]
1856 .sample_rate;
1857 bits_per_sample =
1858 lsm_app_type_cfg[app_type_idx].bit_width;
1859 } else if (app_type) {
1860 app_type_idx =
1861 msm_pcm_routing_get_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 app_type_cfg[app_type_idx].bit_width;
1867 } else
1868 sample_rate = msm_bedais[reg].sample_rate;
1869
1870 topology = msm_routing_get_adm_topology(val,
1871 session_type,
1872 reg);
1873 acdb_dev_id =
1874 fe_dai_app_type_cfg[val][session_type][reg].acdb_dev_id;
1875 copp_idx = adm_open(msm_bedais[reg].port_id, path_type,
1876 sample_rate, channels, topology,
1877 fdai->perf_mode, bits_per_sample,
1878 app_type, acdb_dev_id);
1879 if ((copp_idx < 0) ||
1880 (copp_idx >= MAX_COPPS_PER_PORT)) {
1881 pr_err("%s: adm open failed\n", __func__);
1882 mutex_unlock(&routing_lock);
1883 return;
1884 }
1885 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
1886 __func__, val, session_type, reg);
1887 set_bit(copp_idx,
1888 &session_copp_map[val][session_type][reg]);
1889
1890 if (msm_is_resample_needed(
1891 sample_rate,
1892 msm_bedais[reg].sample_rate))
1893 adm_copp_mfc_cfg(
1894 msm_bedais[reg].port_id, copp_idx,
1895 msm_bedais[reg].sample_rate);
1896
1897 if (session_type == SESSION_TYPE_RX &&
1898 fdai->event_info.event_func)
1899 fdai->event_info.event_func(
1900 MSM_PCM_RT_EVT_DEVSWITCH,
1901 fdai->event_info.priv_data);
1902
1903 msm_pcm_routing_build_matrix(val, session_type,
1904 path_type,
1905 fdai->perf_mode,
1906 passthr_mode);
1907 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
1908 (passthr_mode == LEGACY_PCM))
1909 msm_pcm_routing_cfg_pp(msm_bedais[reg].port_id,
1910 copp_idx, topology,
1911 channels);
1912 }
1913 } else {
1914 if (test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
1915 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
1916 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
1917 voc_start_playback(set, msm_bedais[reg].port_id);
1918 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301919 if (msm_bedais[reg].active && fdai->strm_id !=
1920 INVALID_SESSION) {
1921 int idx;
1922 int port_id;
1923 unsigned long copp =
1924 session_copp_map[val][session_type][reg];
1925 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
1926 if (test_bit(idx, &copp))
1927 break;
1928
1929 port_id = msm_bedais[reg].port_id;
1930 topology = adm_get_topology_for_port_copp_idx(port_id,
1931 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07001932 msm_routing_unload_topology(topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301933 adm_close(msm_bedais[reg].port_id, fdai->perf_mode,
1934 idx);
1935 pr_debug("%s: copp: %ld, reset idx bit fe:%d, type: %d, be:%d topology=0x%x\n",
1936 __func__, copp, val, session_type, reg,
1937 topology);
1938 clear_bit(idx,
1939 &session_copp_map[val][session_type][reg]);
1940 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
1941 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
1942 (fdai->perf_mode == LEGACY_PCM_MODE) &&
1943 (passthr_mode == LEGACY_PCM))
1944 msm_pcm_routing_deinit_pp(
1945 msm_bedais[reg].port_id,
1946 topology);
1947 msm_pcm_routing_build_matrix(val, session_type,
1948 path_type,
1949 fdai->perf_mode,
1950 passthr_mode);
1951 }
1952 }
1953 if ((msm_bedais[reg].port_id == VOICE_RECORD_RX)
1954 || (msm_bedais[reg].port_id == VOICE_RECORD_TX))
1955 voc_start_record(msm_bedais[reg].port_id, set, voc_session_id);
1956
1957 mutex_unlock(&routing_lock);
1958}
1959
1960static int msm_routing_get_audio_mixer(struct snd_kcontrol *kcontrol,
1961 struct snd_ctl_elem_value *ucontrol)
1962{
1963 struct soc_mixer_control *mc =
1964 (struct soc_mixer_control *)kcontrol->private_value;
1965
Meng Wang05d5e9a2018-03-28 16:45:03 +08001966 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301967 ucontrol->value.integer.value[0] = 1;
1968 else
1969 ucontrol->value.integer.value[0] = 0;
1970
Meng Wang05d5e9a2018-03-28 16:45:03 +08001971 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301972 ucontrol->value.integer.value[0]);
1973
1974 return 0;
1975}
1976
1977static int msm_routing_put_audio_mixer(struct snd_kcontrol *kcontrol,
1978 struct snd_ctl_elem_value *ucontrol)
1979{
Asish Bhattacharya34504582017-08-08 12:55:01 +05301980 struct snd_soc_dapm_widget *widget =
1981 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301982 struct soc_mixer_control *mc =
1983 (struct soc_mixer_control *)kcontrol->private_value;
1984 struct snd_soc_dapm_update *update = NULL;
1985
1986 if (ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08001987 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false) {
1988 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301989 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
1990 update);
1991 } else if (!ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08001992 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true) {
1993 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301994 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
1995 update);
1996 }
1997
1998 return 1;
1999}
2000
2001static int msm_routing_get_listen_mixer(struct snd_kcontrol *kcontrol,
2002 struct snd_ctl_elem_value *ucontrol)
2003{
2004 struct soc_mixer_control *mc =
2005 (struct soc_mixer_control *)kcontrol->private_value;
2006
Meng Wang05d5e9a2018-03-28 16:45:03 +08002007 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302008 ucontrol->value.integer.value[0] = 1;
2009 else
2010 ucontrol->value.integer.value[0] = 0;
2011
Meng Wang05d5e9a2018-03-28 16:45:03 +08002012 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302013 ucontrol->value.integer.value[0]);
2014
2015 return 0;
2016}
2017
2018static int msm_routing_put_listen_mixer(struct snd_kcontrol *kcontrol,
2019 struct snd_ctl_elem_value *ucontrol)
2020{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302021 struct snd_soc_dapm_widget *widget =
2022 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302023 struct soc_mixer_control *mc =
2024 (struct soc_mixer_control *)kcontrol->private_value;
2025 struct snd_soc_dapm_update *update = NULL;
2026
Meng Wang05d5e9a2018-03-28 16:45:03 +08002027 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302028 ucontrol->value.integer.value[0]);
2029
2030 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002031 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false)
2032 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302033 snd_soc_dapm_mixer_update_power(widget->dapm,
2034 kcontrol, 1, update);
2035 } else if (!ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002036 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true)
2037 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302038 snd_soc_dapm_mixer_update_power(widget->dapm,
2039 kcontrol, 0, update);
2040 }
2041
2042 return 1;
2043}
2044
2045static void msm_pcm_routing_process_voice(u16 reg, u16 val, int set)
2046{
2047 u32 session_id = 0;
2048 u16 path_type;
2049 struct media_format_info voc_be_media_format;
2050
2051 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
2052
2053 session_id = msm_pcm_routing_get_voc_sessionid(val);
2054
2055 pr_debug("%s: FE DAI 0x%x session_id 0x%x\n",
2056 __func__, val, session_id);
2057
2058 mutex_lock(&routing_lock);
2059
2060 if (set)
2061 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
2062 else
2063 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
2064
2065 if (val == MSM_FRONTEND_DAI_DTMF_RX &&
2066 afe_get_port_type(msm_bedais[reg].port_id) ==
2067 MSM_AFE_PORT_TYPE_RX) {
2068 pr_debug("%s(): set=%d port id=0x%x for dtmf generation\n",
2069 __func__, set, msm_bedais[reg].port_id);
2070 afe_set_dtmf_gen_rx_portid(msm_bedais[reg].port_id, set);
2071 }
2072
2073 if (afe_get_port_type(msm_bedais[reg].port_id) ==
2074 MSM_AFE_PORT_TYPE_RX)
2075 path_type = RX_PATH;
2076 else
2077 path_type = TX_PATH;
2078
2079 if (set) {
2080 if (msm_bedais[reg].active) {
2081 voc_set_route_flag(session_id, path_type, 1);
2082
2083 memset(&voc_be_media_format, 0,
2084 sizeof(struct media_format_info));
2085
2086 voc_be_media_format.port_id = msm_bedais[reg].port_id;
2087 voc_be_media_format.num_channels =
2088 msm_bedais[reg].channel;
2089 voc_be_media_format.sample_rate =
2090 msm_bedais[reg].sample_rate;
2091 voc_be_media_format.bits_per_sample =
2092 msm_bedais[reg].format;
2093 /* Defaulting this to 1 for voice call usecases */
2094 voc_be_media_format.channel_mapping[0] = 1;
2095
2096 voc_set_device_config(session_id, path_type,
2097 &voc_be_media_format);
2098
2099 if (voc_get_route_flag(session_id, TX_PATH) &&
2100 voc_get_route_flag(session_id, RX_PATH))
2101 voc_enable_device(session_id);
2102 } else {
2103 pr_debug("%s BE is not active\n", __func__);
2104 }
2105 } else {
2106 voc_set_route_flag(session_id, path_type, 0);
2107 voc_disable_device(session_id);
2108 }
2109
2110 mutex_unlock(&routing_lock);
2111
2112}
2113
2114static int msm_routing_get_voice_mixer(struct snd_kcontrol *kcontrol,
2115 struct snd_ctl_elem_value *ucontrol)
2116{
2117 struct soc_mixer_control *mc =
2118 (struct soc_mixer_control *)kcontrol->private_value;
2119
2120 mutex_lock(&routing_lock);
2121
Meng Wang05d5e9a2018-03-28 16:45:03 +08002122 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302123 ucontrol->value.integer.value[0] = 1;
2124 else
2125 ucontrol->value.integer.value[0] = 0;
2126
2127 mutex_unlock(&routing_lock);
2128
Meng Wang05d5e9a2018-03-28 16:45:03 +08002129 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302130 ucontrol->value.integer.value[0]);
2131
2132 return 0;
2133}
2134
2135static int msm_routing_put_voice_mixer(struct snd_kcontrol *kcontrol,
2136 struct snd_ctl_elem_value *ucontrol)
2137{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302138 struct snd_soc_dapm_widget *widget =
2139 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302140 struct soc_mixer_control *mc =
2141 (struct soc_mixer_control *)kcontrol->private_value;
2142 struct snd_soc_dapm_update *update = NULL;
2143
2144 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002145 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302146 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2147 update);
2148 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002149 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302150 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2151 update);
2152 }
2153
2154 return 1;
2155}
2156
2157static int msm_routing_get_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2158 struct snd_ctl_elem_value *ucontrol)
2159{
2160 struct soc_mixer_control *mc =
2161 (struct soc_mixer_control *)kcontrol->private_value;
2162
2163 mutex_lock(&routing_lock);
2164
Meng Wang05d5e9a2018-03-28 16:45:03 +08002165 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302166 ucontrol->value.integer.value[0] = 1;
2167 else
2168 ucontrol->value.integer.value[0] = 0;
2169
2170 mutex_unlock(&routing_lock);
2171
Meng Wang05d5e9a2018-03-28 16:45:03 +08002172 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302173 ucontrol->value.integer.value[0]);
2174
2175 return 0;
2176}
2177
2178static int msm_routing_put_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2179 struct snd_ctl_elem_value *ucontrol)
2180{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302181 struct snd_soc_dapm_widget *widget =
2182 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302183 struct soc_mixer_control *mc =
2184 (struct soc_mixer_control *)kcontrol->private_value;
2185 struct snd_soc_dapm_update *update = NULL;
2186
2187 if (ucontrol->value.integer.value[0]) {
2188 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002189 set_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302190 mutex_unlock(&routing_lock);
2191
2192 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2193 update);
2194 } else {
2195 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002196 clear_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302197 mutex_unlock(&routing_lock);
2198
2199 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2200 update);
2201 }
2202
Meng Wang05d5e9a2018-03-28 16:45:03 +08002203 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302204 ucontrol->value.integer.value[0]);
2205
2206 return 1;
2207}
2208
2209/*
2210 * Return the mapping between port ID and backend ID to enable the AFE callback
2211 * to determine the acdb_dev_id from the port id
2212 */
2213int msm_pcm_get_be_id_from_port_id(int port_id)
2214{
2215 int i;
2216 int be_id = -EINVAL;
2217
2218 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
2219 if (msm_bedais[i].port_id == port_id) {
2220 be_id = i;
2221 break;
2222 }
2223 }
2224
2225 return be_id;
2226}
2227
2228/*
2229 * Return the registered dev_acdb_id given a port ID to enable identifying the
2230 * correct AFE calibration information by comparing the header information.
2231 */
2232static int msm_pcm_get_dev_acdb_id_by_port_id(int port_id)
2233{
2234 int acdb_id = -EINVAL;
2235 int i = 0;
2236 int session;
2237 int port_type = afe_get_port_type(port_id);
2238 int be_id = msm_pcm_get_be_id_from_port_id(port_id);
2239
2240 pr_debug("%s:port_id %d be_id %d, port_type 0x%x\n",
2241 __func__, port_id, be_id, port_type);
2242
2243 if (port_type == MSM_AFE_PORT_TYPE_TX) {
2244 session = SESSION_TYPE_TX;
2245 } else if (port_type == MSM_AFE_PORT_TYPE_RX) {
2246 session = SESSION_TYPE_RX;
2247 } else {
2248 pr_err("%s: Invalid port type %d\n", __func__, port_type);
2249 acdb_id = -EINVAL;
2250 goto exit;
2251 }
2252
2253 if (be_id < 0) {
2254 pr_err("%s: Error getting backend id %d\n", __func__, be_id);
2255 goto exit;
2256 }
2257
2258 mutex_lock(&routing_lock);
2259 i = find_first_bit(&msm_bedais[be_id].fe_sessions[0],
2260 MSM_FRONTEND_DAI_MAX);
2261 if (i < MSM_FRONTEND_DAI_MAX)
2262 acdb_id = fe_dai_app_type_cfg[i][session][be_id].acdb_dev_id;
2263
2264 pr_debug("%s: FE[%d] session[%d] BE[%d] acdb_id(%d)\n",
2265 __func__, i, session, be_id, acdb_id);
2266 mutex_unlock(&routing_lock);
2267exit:
2268 return acdb_id;
2269}
2270
2271static int msm_routing_get_switch_mixer(struct snd_kcontrol *kcontrol,
2272 struct snd_ctl_elem_value *ucontrol)
2273{
2274 ucontrol->value.integer.value[0] = fm_switch_enable;
2275 pr_debug("%s: FM Switch enable %ld\n", __func__,
2276 ucontrol->value.integer.value[0]);
2277 return 0;
2278}
2279
2280static int msm_routing_put_switch_mixer(struct snd_kcontrol *kcontrol,
2281 struct snd_ctl_elem_value *ucontrol)
2282{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302283 struct snd_soc_dapm_widget *widget =
2284 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302285 struct snd_soc_dapm_update *update = NULL;
2286
2287 pr_debug("%s: FM Switch enable %ld\n", __func__,
2288 ucontrol->value.integer.value[0]);
2289 if (ucontrol->value.integer.value[0])
2290 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2291 update);
2292 else
2293 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2294 update);
2295 fm_switch_enable = ucontrol->value.integer.value[0];
2296 return 1;
2297}
2298
2299static int msm_routing_get_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2300 struct snd_ctl_elem_value *ucontrol)
2301{
2302 ucontrol->value.integer.value[0] = hfp_switch_enable;
2303 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2304 ucontrol->value.integer.value[0]);
2305 return 0;
2306}
2307
2308static int msm_routing_put_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2309 struct snd_ctl_elem_value *ucontrol)
2310{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302311 struct snd_soc_dapm_widget *widget =
2312 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302313 struct snd_soc_dapm_update *update = NULL;
2314
2315 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2316 ucontrol->value.integer.value[0]);
2317 if (ucontrol->value.integer.value[0])
2318 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2319 1, update);
2320 else
2321 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2322 0, update);
2323 hfp_switch_enable = ucontrol->value.integer.value[0];
2324 return 1;
2325}
2326
Aniket Kumar Latac0c31472018-02-22 14:46:09 -08002327static int msm_routing_a2dp_switch_mixer_get(struct snd_kcontrol *kcontrol,
2328 struct snd_ctl_elem_value *ucontrol)
2329{
2330 ucontrol->value.integer.value[0] = a2dp_switch_enable;
2331 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2332 ucontrol->value.integer.value[0]);
2333 return 0;
2334}
2335
2336static int msm_routing_a2dp_switch_mixer_put(struct snd_kcontrol *kcontrol,
2337 struct snd_ctl_elem_value *ucontrol)
2338{
2339 struct snd_soc_dapm_widget *widget =
2340 snd_soc_dapm_kcontrol_widget(kcontrol);
2341 struct snd_soc_dapm_update *update = NULL;
2342
2343 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2344 ucontrol->value.integer.value[0]);
2345 a2dp_switch_enable = ucontrol->value.integer.value[0];
2346 if (a2dp_switch_enable)
2347 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2348 1, update);
2349 else
2350 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2351 0, update);
2352 return 1;
2353}
2354
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302355static int msm_routing_get_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2356 struct snd_ctl_elem_value *ucontrol)
2357{
2358 ucontrol->value.integer.value[0] = int0_mi2s_switch_enable;
2359 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2360 ucontrol->value.integer.value[0]);
2361 return 0;
2362}
2363
2364static int msm_routing_put_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2365 struct snd_ctl_elem_value *ucontrol)
2366{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302367 struct snd_soc_dapm_widget *widget =
2368 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302369 struct snd_soc_dapm_update *update = NULL;
2370
2371 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2372 ucontrol->value.integer.value[0]);
2373 if (ucontrol->value.integer.value[0])
2374 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2375 update);
2376 else
2377 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2378 update);
2379 int0_mi2s_switch_enable = ucontrol->value.integer.value[0];
2380 return 1;
2381}
2382
2383static int msm_routing_get_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2384 struct snd_ctl_elem_value *ucontrol)
2385{
2386 ucontrol->value.integer.value[0] = int4_mi2s_switch_enable;
2387 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2388 ucontrol->value.integer.value[0]);
2389 return 0;
2390}
2391
2392static int msm_routing_put_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2393 struct snd_ctl_elem_value *ucontrol)
2394{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302395 struct snd_soc_dapm_widget *widget =
2396 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302397 struct snd_soc_dapm_update *update = NULL;
2398
2399 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2400 ucontrol->value.integer.value[0]);
2401 if (ucontrol->value.integer.value[0])
2402 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2403 update);
2404 else
2405 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2406 update);
2407 int4_mi2s_switch_enable = ucontrol->value.integer.value[0];
2408 return 1;
2409}
2410
2411static int msm_routing_get_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2412 struct snd_ctl_elem_value *ucontrol)
2413{
2414 ucontrol->value.integer.value[0] = usb_switch_enable;
2415 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2416 ucontrol->value.integer.value[0]);
2417 return 0;
2418}
2419
2420static int msm_routing_put_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2421 struct snd_ctl_elem_value *ucontrol)
2422{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302423 struct snd_soc_dapm_widget *widget =
2424 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302425 struct snd_soc_dapm_update *update = NULL;
2426
2427 pr_debug("%s: USB Switch enable %ld\n", __func__,
2428 ucontrol->value.integer.value[0]);
2429 if (ucontrol->value.integer.value[0])
2430 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2431 1, update);
2432 else
2433 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2434 0, update);
2435 usb_switch_enable = ucontrol->value.integer.value[0];
2436 return 1;
2437}
2438
2439static int msm_routing_get_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2440 struct snd_ctl_elem_value *ucontrol)
2441{
2442 ucontrol->value.integer.value[0] = pri_mi2s_switch_enable;
2443 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2444 ucontrol->value.integer.value[0]);
2445 return 0;
2446}
2447
2448static int msm_routing_put_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2449 struct snd_ctl_elem_value *ucontrol)
2450{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302451 struct snd_soc_dapm_widget *widget =
2452 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302453 struct snd_soc_dapm_update *update = NULL;
2454
2455 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2456 ucontrol->value.integer.value[0]);
2457 if (ucontrol->value.integer.value[0])
2458 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2459 update);
2460 else
2461 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2462 update);
2463 pri_mi2s_switch_enable = ucontrol->value.integer.value[0];
2464 return 1;
2465}
2466
2467static int msm_routing_get_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2468 struct snd_ctl_elem_value *ucontrol)
2469{
2470 ucontrol->value.integer.value[0] = sec_mi2s_switch_enable;
2471 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2472 ucontrol->value.integer.value[0]);
2473 return 0;
2474}
2475
2476static int msm_routing_put_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2477 struct snd_ctl_elem_value *ucontrol)
2478{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302479 struct snd_soc_dapm_widget *widget =
2480 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302481 struct snd_soc_dapm_update *update = NULL;
2482
2483 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2484 ucontrol->value.integer.value[0]);
2485 if (ucontrol->value.integer.value[0])
2486 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2487 update);
2488 else
2489 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2490 update);
2491 sec_mi2s_switch_enable = ucontrol->value.integer.value[0];
2492 return 1;
2493}
2494
2495static int msm_routing_get_tert_mi2s_switch_mixer(
2496 struct snd_kcontrol *kcontrol,
2497 struct snd_ctl_elem_value *ucontrol)
2498{
2499 ucontrol->value.integer.value[0] = tert_mi2s_switch_enable;
2500 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2501 ucontrol->value.integer.value[0]);
2502 return 0;
2503}
2504
2505static int msm_routing_put_tert_mi2s_switch_mixer(
2506 struct snd_kcontrol *kcontrol,
2507 struct snd_ctl_elem_value *ucontrol)
2508{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302509 struct snd_soc_dapm_widget *widget =
2510 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302511 struct snd_soc_dapm_update *update = NULL;
2512
2513 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2514 ucontrol->value.integer.value[0]);
2515 if (ucontrol->value.integer.value[0])
2516 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2517 update);
2518 else
2519 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2520 update);
2521 tert_mi2s_switch_enable = ucontrol->value.integer.value[0];
2522 return 1;
2523}
2524
2525static int msm_routing_get_quat_mi2s_switch_mixer(
2526 struct snd_kcontrol *kcontrol,
2527 struct snd_ctl_elem_value *ucontrol)
2528{
2529 ucontrol->value.integer.value[0] = quat_mi2s_switch_enable;
2530 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2531 ucontrol->value.integer.value[0]);
2532 return 0;
2533}
2534
2535static int msm_routing_put_quat_mi2s_switch_mixer(
2536 struct snd_kcontrol *kcontrol,
2537 struct snd_ctl_elem_value *ucontrol)
2538{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302539 struct snd_soc_dapm_widget *widget =
2540 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302541 struct snd_soc_dapm_update *update = NULL;
2542
2543 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2544 ucontrol->value.integer.value[0]);
2545 if (ucontrol->value.integer.value[0])
2546 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2547 update);
2548 else
2549 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2550 update);
2551 quat_mi2s_switch_enable = ucontrol->value.integer.value[0];
2552 return 1;
2553}
2554
Rohit Kumara5077932017-09-10 22:05:05 +05302555static int msm_routing_get_quin_mi2s_switch_mixer(
2556 struct snd_kcontrol *kcontrol,
2557 struct snd_ctl_elem_value *ucontrol)
2558{
2559 ucontrol->value.integer.value[0] = quin_mi2s_switch_enable;
2560 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2561 ucontrol->value.integer.value[0]);
2562 return 0;
2563}
2564
2565static int msm_routing_put_quin_mi2s_switch_mixer(
2566 struct snd_kcontrol *kcontrol,
2567 struct snd_ctl_elem_value *ucontrol)
2568{
2569 struct snd_soc_dapm_widget *widget =
2570 snd_soc_dapm_kcontrol_widget(kcontrol);
2571 struct snd_soc_dapm_update *update = NULL;
2572
2573 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2574 ucontrol->value.integer.value[0]);
2575 if (ucontrol->value.integer.value[0])
2576 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2577 update);
2578 else
2579 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2580 update);
2581 quin_mi2s_switch_enable = ucontrol->value.integer.value[0];
2582 return 1;
2583}
2584
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302585static int msm_routing_get_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2586 struct snd_ctl_elem_value *ucontrol)
2587{
2588 ucontrol->value.integer.value[0] = fm_pcmrx_switch_enable;
2589 pr_debug("%s: FM Switch enable %ld\n", __func__,
2590 ucontrol->value.integer.value[0]);
2591 return 0;
2592}
2593
2594static int msm_routing_put_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2595 struct snd_ctl_elem_value *ucontrol)
2596{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302597 struct snd_soc_dapm_widget *widget =
2598 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302599 struct snd_soc_dapm_update *update = NULL;
2600
2601 pr_debug("%s: FM Switch enable %ld\n", __func__,
2602 ucontrol->value.integer.value[0]);
2603 if (ucontrol->value.integer.value[0])
2604 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2605 update);
2606 else
2607 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2608 update);
2609 fm_pcmrx_switch_enable = ucontrol->value.integer.value[0];
2610 return 1;
2611}
2612
2613static int msm_routing_lsm_port_get(struct snd_kcontrol *kcontrol,
2614 struct snd_ctl_elem_value *ucontrol)
2615{
2616 ucontrol->value.integer.value[0] = lsm_port_index;
2617 return 0;
2618}
2619
2620static int msm_routing_lsm_port_put(struct snd_kcontrol *kcontrol,
2621 struct snd_ctl_elem_value *ucontrol)
2622{
2623 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
2624 int mux = ucontrol->value.enumerated.item[0];
2625 int lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2626
2627 if (mux >= e->items) {
2628 pr_err("%s: Invalid mux value %d\n", __func__, mux);
2629 return -EINVAL;
2630 }
2631
2632 pr_debug("%s: LSM enable %ld\n", __func__,
2633 ucontrol->value.integer.value[0]);
2634 switch (ucontrol->value.integer.value[0]) {
2635 case 1:
2636 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_0_TX;
2637 break;
2638 case 2:
2639 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_1_TX;
2640 break;
2641 case 3:
2642 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_2_TX;
2643 break;
2644 case 4:
2645 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_3_TX;
2646 break;
2647 case 5:
2648 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_4_TX;
2649 break;
2650 case 6:
2651 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2652 break;
2653 case 7:
2654 lsm_port = AFE_PORT_ID_TERTIARY_MI2S_TX;
2655 break;
2656 case 8:
2657 lsm_port = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2658 break;
2659 case 9:
2660 lsm_port = ADM_LSM_PORT_ID;
2661 break;
2662 case 10:
2663 lsm_port = AFE_PORT_ID_INT3_MI2S_TX;
2664 break;
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +05302665 case 11:
2666 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
2667 break;
2668 case 12:
2669 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_1;
2670 break;
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302671 case 13:
2672 lsm_port = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
2673 break;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05302674 case 14:
2675 lsm_port = AFE_PORT_ID_QUINARY_TDM_TX;
2676 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302677 default:
2678 pr_err("Default lsm port");
2679 break;
2680 }
2681 set_lsm_port(lsm_port);
2682 lsm_port_index = ucontrol->value.integer.value[0];
2683
2684 return 0;
2685}
2686
2687static int msm_routing_lsm_func_get(struct snd_kcontrol *kcontrol,
2688 struct snd_ctl_elem_value *ucontrol)
2689{
2690 int i;
2691 u16 port_id;
2692 enum afe_mad_type mad_type;
2693
2694 pr_debug("%s: enter\n", __func__);
2695 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
2696 if (!strnstr(kcontrol->id.name, lsm_port_text[i],
2697 strlen(lsm_port_text[i])))
2698 break;
2699
2700 if (i-- == ARRAY_SIZE(lsm_port_text)) {
2701 WARN(1, "Invalid id name %s\n", kcontrol->id.name);
2702 return -EINVAL;
2703 }
2704
2705 port_id = i * 2 + 1 + SLIMBUS_0_RX;
2706
2707 /*Check for Tertiary/Quaternary/INT3 TX port*/
2708 if (strnstr(kcontrol->id.name, lsm_port_text[7],
2709 strlen(lsm_port_text[7])))
2710 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
2711
2712 if (strnstr(kcontrol->id.name, lsm_port_text[8],
2713 strlen(lsm_port_text[8])))
2714 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2715
2716 if (strnstr(kcontrol->id.name, lsm_port_text[10],
2717 strlen(lsm_port_text[10])))
2718 port_id = AFE_PORT_ID_INT3_MI2S_TX;
2719
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302720 if (strnstr(kcontrol->id.name, lsm_port_text[13],
2721 strlen(lsm_port_text[13])))
2722 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
2723
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05302724 if (strnstr(kcontrol->id.name, lsm_port_text[14],
2725 strlen(lsm_port_text[14])))
2726 port_id = AFE_PORT_ID_QUINARY_TDM_TX;
2727
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302728 mad_type = afe_port_get_mad_type(port_id);
2729 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
2730 mad_type);
2731 switch (mad_type) {
2732 case MAD_HW_NONE:
2733 ucontrol->value.integer.value[0] = MADNONE;
2734 break;
2735 case MAD_HW_AUDIO:
2736 ucontrol->value.integer.value[0] = MADAUDIO;
2737 break;
2738 case MAD_HW_BEACON:
2739 ucontrol->value.integer.value[0] = MADBEACON;
2740 break;
2741 case MAD_HW_ULTRASOUND:
2742 ucontrol->value.integer.value[0] = MADULTRASOUND;
2743 break;
2744 case MAD_SW_AUDIO:
2745 ucontrol->value.integer.value[0] = MADSWAUDIO;
2746 break;
2747 default:
2748 WARN(1, "Unknown\n");
2749 return -EINVAL;
2750 }
2751 return 0;
2752}
2753
2754static int msm_routing_lsm_func_put(struct snd_kcontrol *kcontrol,
2755 struct snd_ctl_elem_value *ucontrol)
2756{
2757 int i;
2758 u16 port_id;
2759 enum afe_mad_type mad_type;
2760
2761 pr_debug("%s: enter\n", __func__);
2762 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
2763 if (strnstr(kcontrol->id.name, lsm_port_text[i],
2764 strlen(lsm_port_text[i])))
2765 break;
2766
2767 if (i-- == ARRAY_SIZE(lsm_port_text)) {
2768 WARN(1, "Invalid id name %s\n", kcontrol->id.name);
2769 return -EINVAL;
2770 }
2771
2772 port_id = i * 2 + 1 + SLIMBUS_0_RX;
2773 switch (ucontrol->value.integer.value[0]) {
2774 case MADNONE:
2775 mad_type = MAD_HW_NONE;
2776 break;
2777 case MADAUDIO:
2778 mad_type = MAD_HW_AUDIO;
2779 break;
2780 case MADBEACON:
2781 mad_type = MAD_HW_BEACON;
2782 break;
2783 case MADULTRASOUND:
2784 mad_type = MAD_HW_ULTRASOUND;
2785 break;
2786 case MADSWAUDIO:
2787 mad_type = MAD_SW_AUDIO;
2788 break;
2789 default:
2790 WARN(1, "Unknown\n");
2791 return -EINVAL;
2792 }
2793
2794 /*Check for Tertiary/Quaternary/INT3 TX port*/
2795 if (strnstr(kcontrol->id.name, lsm_port_text[7],
2796 strlen(lsm_port_text[7])))
2797 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
2798
2799 if (strnstr(kcontrol->id.name, lsm_port_text[8],
2800 strlen(lsm_port_text[8])))
2801 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2802
2803 if (strnstr(kcontrol->id.name, lsm_port_text[10],
2804 strlen(lsm_port_text[10])))
2805 port_id = AFE_PORT_ID_INT3_MI2S_TX;
2806
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302807 if (strnstr(kcontrol->id.name, lsm_port_text[13],
2808 strlen(lsm_port_text[13])))
2809 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
2810
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05302811 if (strnstr(kcontrol->id.name, lsm_port_text[14],
2812 strlen(lsm_port_text[14])))
2813 port_id = AFE_PORT_ID_QUINARY_TDM_TX;
2814
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302815 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
2816 mad_type);
2817 return afe_port_set_mad_type(port_id, mad_type);
2818}
2819
2820static const char *const adm_override_chs_text[] = {"Zero", "One", "Two"};
2821
2822static SOC_ENUM_SINGLE_EXT_DECL(slim_7_rx_adm_override_chs,
2823 adm_override_chs_text);
2824
2825static int msm_routing_adm_get_backend_idx(struct snd_kcontrol *kcontrol)
2826{
2827 int backend_id;
2828
2829 if (strnstr(kcontrol->id.name, "SLIM7_RX", sizeof("SLIM7_RX"))) {
2830 backend_id = MSM_BACKEND_DAI_SLIMBUS_7_RX;
2831 } else {
2832 pr_err("%s: unsupported backend id: %s",
2833 __func__, kcontrol->id.name);
2834 return -EINVAL;
2835 }
2836
2837 return backend_id;
2838}
2839static int msm_routing_adm_channel_config_get(
2840 struct snd_kcontrol *kcontrol,
2841 struct snd_ctl_elem_value *ucontrol)
2842{
2843 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
2844
2845 if (backend_id >= 0) {
2846 mutex_lock(&routing_lock);
2847 ucontrol->value.integer.value[0] =
2848 msm_bedais[backend_id].adm_override_ch;
2849 pr_debug("%s: adm channel count %ld for BE:%d\n", __func__,
2850 ucontrol->value.integer.value[0], backend_id);
2851 mutex_unlock(&routing_lock);
2852 }
2853
2854 return 0;
2855}
2856
2857static int msm_routing_adm_channel_config_put(
2858 struct snd_kcontrol *kcontrol,
2859 struct snd_ctl_elem_value *ucontrol)
2860{
2861 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
2862
2863 if (backend_id >= 0) {
2864 mutex_lock(&routing_lock);
2865 msm_bedais[backend_id].adm_override_ch =
2866 ucontrol->value.integer.value[0];
2867 pr_debug("%s:updating BE :%d adm channels: %d\n",
2868 __func__, backend_id,
2869 msm_bedais[backend_id].adm_override_ch);
2870 mutex_unlock(&routing_lock);
2871 }
2872
2873 return 0;
2874}
2875
2876static const struct snd_kcontrol_new adm_channel_config_controls[] = {
2877 SOC_ENUM_EXT("SLIM7_RX ADM Channels", slim_7_rx_adm_override_chs,
2878 msm_routing_adm_channel_config_get,
2879 msm_routing_adm_channel_config_put),
2880};
2881
2882static int msm_routing_slim_0_rx_aanc_mux_get(struct snd_kcontrol *kcontrol,
2883 struct snd_ctl_elem_value *ucontrol)
2884{
2885
2886 mutex_lock(&routing_lock);
2887 ucontrol->value.integer.value[0] = slim0_rx_aanc_fb_port;
2888 mutex_unlock(&routing_lock);
2889 pr_debug("%s: AANC Mux Port %ld\n", __func__,
2890 ucontrol->value.integer.value[0]);
2891 return 0;
2892};
2893
2894static int msm_routing_slim_0_rx_aanc_mux_put(struct snd_kcontrol *kcontrol,
2895 struct snd_ctl_elem_value *ucontrol)
2896{
2897 struct aanc_data aanc_info;
2898
2899 mutex_lock(&routing_lock);
2900 memset(&aanc_info, 0x00, sizeof(aanc_info));
2901 pr_debug("%s: AANC Mux Port %ld\n", __func__,
2902 ucontrol->value.integer.value[0]);
2903 slim0_rx_aanc_fb_port = ucontrol->value.integer.value[0];
2904 if (ucontrol->value.integer.value[0] == 0) {
2905 aanc_info.aanc_active = false;
2906 aanc_info.aanc_tx_port = 0;
2907 aanc_info.aanc_rx_port = 0;
2908 } else {
2909 aanc_info.aanc_active = true;
2910 aanc_info.aanc_rx_port = SLIMBUS_0_RX;
2911 aanc_info.aanc_tx_port =
2912 (SLIMBUS_0_RX - 1 + (slim0_rx_aanc_fb_port * 2));
2913 }
2914 afe_set_aanc_info(&aanc_info);
2915 mutex_unlock(&routing_lock);
2916 return 0;
2917};
2918static int msm_routing_get_port_mixer(struct snd_kcontrol *kcontrol,
2919 struct snd_ctl_elem_value *ucontrol)
2920{
2921 int idx = 0, shift = 0;
2922 struct soc_mixer_control *mc =
2923 (struct soc_mixer_control *)kcontrol->private_value;
2924
Meng Wang05d5e9a2018-03-28 16:45:03 +08002925 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
2926 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302927
2928 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
2929 pr_err("%s: Invalid idx = %d\n", __func__, idx);
2930 return -EINVAL;
2931 }
2932
2933 if (test_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08002934 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302935 ucontrol->value.integer.value[0] = 1;
2936 else
2937 ucontrol->value.integer.value[0] = 0;
2938
Meng Wang05d5e9a2018-03-28 16:45:03 +08002939 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302940 ucontrol->value.integer.value[0]);
2941
2942 return 0;
2943}
2944
2945static int msm_routing_put_port_mixer(struct snd_kcontrol *kcontrol,
2946 struct snd_ctl_elem_value *ucontrol)
2947{
2948 int idx = 0, shift = 0;
2949 struct soc_mixer_control *mc =
2950 (struct soc_mixer_control *)kcontrol->private_value;
2951
Meng Wang05d5e9a2018-03-28 16:45:03 +08002952 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
2953 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302954
2955 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
2956 pr_err("%s: Invalid idx = %d\n", __func__, idx);
2957 return -EINVAL;
2958 }
2959
Meng Wang05d5e9a2018-03-28 16:45:03 +08002960 pr_debug("%s: shift 0x%x rshift 0x%x val %ld idx %d reminder shift %d\n",
2961 __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302962 ucontrol->value.integer.value[0], idx, shift);
2963
2964 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002965 afe_loopback(1, msm_bedais[mc->shift].port_id,
2966 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302967 set_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08002968 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302969 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002970 afe_loopback(0, msm_bedais[mc->shift].port_id,
2971 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302972 clear_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08002973 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302974 }
2975
2976 return 1;
2977}
2978
2979static int msm_pcm_get_channel_rule_index(struct snd_kcontrol *kcontrol,
2980 struct snd_ctl_elem_value *ucontrol)
2981{
2982 u16 fe_id = 0;
2983
2984 fe_id = ((struct soc_mixer_control *)
2985 kcontrol->private_value)->shift;
2986 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
2987 pr_err("%s: invalid FE %d\n", __func__, fe_id);
2988 return -EINVAL;
2989 }
2990
2991 ucontrol->value.integer.value[0] = channel_mixer[fe_id].rule;
2992
2993 return 0;
2994}
2995
2996static int msm_pcm_put_channel_rule_index(struct snd_kcontrol *kcontrol,
2997 struct snd_ctl_elem_value *ucontrol)
2998{
2999 u16 fe_id = 0;
3000
3001 fe_id = ((struct soc_mixer_control *)
3002 kcontrol->private_value)->shift;
3003 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3004 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3005 return -EINVAL;
3006 }
3007
3008 channel_mixer[fe_id].rule = ucontrol->value.integer.value[0];
3009
3010 return 1;
3011}
3012
3013static int msm_pcm_get_out_chs(struct snd_kcontrol *kcontrol,
3014 struct snd_ctl_elem_value *ucontrol)
3015{
3016 u16 fe_id = 0;
3017
3018 fe_id = ((struct soc_multi_mixer_control *)
3019 kcontrol->private_value)->shift;
3020 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3021 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3022 return -EINVAL;
3023 }
3024
3025 ucontrol->value.integer.value[0] =
3026 channel_mixer[fe_id].output_channel;
3027 return 0;
3028}
3029
3030static int msm_pcm_put_out_chs(struct snd_kcontrol *kcontrol,
3031 struct snd_ctl_elem_value *ucontrol)
3032{
3033 u16 fe_id = 0;
3034
3035 fe_id = ((struct soc_multi_mixer_control *)
3036 kcontrol->private_value)->shift;
3037 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3038 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3039 return -EINVAL;
3040 }
3041
3042 pr_debug("%s: fe_id is %d, output channels = %d\n", __func__,
3043 fe_id,
3044 (unsigned int)(ucontrol->value.integer.value[0]));
3045 channel_mixer[fe_id].output_channel =
3046 (unsigned int)(ucontrol->value.integer.value[0]);
3047
3048 return 1;
3049}
3050
3051static const char *const ch_mixer[] = {"Disable", "Enable"};
3052
3053/* If new backend is added, need update this array */
3054static const char *const be_name[] = {
3055"ZERO", "PRI_I2S_RX", "PRI_I2S_TX", "SLIM_0_RX",
3056"SLIM_0_TX", "HDMI_RX", "INT_BT_SCO_RX", "INT_BT_SCO_TX",
3057"INT_FM_RX", "INT_FM_TX", "AFE_PCM_RX", "AFE_PCM_TX",
3058"AUXPCM_RX", "AUXPCM_TX", "VOICE_PLAYBACK_TX", "VOICE2_PLAYBACK_TX",
3059"INCALL_RECORD_RX", "INCALL_RECORD_TX", "MI2S_RX", "MI2S_TX",
3060"SEC_I2S_RX", "SLIM_1_RX", "SLIM_1_TX", "SLIM_2_RX",
3061"SLIM_2_TX", "SLIM_3_RX", "SLIM_3_TX", "SLIM_4_RX",
3062"SLIM_4_TX", "SLIM_5_RX", "SLIM_5_TX", "SLIM_6_RX",
3063"SLIM_6_TX", "SLIM_7_RX", "SLIM_7_TX", "SLIM_8_RX",
3064"SLIM_8_TX", "EXTPROC_RX", "EXTPROC_TX", "EXPROC_EC_TX",
3065"QUAT_MI2S_RX", "QUAT_MI2S_TX", "SECOND_MI2S_RX", "SECOND_MI2S_TX",
3066"PRI_MI2S_RX", "PRI_MI2S_TX", "TERT_MI2S_RX", "TERT_MI2S_TX",
Ralf Herzc8701f72018-06-20 11:37:35 +02003067"AUDIO_I2S_RX", "SEC_AUXPCM_RX", "SEC_AUXPCM_TX", "PRI_SPDIF_RX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303068"SECOND_MI2S_RX_SD1", "QUIN_MI2S_RX", "QUIN_MI2S_TX", "SENARY_MI2S_TX",
3069"PRI_TDM_RX_0", "PRI_TDM_TX_0", "PRI_TDM_RX_1", "PRI_TDM_TX_1",
3070"PRI_TDM_RX_2", "PRI_TDM_TX_2", "PRI_TDM_RX_3", "PRI_TDM_TX_3",
3071"PRI_TDM_RX_4", "PRI_TDM_TX_4", "PRI_TDM_RX_5", "PRI_TDM_TX_5",
3072"PRI_TDM_RX_6", "PRI_TDM_TX_6", "PRI_TDM_RX_7", "PRI_TDM_TX_7",
3073"SEC_TDM_RX_0", "SEC_TDM_TX_0", "SEC_TDM_RX_1", "SEC_TDM_TX_1",
3074"SEC_TDM_RX_2", "SEC_TDM_TX_2", "SEC_TDM_RX_3", "SEC_TDM_TX_3",
3075"SEC_TDM_RX_4", "SEC_TDM_TX_4", "SEC_TDM_RX_5", "SEC_TDM_TX_5",
3076"SEC_TDM_RX_6", "SEC_TDM_TX_6", "SEC_TDM_RX_7", "SEC_TDM_TX_7",
3077"TERT_TDM_RX_0", "TERT_TDM_TX_0", "TERT_TDM_RX_1", "TERT_TDM_TX_1",
3078"TERT_TDM_RX_2", "TERT_TDM_TX_2", "TERT_TDM_RX_3", "TERT_TDM_TX_3",
3079"TERT_TDM_RX_4", "TERT_TDM_TX_4", "TERT_TDM_RX_5", "TERT_TDM_TX_5",
3080"TERT_TDM_RX_6", "TERT_TDM_TX_6", "TERT_TDM_RX_7", "TERT_TDM_TX_7",
3081"QUAT_TDM_RX_0", "QUAT_TDM_TX_0", "QUAT_TDM_RX_1", "QUAT_TDM_TX_1",
3082"QUAT_TDM_RX_2", "QUAT_TDM_TX_2", "QUAT_TDM_RX_3", "QUAT_TDM_TX_3",
3083"QUAT_TDM_RX_4", "QUAT_TDM_TX_4", "QUAT_TDM_RX_5", "QUAT_TDM_TX_5",
3084"QUAT_TDM_RX_6", "QUAT_TDM_TX_6", "QUAT_TDM_RX_7", "QUAT_TDM_TX_7",
Rohit Kumara5077932017-09-10 22:05:05 +05303085"QUIN_TDM_RX_0", "QUIN_TDM_TX_0", "QUIN_TDM_RX_1", "QUIN_TDM_TX_1",
3086"QUIN_TDM_RX_2", "QUIN_TDM_TX_2", "QUIN_TDM_RX_3", "QUIN_TDM_TX_3",
3087"QUIN_TDM_RX_4", "QUIN_TDM_TX_4", "QUIN_TDM_RX_5", "QUIN_TDM_TX_5",
3088"QUIN_TDM_RX_6", "QUIN_TDM_TX_6", "QUIN_TDM_RX_7", "QUIN_TDM_TX_7",
Karthikeyan Mani57550082018-05-03 18:43:58 -07003089"INT_BT_A2DP_RX", "USB_RX", "USB_TX", "DISPLAY_PORT_RX", "DISPLAY_PORT_RX1",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303090"TERT_AUXPCM_RX", "TERT_AUXPCM_TX", "QUAT_AUXPCM_RX", "QUAT_AUXPCM_TX",
Rohit Kumara5077932017-09-10 22:05:05 +05303091"QUIN_AUXPCM_RX", "QUIN_AUXPCM_TX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303092"INT0_MI2S_RX", "INT0_MI2S_TX", "INT1_MI2S_RX", "INT1_MI2S_TX",
3093"INT2_MI2S_RX", "INT2_MI2S_TX", "INT3_MI2S_RX", "INT3_MI2S_TX",
3094"INT4_MI2S_RX", "INT4_MI2S_TX", "INT5_MI2S_RX", "INT5_MI2S_TX",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303095"INT6_MI2S_RX", "INT6_MI2S_TX", "WSA_CDC_DMA_RX_0",
3096"WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_RX_1", "WSA_CDC_DMA_TX_1",
Ralf Herzc8701f72018-06-20 11:37:35 +02003097"WSA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_1",
Aditya Bavanari1e84a932018-06-18 19:40:08 +05303098"RX_CDC_DMA_RX_0", "TX_CDC_DMA_TX_0", "RX_CDC_DMA_RX_1", "TX_CDC_DMA_TX_1",
3099"RX_CDC_DMA_RX_2", "TX_CDC_DMA_TX_2", "RX_CDC_DMA_RX_3", "TX_CDC_DMA_TX_3",
3100"RX_CDC_DMA_RX_4", "TX_CDC_DMA_TX_4", "RX_CDC_DMA_RX_5", "TX_CDC_DMA_TX_5",
3101"RX_CDC_DMA_RX_6", "RX_CDC_DMA_RX_7",
3102"PRI_SPDIF_TX", "SEC_SPDIF_RX", "SEC_SPDIF_TX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303103};
3104
3105static SOC_ENUM_SINGLE_DECL(mm1_channel_mux,
3106 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, ch_mixer);
3107static SOC_ENUM_SINGLE_DECL(mm2_channel_mux,
3108 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA2, ch_mixer);
3109static SOC_ENUM_SINGLE_DECL(mm3_channel_mux,
3110 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA3, ch_mixer);
3111static SOC_ENUM_SINGLE_DECL(mm4_channel_mux,
3112 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA4, ch_mixer);
3113
3114static SOC_ENUM_DOUBLE_DECL(mm1_ch1_enum,
3115 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 0, be_name);
3116static SOC_ENUM_DOUBLE_DECL(mm1_ch2_enum,
3117 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 1, be_name);
3118static SOC_ENUM_DOUBLE_DECL(mm1_ch3_enum,
3119 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 2, be_name);
3120static SOC_ENUM_DOUBLE_DECL(mm1_ch4_enum,
3121 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 3, be_name);
3122static SOC_ENUM_DOUBLE_DECL(mm1_ch5_enum,
3123 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 4, be_name);
3124static SOC_ENUM_DOUBLE_DECL(mm1_ch6_enum,
3125 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 5, be_name);
3126static SOC_ENUM_DOUBLE_DECL(mm1_ch7_enum,
3127 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 6, be_name);
3128static SOC_ENUM_DOUBLE_DECL(mm1_ch8_enum,
3129 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 7, be_name);
3130
3131static int msm_pcm_get_ctl_enum_info(struct snd_ctl_elem_info *uinfo,
3132 unsigned int channels,
3133 unsigned int items, const char *const names[])
3134{
3135 if (uinfo->value.enumerated.item >= items)
3136 uinfo->value.enumerated.item = items - 1;
3137
3138 WARN(strlen(names[uinfo->value.enumerated.item]) >=
3139 sizeof(uinfo->value.enumerated.name),
3140 "ALSA: too long item name '%s'\n",
3141 names[uinfo->value.enumerated.item]);
3142 strlcpy(uinfo->value.enumerated.name,
3143 names[uinfo->value.enumerated.item],
3144 sizeof(uinfo->value.enumerated.name));
3145 return 0;
3146}
3147
3148static int msm_pcm_channel_mixer_info(struct snd_kcontrol *kcontrol,
3149 struct snd_ctl_elem_info *uinfo)
3150{
3151 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3152
3153 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3154 uinfo->count = 1;
3155
3156 uinfo->value.enumerated.items = ARRAY_SIZE(ch_mixer);
3157 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3158
3159 return 0;
3160}
3161static int msm_pcm_channel_mixer_get(struct snd_kcontrol *kcontrol,
3162 struct snd_ctl_elem_value *ucontrol)
3163{
3164 u16 fe_id = 0;
3165
3166 fe_id = ((struct soc_enum *)
3167 kcontrol->private_value)->shift_l;
3168 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3169 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3170 return -EINVAL;
3171 }
3172
3173 pr_debug("%s: FE %d %s\n", __func__,
3174 fe_id,
3175 channel_mixer[fe_id].enable ? "Enabled" : "Disabled");
3176 ucontrol->value.enumerated.item[0] = channel_mixer[fe_id].enable;
3177 return 0;
3178}
3179
3180static int msm_pcm_channel_mixer_put(struct snd_kcontrol *kcontrol,
3181 struct snd_ctl_elem_value *ucontrol)
3182{
3183 u16 fe_id = 0;
3184
3185 fe_id = ((struct soc_enum *)
3186 kcontrol->private_value)->shift_l;
3187 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3188 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3189 return -EINVAL;
3190 }
3191
3192 channel_mixer[fe_id].enable = ucontrol->value.enumerated.item[0];
3193 pr_debug("%s: %s FE %d\n", __func__,
3194 channel_mixer[fe_id].enable ? "Enable" : "Disable",
3195 fe_id);
3196 return 0;
3197}
3198
3199static int msm_pcm_channel_input_be_info(struct snd_kcontrol *kcontrol,
3200 struct snd_ctl_elem_info *uinfo)
3201{
3202 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3203
3204 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3205 uinfo->count = 1;
3206
3207 uinfo->value.enumerated.items = ARRAY_SIZE(be_name);
3208 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3209
3210 return 0;
3211}
3212
3213static int msm_pcm_channel_input_be_put(struct snd_kcontrol *kcontrol,
3214 struct snd_ctl_elem_value *ucontrol)
3215{
3216 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3217 u16 fe_id = 0, in_ch = 0;
3218
3219 fe_id = e->shift_l;
3220 in_ch = e->shift_r;
3221 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3222 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3223 return -EINVAL;
3224 }
3225 if (in_ch >= ADM_MAX_CHANNELS) {
3226 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3227 return -EINVAL;
3228 }
3229
3230 channel_input[fe_id][in_ch] = ucontrol->value.enumerated.item[0];
3231 return 1;
3232}
3233
3234static int msm_pcm_channel_input_be_get(struct snd_kcontrol *kcontrol,
3235 struct snd_ctl_elem_value *ucontrol)
3236{
3237 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3238 u16 fe_id = 0, in_ch = 0;
3239
3240 fe_id = e->shift_l;
3241 in_ch = e->shift_r;
3242 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3243 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3244 return -EINVAL;
3245 }
3246 if (in_ch >= ADM_MAX_CHANNELS) {
3247 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3248 return -EINVAL;
3249 }
3250
3251 ucontrol->value.enumerated.item[0] = channel_input[fe_id][in_ch];
3252 return 1;
3253}
3254
3255
3256static int msm_pcm_channel_weight_info(struct snd_kcontrol *kcontrol,
3257 struct snd_ctl_elem_info *uinfo)
3258{
3259 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
3260 uinfo->count = ADM_MAX_CHANNELS;
3261 uinfo->value.integer.min = 0;
3262 uinfo->value.integer.max = WEIGHT_0_DB;
3263
3264 return 0;
3265}
3266
3267static int msm_pcm_channel_weight_put(struct snd_kcontrol *kcontrol,
3268 struct snd_ctl_elem_value *ucontrol)
3269{
3270 u16 fe_id = 0, out_ch = 0;
3271 int i, weight;
3272
3273 fe_id = ((struct soc_multi_mixer_control *)
3274 kcontrol->private_value)->shift;
3275 out_ch = ((struct soc_multi_mixer_control *)
3276 kcontrol->private_value)->rshift;
3277 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3278 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3279 return -EINVAL;
3280 }
3281 if (out_ch >= ADM_MAX_CHANNELS) {
3282 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3283 return -EINVAL;
3284 }
3285
3286 pr_debug("%s: FE_ID: %d, channel weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld\n",
3287 __func__, fe_id,
3288 ucontrol->value.integer.value[0],
3289 ucontrol->value.integer.value[1],
3290 ucontrol->value.integer.value[2],
3291 ucontrol->value.integer.value[3],
3292 ucontrol->value.integer.value[4],
3293 ucontrol->value.integer.value[5],
3294 ucontrol->value.integer.value[6],
3295 ucontrol->value.integer.value[7]);
3296
3297 for (i = 0; i < ADM_MAX_CHANNELS; ++i) {
3298 weight = ucontrol->value.integer.value[i];
3299 channel_mixer[fe_id].channel_weight[out_ch][i] = weight;
3300 pr_debug("%s: FE_ID %d, output %d input %d weight %d\n",
3301 __func__, fe_id, out_ch, i,
3302 channel_mixer[fe_id].channel_weight[out_ch][i]);
3303 }
3304
3305 return 0;
3306}
3307
3308static int msm_pcm_channel_weight_get(struct snd_kcontrol *kcontrol,
3309 struct snd_ctl_elem_value *ucontrol)
3310{
3311 u16 fe_id = 0, out_ch = 0;
3312 int i;
3313
3314 fe_id = ((struct soc_multi_mixer_control *)
3315 kcontrol->private_value)->shift;
3316 out_ch = ((struct soc_multi_mixer_control *)
3317 kcontrol->private_value)->rshift;
3318 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3319 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3320 return -EINVAL;
3321 }
3322 if (out_ch >= ADM_MAX_CHANNELS) {
3323 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3324 return -EINVAL;
3325 }
3326
3327 for (i = 0; i < ADM_MAX_CHANNELS; ++i)
3328 ucontrol->value.integer.value[i] =
3329 channel_mixer[fe_id].channel_weight[out_ch][i];
3330
3331 pr_debug("%s: FE_ID: %d, weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld",
3332 __func__, fe_id,
3333 ucontrol->value.integer.value[0],
3334 ucontrol->value.integer.value[1],
3335 ucontrol->value.integer.value[2],
3336 ucontrol->value.integer.value[3],
3337 ucontrol->value.integer.value[4],
3338 ucontrol->value.integer.value[5],
3339 ucontrol->value.integer.value[6],
3340 ucontrol->value.integer.value[7]);
3341
3342 return 0;
3343}
3344
3345static const struct snd_kcontrol_new channel_mixer_controls[] = {
3346 SOC_SINGLE_EXT("MultiMedia1 Channel Rule", SND_SOC_NOPM,
3347 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3348 msm_pcm_get_channel_rule_index,
3349 msm_pcm_put_channel_rule_index),
3350 SOC_SINGLE_EXT("MultiMedia2 Channel Rule", SND_SOC_NOPM,
3351 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3352 msm_pcm_get_channel_rule_index,
3353 msm_pcm_put_channel_rule_index),
3354 SOC_SINGLE_EXT("MultiMedia3 Channel Rule", SND_SOC_NOPM,
3355 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3356 msm_pcm_get_channel_rule_index,
3357 msm_pcm_put_channel_rule_index),
3358 SOC_SINGLE_EXT("MultiMedia4 Channel Rule", SND_SOC_NOPM,
3359 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3360 msm_pcm_get_channel_rule_index,
3361 msm_pcm_put_channel_rule_index),
3362 SOC_SINGLE_EXT("MultiMedia5 Channel Rule", SND_SOC_NOPM,
3363 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3364 msm_pcm_get_channel_rule_index,
3365 msm_pcm_put_channel_rule_index),
3366 SOC_SINGLE_EXT("MultiMedia6 Channel Rule", SND_SOC_NOPM,
3367 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3368 msm_pcm_get_channel_rule_index,
3369 msm_pcm_put_channel_rule_index),
3370
3371 SOC_SINGLE_EXT("MultiMedia1 Channels", SND_SOC_NOPM,
3372 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3373 msm_pcm_get_out_chs,
3374 msm_pcm_put_out_chs),
3375 SOC_SINGLE_EXT("MultiMedia2 Channels", SND_SOC_NOPM,
3376 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3377 msm_pcm_get_out_chs,
3378 msm_pcm_put_out_chs),
3379 SOC_SINGLE_EXT("MultiMedia3 Channels", SND_SOC_NOPM,
3380 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3381 msm_pcm_get_out_chs,
3382 msm_pcm_put_out_chs),
3383 SOC_SINGLE_EXT("MultiMedia4 Channels", SND_SOC_NOPM,
3384 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3385 msm_pcm_get_out_chs,
3386 msm_pcm_put_out_chs),
3387 SOC_SINGLE_EXT("MultiMedia5 Channels", SND_SOC_NOPM,
3388 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3389 msm_pcm_get_out_chs,
3390 msm_pcm_put_out_chs),
3391 SOC_SINGLE_EXT("MultiMedia6 Channels", SND_SOC_NOPM,
3392 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3393 msm_pcm_get_out_chs,
3394 msm_pcm_put_out_chs),
3395 {
3396 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3397 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3398 .name = "MultiMedia1 Channel Mixer",
3399 .info = msm_pcm_channel_mixer_info,
3400 .get = msm_pcm_channel_mixer_get,
3401 .put = msm_pcm_channel_mixer_put,
3402 .private_value = (unsigned long)&(mm1_channel_mux)
3403 },
3404 {
3405 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3406 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3407 .name = "MultiMedia2 Channel Mixer",
3408 .info = msm_pcm_channel_mixer_info,
3409 .get = msm_pcm_channel_mixer_get,
3410 .put = msm_pcm_channel_mixer_put,
3411 .private_value = (unsigned long)&(mm2_channel_mux)
3412 },
3413 {
3414 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3415 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3416 .name = "MultiMedia3 Channel Mixer",
3417 .info = msm_pcm_channel_mixer_info,
3418 .get = msm_pcm_channel_mixer_get,
3419 .put = msm_pcm_channel_mixer_put,
3420 .private_value = (unsigned long)&(mm3_channel_mux)
3421 },
3422 {
3423 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3424 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3425 .name = "MultiMedia4 Channel Mixer",
3426 .info = msm_pcm_channel_mixer_info,
3427 .get = msm_pcm_channel_mixer_get,
3428 .put = msm_pcm_channel_mixer_put,
3429 .private_value = (unsigned long)&(mm4_channel_mux)
3430 },
3431 {
3432 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3433 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3434 .name = "MultiMedia1 Output Channel1",
3435 .info = msm_pcm_channel_weight_info,
3436 .get = msm_pcm_channel_weight_get,
3437 .put = msm_pcm_channel_weight_put,
3438 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3439 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 0,}
3440 },
3441 {
3442 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3443 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3444 .name = "MultiMedia1 Output Channel2",
3445 .info = msm_pcm_channel_weight_info,
3446 .get = msm_pcm_channel_weight_get,
3447 .put = msm_pcm_channel_weight_put,
3448 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3449 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 1, }
3450 },
3451 {
3452 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3453 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3454 .name = "MultiMedia1 Output Channel3",
3455 .info = msm_pcm_channel_weight_info,
3456 .get = msm_pcm_channel_weight_get,
3457 .put = msm_pcm_channel_weight_put,
3458 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3459 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 2,}
3460 },
3461 {
3462 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3463 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3464 .name = "MultiMedia1 Output Channel4",
3465 .info = msm_pcm_channel_weight_info,
3466 .get = msm_pcm_channel_weight_get,
3467 .put = msm_pcm_channel_weight_put,
3468 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3469 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 3,}
3470 },
3471 {
3472 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3473 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3474 .name = "MultiMedia1 Output Channel5",
3475 .info = msm_pcm_channel_weight_info,
3476 .get = msm_pcm_channel_weight_get,
3477 .put = msm_pcm_channel_weight_put,
3478 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3479 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 4,}
3480 },
3481 {
3482 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3483 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3484 .name = "MultiMedia1 Output Channel6",
3485 .info = msm_pcm_channel_weight_info,
3486 .get = msm_pcm_channel_weight_get,
3487 .put = msm_pcm_channel_weight_put,
3488 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3489 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 5,}
3490 },
3491 {
3492 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3493 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3494 .name = "MultiMedia1 Output Channel7",
3495 .info = msm_pcm_channel_weight_info,
3496 .get = msm_pcm_channel_weight_get,
3497 .put = msm_pcm_channel_weight_put,
3498 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3499 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 6,}
3500 },
3501 {
3502 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3503 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3504 .name = "MultiMedia1 Output Channel8",
3505 .info = msm_pcm_channel_weight_info,
3506 .get = msm_pcm_channel_weight_get,
3507 .put = msm_pcm_channel_weight_put,
3508 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3509 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 7,}
3510 },
3511 {
3512 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3513 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3514 .name = "MultiMedia2 Output Channel1",
3515 .info = msm_pcm_channel_weight_info,
3516 .get = msm_pcm_channel_weight_get,
3517 .put = msm_pcm_channel_weight_put,
3518 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3519 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 0,}
3520 },
3521 {
3522 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3523 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3524 .name = "MultiMedia2 Output Channel2",
3525 .info = msm_pcm_channel_weight_info,
3526 .get = msm_pcm_channel_weight_get,
3527 .put = msm_pcm_channel_weight_put,
3528 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3529 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 1,}
3530 },
3531 {
3532 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3533 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3534 .name = "MultiMedia2 Output Channel3",
3535 .info = msm_pcm_channel_weight_info,
3536 .get = msm_pcm_channel_weight_get,
3537 .put = msm_pcm_channel_weight_put,
3538 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3539 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 2,}
3540 },
3541 {
3542 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3543 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3544 .name = "MultiMedia3 Output Channel1",
3545 .info = msm_pcm_channel_weight_info,
3546 .get = msm_pcm_channel_weight_get,
3547 .put = msm_pcm_channel_weight_put,
3548 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3549 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 0,}
3550 },
3551 {
3552 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3553 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3554 .name = "MultiMedia3 Output Channel2",
3555 .info = msm_pcm_channel_weight_info,
3556 .get = msm_pcm_channel_weight_get,
3557 .put = msm_pcm_channel_weight_put,
3558 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3559 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 1,}
3560 },
3561 {
3562 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3563 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3564 .name = "MultiMedia1 Channel1",
3565 .info = msm_pcm_channel_input_be_info,
3566 .get = msm_pcm_channel_input_be_get,
3567 .put = msm_pcm_channel_input_be_put,
3568 .private_value = (unsigned long)&(mm1_ch1_enum)
3569 },
3570 {
3571 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3572 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3573 .name = "MultiMedia1 Channel2",
3574 .info = msm_pcm_channel_input_be_info,
3575 .get = msm_pcm_channel_input_be_get,
3576 .put = msm_pcm_channel_input_be_put,
3577 .private_value = (unsigned long)&(mm1_ch2_enum)
3578 },
3579 {
3580 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3581 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3582 .name = "MultiMedia1 Channel3",
3583 .info = msm_pcm_channel_input_be_info,
3584 .get = msm_pcm_channel_input_be_get,
3585 .put = msm_pcm_channel_input_be_put,
3586 .private_value = (unsigned long)&(mm1_ch3_enum)
3587 },
3588 {
3589 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3590 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3591 .name = "MultiMedia1 Channel4",
3592 .info = msm_pcm_channel_input_be_info,
3593 .get = msm_pcm_channel_input_be_get,
3594 .put = msm_pcm_channel_input_be_put,
3595 .private_value = (unsigned long)&(mm1_ch4_enum)
3596 },
3597 {
3598 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3599 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3600 .name = "MultiMedia1 Channel5",
3601 .info = msm_pcm_channel_input_be_info,
3602 .get = msm_pcm_channel_input_be_get,
3603 .put = msm_pcm_channel_input_be_put,
3604 .private_value = (unsigned long)&(mm1_ch5_enum)
3605 },
3606 {
3607 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3608 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3609 .name = "MultiMedia1 Channel6",
3610 .info = msm_pcm_channel_input_be_info,
3611 .get = msm_pcm_channel_input_be_get,
3612 .put = msm_pcm_channel_input_be_put,
3613 .private_value = (unsigned long)&(mm1_ch6_enum)
3614 },
3615 {
3616 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3617 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3618 .name = "MultiMedia1 Channel7",
3619 .info = msm_pcm_channel_input_be_info,
3620 .get = msm_pcm_channel_input_be_get,
3621 .put = msm_pcm_channel_input_be_put,
3622 .private_value = (unsigned long)&(mm1_ch7_enum)
3623 },
3624 {
3625 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3626 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3627 .name = "MultiMedia1 Channel8",
3628 .info = msm_pcm_channel_input_be_info,
3629 .get = msm_pcm_channel_input_be_get,
3630 .put = msm_pcm_channel_input_be_put,
3631 .private_value = (unsigned long)&(mm1_ch8_enum)
3632 },
3633};
3634static int msm_ec_ref_ch_get(struct snd_kcontrol *kcontrol,
3635 struct snd_ctl_elem_value *ucontrol)
3636{
3637 ucontrol->value.integer.value[0] = msm_ec_ref_ch;
3638 pr_debug("%s: msm_ec_ref_ch = %ld\n", __func__,
3639 ucontrol->value.integer.value[0]);
3640 return 0;
3641}
3642
3643static int msm_ec_ref_ch_put(struct snd_kcontrol *kcontrol,
3644 struct snd_ctl_elem_value *ucontrol)
3645{
3646 msm_ec_ref_ch = ucontrol->value.integer.value[0];
3647 pr_debug("%s: msm_ec_ref_ch = %d\n", __func__, msm_ec_ref_ch);
3648 adm_num_ec_ref_rx_chans(msm_ec_ref_ch);
3649 return 0;
3650}
3651
3652static const char *const ec_ref_ch_text[] = {"Zero", "One", "Two", "Three",
3653 "Four", "Five", "Six", "Seven", "Eight"};
3654
3655static int msm_ec_ref_bit_format_get(struct snd_kcontrol *kcontrol,
3656 struct snd_ctl_elem_value *ucontrol)
3657{
3658 switch (msm_ec_ref_bit_format) {
3659 case SNDRV_PCM_FORMAT_S24_LE:
3660 ucontrol->value.integer.value[0] = 2;
3661 break;
3662 case SNDRV_PCM_FORMAT_S16_LE:
3663 ucontrol->value.integer.value[0] = 1;
3664 break;
3665 default:
3666 ucontrol->value.integer.value[0] = 0;
3667 break;
3668 }
3669 pr_debug("%s: msm_ec_ref_bit_format = %ld\n",
3670 __func__, ucontrol->value.integer.value[0]);
3671 return 0;
3672}
3673
3674static int msm_ec_ref_bit_format_put(struct snd_kcontrol *kcontrol,
3675 struct snd_ctl_elem_value *ucontrol)
3676{
3677 u16 bit_width = 0;
3678
3679 switch (ucontrol->value.integer.value[0]) {
3680 case 2:
3681 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S24_LE;
3682 break;
3683 case 1:
3684 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
3685 break;
3686 default:
3687 msm_ec_ref_bit_format = 0;
3688 break;
3689 }
3690
3691 if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S16_LE)
3692 bit_width = 16;
3693 else if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S24_LE)
3694 bit_width = 24;
3695
3696 pr_debug("%s: msm_ec_ref_bit_format = %d\n",
3697 __func__, msm_ec_ref_bit_format);
3698 adm_ec_ref_rx_bit_width(bit_width);
3699 return 0;
3700}
3701
3702static char const *ec_ref_bit_format_text[] = {"0", "S16_LE", "S24_LE"};
3703
3704static int msm_ec_ref_rate_get(struct snd_kcontrol *kcontrol,
3705 struct snd_ctl_elem_value *ucontrol)
3706{
3707 ucontrol->value.integer.value[0] = msm_ec_ref_sampling_rate;
3708 pr_debug("%s: msm_ec_ref_sampling_rate = %ld\n",
3709 __func__, ucontrol->value.integer.value[0]);
3710 return 0;
3711}
3712
3713static int msm_ec_ref_rate_put(struct snd_kcontrol *kcontrol,
3714 struct snd_ctl_elem_value *ucontrol)
3715{
3716 switch (ucontrol->value.integer.value[0]) {
3717 case 0:
3718 msm_ec_ref_sampling_rate = 0;
3719 break;
3720 case 1:
3721 msm_ec_ref_sampling_rate = 8000;
3722 break;
3723 case 2:
3724 msm_ec_ref_sampling_rate = 16000;
3725 break;
3726 case 3:
3727 msm_ec_ref_sampling_rate = 32000;
3728 break;
3729 case 4:
3730 msm_ec_ref_sampling_rate = 44100;
3731 break;
3732 case 5:
3733 msm_ec_ref_sampling_rate = 48000;
3734 break;
3735 case 6:
3736 msm_ec_ref_sampling_rate = 96000;
3737 break;
3738 case 7:
3739 msm_ec_ref_sampling_rate = 192000;
3740 break;
3741 case 8:
3742 msm_ec_ref_sampling_rate = 384000;
3743 break;
3744 default:
3745 msm_ec_ref_sampling_rate = 48000;
3746 break;
3747 }
3748 pr_debug("%s: msm_ec_ref_sampling_rate = %d\n",
3749 __func__, msm_ec_ref_sampling_rate);
3750 adm_ec_ref_rx_sampling_rate(msm_ec_ref_sampling_rate);
3751 return 0;
3752}
3753
3754static const char *const ec_ref_rate_text[] = {"0", "8000", "16000",
3755 "32000", "44100", "48000", "96000", "192000", "384000"};
3756
3757static const struct soc_enum msm_route_ec_ref_params_enum[] = {
3758 SOC_ENUM_SINGLE_EXT(9, ec_ref_ch_text),
3759 SOC_ENUM_SINGLE_EXT(3, ec_ref_bit_format_text),
3760 SOC_ENUM_SINGLE_EXT(9, ec_ref_rate_text),
3761};
3762
3763static const struct snd_kcontrol_new ec_ref_param_controls[] = {
3764 SOC_ENUM_EXT("EC Reference Channels", msm_route_ec_ref_params_enum[0],
3765 msm_ec_ref_ch_get, msm_ec_ref_ch_put),
3766 SOC_ENUM_EXT("EC Reference Bit Format", msm_route_ec_ref_params_enum[1],
3767 msm_ec_ref_bit_format_get, msm_ec_ref_bit_format_put),
3768 SOC_ENUM_EXT("EC Reference SampleRate", msm_route_ec_ref_params_enum[2],
3769 msm_ec_ref_rate_get, msm_ec_ref_rate_put),
3770};
3771
3772static int msm_routing_ec_ref_rx_get(struct snd_kcontrol *kcontrol,
3773 struct snd_ctl_elem_value *ucontrol)
3774{
3775 pr_debug("%s: ec_ref_rx = %d", __func__, msm_route_ec_ref_rx);
3776 mutex_lock(&routing_lock);
3777 ucontrol->value.integer.value[0] = msm_route_ec_ref_rx;
3778 mutex_unlock(&routing_lock);
3779 return 0;
3780}
3781
3782static int msm_routing_ec_ref_rx_put(struct snd_kcontrol *kcontrol,
3783 struct snd_ctl_elem_value *ucontrol)
3784{
3785 int ec_ref_port_id;
Asish Bhattacharya34504582017-08-08 12:55:01 +05303786 struct snd_soc_dapm_widget *widget =
3787 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303788 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3789 struct snd_soc_dapm_update *update = NULL;
3790
3791
3792 mutex_lock(&routing_lock);
3793 switch (ucontrol->value.integer.value[0]) {
3794 case 0:
3795 msm_route_ec_ref_rx = 0;
3796 ec_ref_port_id = AFE_PORT_INVALID;
3797 break;
3798 case 1:
3799 msm_route_ec_ref_rx = 1;
3800 ec_ref_port_id = SLIMBUS_0_RX;
3801 break;
3802 case 2:
3803 msm_route_ec_ref_rx = 2;
3804 ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_RX;
3805 break;
3806 case 3:
3807 msm_route_ec_ref_rx = 3;
3808 ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
3809 break;
3810 case 4:
3811 msm_route_ec_ref_rx = 4;
3812 ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
3813 break;
3814 case 5:
3815 msm_route_ec_ref_rx = 5;
3816 ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
3817 break;
3818 case 6:
3819 msm_route_ec_ref_rx = 6;
3820 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
3821 break;
3822 case 7:
3823 msm_route_ec_ref_rx = 7;
3824 ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_RX;
3825 break;
3826 case 9:
3827 msm_route_ec_ref_rx = 9;
3828 ec_ref_port_id = SLIMBUS_5_RX;
3829 break;
3830 case 10:
3831 msm_route_ec_ref_rx = 10;
3832 ec_ref_port_id = SLIMBUS_1_TX;
3833 break;
3834 case 11:
3835 msm_route_ec_ref_rx = 11;
3836 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_TX_1;
3837 break;
3838 case 12:
3839 msm_route_ec_ref_rx = 12;
3840 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX;
3841 break;
3842 case 13:
3843 msm_route_ec_ref_rx = 13;
3844 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_1;
3845 break;
3846 case 14:
3847 msm_route_ec_ref_rx = 14;
3848 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_2;
3849 break;
3850 case 15:
3851 msm_route_ec_ref_rx = 15;
3852 ec_ref_port_id = SLIMBUS_6_RX;
3853 break;
3854 case 16:
3855 msm_route_ec_ref_rx = 16;
3856 ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_RX;
3857 break;
3858 case 17:
3859 msm_route_ec_ref_rx = 17;
3860 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_RX;
3861 break;
3862 case 18:
3863 msm_route_ec_ref_rx = 18;
3864 ec_ref_port_id = AFE_PORT_ID_TERTIARY_TDM_TX;
3865 break;
3866 case 19:
3867 msm_route_ec_ref_rx = 19;
3868 ec_ref_port_id = AFE_PORT_ID_USB_RX;
3869 break;
3870 case 20:
3871 msm_route_ec_ref_rx = 20;
3872 ec_ref_port_id = AFE_PORT_ID_INT0_MI2S_RX;
3873 break;
3874 case 21:
3875 msm_route_ec_ref_rx = 21;
3876 ec_ref_port_id = AFE_PORT_ID_INT4_MI2S_RX;
3877 break;
3878 case 22:
3879 msm_route_ec_ref_rx = 22;
3880 ec_ref_port_id = AFE_PORT_ID_INT3_MI2S_TX;
3881 break;
Aalique Grahamee4fd7d52017-11-28 13:24:13 -08003882 case 23:
3883 msm_route_ec_ref_rx = 23;
3884 ec_ref_port_id = AFE_PORT_ID_HDMI_OVER_DP_RX;
3885 break;
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303886 case 24:
3887 msm_route_ec_ref_rx = 24;
3888 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_0;
3889 break;
3890 case 25:
3891 msm_route_ec_ref_rx = 25;
3892 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_1;
3893 break;
3894 case 26:
3895 msm_route_ec_ref_rx = 26;
3896 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_0;
3897 break;
3898 case 27:
3899 msm_route_ec_ref_rx = 27;
3900 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_1;
3901 break;
3902 case 28:
3903 msm_route_ec_ref_rx = 28;
3904 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_2;
3905 break;
Zhou Songb167db12018-07-02 17:14:00 +08003906 case 29:
3907 msm_route_ec_ref_rx = 29;
3908 ec_ref_port_id = SLIMBUS_7_RX;
3909 break;
Aditya Bavanari1e84a932018-06-18 19:40:08 +05303910 case 30:
3911 msm_route_ec_ref_rx = 30;
3912 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_0;
3913 break;
3914 case 31:
3915 msm_route_ec_ref_rx = 31;
3916 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_1;
3917 break;
3918 case 32:
3919 msm_route_ec_ref_rx = 32;
3920 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_2;
3921 break;
3922 case 33:
3923 msm_route_ec_ref_rx = 33;
3924 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_3;
3925 break;
3926 case 34:
3927 msm_route_ec_ref_rx = 34;
3928 ec_ref_port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_0;
3929 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303930 default:
3931 msm_route_ec_ref_rx = 0; /* NONE */
3932 pr_err("%s EC ref rx %ld not valid\n",
3933 __func__, ucontrol->value.integer.value[0]);
3934 ec_ref_port_id = AFE_PORT_INVALID;
3935 break;
3936 }
3937 adm_ec_ref_rx_id(ec_ref_port_id);
3938 pr_debug("%s: msm_route_ec_ref_rx = %d\n",
3939 __func__, msm_route_ec_ref_rx);
3940 mutex_unlock(&routing_lock);
3941 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol,
3942 msm_route_ec_ref_rx, e, update);
3943 return 0;
3944}
3945
3946static const char *const ec_ref_rx[] = { "None", "SLIM_RX", "I2S_RX",
3947 "PRI_MI2S_TX", "SEC_MI2S_TX",
3948 "TERT_MI2S_TX", "QUAT_MI2S_TX", "SEC_I2S_RX", "PROXY_RX",
3949 "SLIM_5_RX", "SLIM_1_TX", "QUAT_TDM_TX_1",
3950 "QUAT_TDM_RX_0", "QUAT_TDM_RX_1", "QUAT_TDM_RX_2", "SLIM_6_RX",
3951 "TERT_MI2S_RX", "QUAT_MI2S_RX", "TERT_TDM_TX_0", "USB_AUDIO_RX",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303952 "INT0_MI2S_RX", "INT4_MI2S_RX", "INT3_MI2S_TX", "DISPLAY_PORT",
3953 "WSA_CDC_DMA_RX_0", "WSA_CDC_DMA_RX_1",
Zhou Songb167db12018-07-02 17:14:00 +08003954 "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_2",
Aditya Bavanari1e84a932018-06-18 19:40:08 +05303955 "SLIM_7_RX", "RX_CDC_DMA_RX_0", "RX_CDC_DMA_RX_1", "RX_CDC_DMA_RX_2",
3956 "RX_CDC_DMA_RX_3", "TX_CDC_DMA_TX_0",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303957};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303958
3959static const struct soc_enum msm_route_ec_ref_rx_enum[] = {
3960 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_rx), ec_ref_rx),
3961};
3962
3963static const struct snd_kcontrol_new ext_ec_ref_mux_ul1 =
3964 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL1 MUX Mux",
3965 msm_route_ec_ref_rx_enum[0],
3966 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3967
3968static const struct snd_kcontrol_new ext_ec_ref_mux_ul2 =
3969 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL2 MUX Mux",
3970 msm_route_ec_ref_rx_enum[0],
3971 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3972
3973static const struct snd_kcontrol_new ext_ec_ref_mux_ul3 =
3974 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL3 MUX Mux",
3975 msm_route_ec_ref_rx_enum[0],
3976 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3977
3978static const struct snd_kcontrol_new ext_ec_ref_mux_ul4 =
3979 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL4 MUX Mux",
3980 msm_route_ec_ref_rx_enum[0],
3981 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3982
3983static const struct snd_kcontrol_new ext_ec_ref_mux_ul5 =
3984 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL5 MUX Mux",
3985 msm_route_ec_ref_rx_enum[0],
3986 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3987
3988static const struct snd_kcontrol_new ext_ec_ref_mux_ul6 =
3989 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL6 MUX Mux",
3990 msm_route_ec_ref_rx_enum[0],
3991 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3992
3993static const struct snd_kcontrol_new ext_ec_ref_mux_ul8 =
3994 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL8 MUX Mux",
3995 msm_route_ec_ref_rx_enum[0],
3996 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3997
3998static const struct snd_kcontrol_new ext_ec_ref_mux_ul9 =
3999 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL9 MUX Mux",
4000 msm_route_ec_ref_rx_enum[0],
4001 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4002
Asish Bhattacharya34504582017-08-08 12:55:01 +05304003static const struct snd_kcontrol_new ext_ec_ref_mux_ul16 =
4004 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL16 MUX Mux",
4005 msm_route_ec_ref_rx_enum[0],
4006 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4007
Laxminath Kasam38070be2017-08-17 18:21:59 +05304008static const struct snd_kcontrol_new ext_ec_ref_mux_ul10 =
4009 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL10 MUX Mux",
4010 msm_route_ec_ref_rx_enum[0],
4011 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4012
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304013static const struct snd_kcontrol_new ext_ec_ref_mux_ul17 =
4014 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL17 MUX Mux",
4015 msm_route_ec_ref_rx_enum[0],
4016 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4017
4018static const struct snd_kcontrol_new ext_ec_ref_mux_ul18 =
4019 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL18 MUX Mux",
4020 msm_route_ec_ref_rx_enum[0],
4021 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4022
4023static const struct snd_kcontrol_new ext_ec_ref_mux_ul19 =
4024 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL19 MUX Mux",
4025 msm_route_ec_ref_rx_enum[0],
4026 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4027
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304028static const struct snd_kcontrol_new ext_ec_ref_mux_ul28 =
4029 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL28 MUX Mux",
4030 msm_route_ec_ref_rx_enum[0],
4031 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4032
4033static const struct snd_kcontrol_new ext_ec_ref_mux_ul29 =
4034 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL29 MUX Mux",
4035 msm_route_ec_ref_rx_enum[0],
4036 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4037
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304038static int msm_routing_ext_ec_get(struct snd_kcontrol *kcontrol,
4039 struct snd_ctl_elem_value *ucontrol)
4040{
4041 pr_debug("%s: ext_ec_ref_rx = %x\n", __func__, msm_route_ext_ec_ref);
4042
4043 mutex_lock(&routing_lock);
4044 ucontrol->value.integer.value[0] = msm_route_ext_ec_ref;
4045 mutex_unlock(&routing_lock);
4046 return 0;
4047}
4048
4049static int msm_routing_ext_ec_put(struct snd_kcontrol *kcontrol,
4050 struct snd_ctl_elem_value *ucontrol)
4051{
Asish Bhattacharya34504582017-08-08 12:55:01 +05304052 struct snd_soc_dapm_widget *widget =
4053 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304054 int mux = ucontrol->value.enumerated.item[0];
4055 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
4056 int ret = 1;
4057 bool state = true;
4058 uint16_t ext_ec_ref_port_id;
4059 struct snd_soc_dapm_update *update = NULL;
4060
4061 if (mux >= e->items) {
4062 pr_err("%s: Invalid mux value %d\n", __func__, mux);
4063 return -EINVAL;
4064 }
4065
4066 mutex_lock(&routing_lock);
4067 msm_route_ext_ec_ref = ucontrol->value.integer.value[0];
4068
4069 switch (msm_route_ext_ec_ref) {
4070 case EXT_EC_REF_PRI_MI2S_TX:
4071 ext_ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
4072 break;
4073 case EXT_EC_REF_SEC_MI2S_TX:
4074 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
4075 break;
4076 case EXT_EC_REF_TERT_MI2S_TX:
4077 ext_ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
4078 break;
4079 case EXT_EC_REF_QUAT_MI2S_TX:
4080 ext_ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
4081 break;
4082 case EXT_EC_REF_QUIN_MI2S_TX:
4083 ext_ec_ref_port_id = AFE_PORT_ID_QUINARY_MI2S_TX;
4084 break;
4085 case EXT_EC_REF_SLIM_1_TX:
4086 ext_ec_ref_port_id = SLIMBUS_1_TX;
4087 break;
Karthikeyan Manibfba0542018-06-20 15:20:28 -07004088 case EXT_EC_REF_SEC_TDM_TX:
4089 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
4090 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304091 case EXT_EC_REF_NONE:
4092 default:
4093 ext_ec_ref_port_id = AFE_PORT_INVALID;
4094 state = false;
4095 break;
4096 }
4097
4098 pr_debug("%s: val = %d ext_ec_ref_port_id = 0x%0x state = %d\n",
4099 __func__, msm_route_ext_ec_ref, ext_ec_ref_port_id, state);
4100
4101 if (!voc_set_ext_ec_ref_port_id(ext_ec_ref_port_id, state)) {
4102 mutex_unlock(&routing_lock);
4103 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol, mux, e,
4104 update);
4105 } else {
4106 ret = -EINVAL;
4107 mutex_unlock(&routing_lock);
4108 }
4109 return ret;
4110}
4111
4112static const char * const ext_ec_ref_rx[] = {"NONE", "PRI_MI2S_TX",
4113 "SEC_MI2S_TX", "TERT_MI2S_TX",
4114 "QUAT_MI2S_TX", "QUIN_MI2S_TX",
Karthikeyan Manibfba0542018-06-20 15:20:28 -07004115 "SLIM_1_TX", "SEC_TDM_TX"};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304116
4117static const struct soc_enum msm_route_ext_ec_ref_rx_enum[] = {
4118 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ext_ec_ref_rx), ext_ec_ref_rx),
4119};
4120
4121static const struct snd_kcontrol_new voc_ext_ec_mux =
4122 SOC_DAPM_ENUM_EXT("VOC_EXT_EC MUX Mux", msm_route_ext_ec_ref_rx_enum[0],
4123 msm_routing_ext_ec_get, msm_routing_ext_ec_put);
4124
4125
4126static const struct snd_kcontrol_new pri_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004127 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4128 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304129 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4130 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004131 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4132 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304133 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4134 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004135 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4136 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304137 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4138 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004139 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4140 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304141 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4142 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004143 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4144 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304145 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4146 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004147 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4148 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304149 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4150 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004151 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4152 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304153 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4154 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004155 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4156 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304157 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4158 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004159 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4160 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304161 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4162 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004163 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4164 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304165 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4166 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004167 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4168 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304169 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4170 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004171 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4172 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304173 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4174 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004175 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4176 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304177 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4178 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004179 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4180 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304181 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4182 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004183 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4184 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304185 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4186 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004187 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4188 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304189 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4190 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004191 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4192 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304193 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4194 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004195 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4196 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304197 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4198 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004199 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4200 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304201 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4202 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304203 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4204 MSM_BACKEND_DAI_PRI_I2S_RX,
4205 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4206 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004207 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4208 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304209 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4210 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004211 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4212 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304213 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4214 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304215};
4216
4217static const struct snd_kcontrol_new sec_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004218 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4219 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304220 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4221 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004222 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4223 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304224 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4225 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004226 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4227 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304228 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4229 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004230 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4231 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304232 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4233 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004234 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4235 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304236 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4237 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004238 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4239 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304240 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4241 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004242 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4243 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304244 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4245 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004246 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4247 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304248 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4249 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004250 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4251 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304252 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4253 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004254 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4255 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304256 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4257 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004258 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4259 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304260 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4261 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004262 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4263 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304264 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4265 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004266 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4267 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304268 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4269 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004270 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4271 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304272 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4273 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004274 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4275 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304276 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4277 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004278 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4279 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304280 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4281 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004282 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4283 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304284 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4285 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004286 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4287 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304288 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4289 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004290 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4291 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304292 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4293 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304294 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4295 MSM_BACKEND_DAI_SEC_I2S_RX,
4296 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4297 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004298 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4299 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304300 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4301 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004302 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4303 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304304 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4305 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304306};
4307
Ralf Herzc8701f72018-06-20 11:37:35 +02004308static const struct snd_kcontrol_new pri_spdif_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004309 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004310 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304311 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4312 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004313 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004314 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304315 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4316 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004317 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004318 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304319 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4320 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004321 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004322 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304323 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4324 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004325 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004326 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304327 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4328 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004329 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004330 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304331 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4332 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004333 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004334 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304335 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4336 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004337 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004338 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304339 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4340 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004341 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004342 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304343 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4344 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004345 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004346 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304347 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4348 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004349 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004350 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304351 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4352 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004353 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004354 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304355 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4356 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004357 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004358 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304359 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4360 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004361 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004362 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304363 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4364 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004365 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004366 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304367 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4368 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004369 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004370 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304371 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4372 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004373 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004374 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304375 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4376 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004377 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004378 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304379 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4380 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004381 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004382 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304383 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4384 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304385 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4386 MSM_BACKEND_DAI_PRI_SPDIF_RX,
4387 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4388 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004389 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004390 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304391 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4392 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004393 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004394 MSM_BACKEND_DAI_PRI_SPDIF_RX,
4395 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4396 msm_routing_put_audio_mixer),
4397};
4398
4399static const struct snd_kcontrol_new sec_spdif_rx_mixer_controls[] = {
4400 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4401 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4402 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4403 msm_routing_put_audio_mixer),
4404 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4405 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4406 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4407 msm_routing_put_audio_mixer),
4408 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4409 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4410 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4411 msm_routing_put_audio_mixer),
4412 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4413 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4414 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4415 msm_routing_put_audio_mixer),
4416 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4417 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4418 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4419 msm_routing_put_audio_mixer),
4420 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4421 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4422 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4423 msm_routing_put_audio_mixer),
4424 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4425 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4426 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4427 msm_routing_put_audio_mixer),
4428 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4429 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4430 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4431 msm_routing_put_audio_mixer),
4432 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4433 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4434 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4435 msm_routing_put_audio_mixer),
4436 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4437 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4438 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4439 msm_routing_put_audio_mixer),
4440 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4441 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4442 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4443 msm_routing_put_audio_mixer),
4444 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4445 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4446 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4447 msm_routing_put_audio_mixer),
4448 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4449 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4450 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4451 msm_routing_put_audio_mixer),
4452 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4453 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4454 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4455 msm_routing_put_audio_mixer),
4456 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4457 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4458 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4459 msm_routing_put_audio_mixer),
4460 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4461 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4462 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4463 msm_routing_put_audio_mixer),
4464 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4465 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4466 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4467 msm_routing_put_audio_mixer),
4468 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4469 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4470 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4471 msm_routing_put_audio_mixer),
4472 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4473 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4474 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4475 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304476 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4477 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4478 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4479 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02004480 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4481 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4482 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4483 msm_routing_put_audio_mixer),
4484 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4485 MSM_BACKEND_DAI_SEC_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304486 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4487 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304488};
4489
4490static const struct snd_kcontrol_new slimbus_2_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004491 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4492 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304493 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4494 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004495 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4496 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304497 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4498 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004499 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4500 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304501 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4502 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004503 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4504 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304505 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4506 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004507 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4508 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304509 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4510 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004511 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4512 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304513 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4514 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004515 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4516 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304517 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4518 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004519 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4520 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304521 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4522 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004523 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4524 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304525 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4526 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004527 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4528 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304529 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4530 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004531 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4532 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304533 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4534 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004535 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4536 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304537 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4538 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004539 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4540 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304541 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4542 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004543 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4544 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304545 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4546 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004547 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4548 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304549 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4550 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004551 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4552 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304553 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4554 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304555 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4556 MSM_BACKEND_DAI_SLIMBUS_2_RX,
4557 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4558 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304559};
4560
4561static const struct snd_kcontrol_new slimbus_5_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004562 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4563 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304564 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4565 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004566 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4567 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304568 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4569 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004570 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4571 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304572 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4573 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004574 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4575 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304576 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4577 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004578 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4579 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304580 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4581 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004582 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4583 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304584 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4585 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004586 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4587 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304588 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4589 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004590 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4591 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304592 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4593 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004594 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4595 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304596 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4597 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004598 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4599 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304600 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4601 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004602 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4603 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304604 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4605 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004606 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4607 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304608 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4609 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004610 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4611 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304612 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4613 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004614 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4615 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304616 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4617 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004618 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4619 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304620 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4621 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004622 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4623 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304624 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4625 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004626 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4627 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304628 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4629 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004630 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4631 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304632 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4633 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004634 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4635 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304636 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4637 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304638 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4639 MSM_BACKEND_DAI_SLIMBUS_5_RX,
4640 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4641 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004642 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4643 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304644 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4645 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004646 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4647 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304648 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4649 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304650};
4651
4652static const struct snd_kcontrol_new slimbus_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004653 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4654 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304655 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4656 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004657 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4658 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304659 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4660 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004661 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4662 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304663 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4664 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004665 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4666 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304667 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4668 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004669 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4670 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304671 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4672 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004673 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4674 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304675 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4676 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004677 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4678 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304679 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4680 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004681 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4682 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304683 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4684 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004685 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4686 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304687 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4688 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004689 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4690 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304691 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4692 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004693 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4694 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304695 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4696 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004697 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4698 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304699 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4700 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004701 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4702 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304703 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4704 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004705 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4706 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304707 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4708 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004709 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4710 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304711 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4712 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004713 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4714 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304715 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4716 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004717 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4718 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304719 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4720 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004721 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4722 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304723 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4724 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004725 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4726 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304727 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4728 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304729 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4730 MSM_BACKEND_DAI_SLIMBUS_0_RX,
4731 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4732 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004733 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4734 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304735 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4736 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004737 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4738 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304739 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4740 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304741};
4742
4743static const struct snd_kcontrol_new mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004744 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4745 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304746 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4747 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004748 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4749 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304750 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4751 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004752 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4753 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304754 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4755 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004756 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4757 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304758 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4759 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004760 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4761 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304762 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4763 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004764 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4765 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304766 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4767 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004768 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4769 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304770 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4771 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004772 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4773 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304774 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4775 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004776 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4777 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304778 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4779 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004780 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4781 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304782 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4783 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004784 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4785 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304786 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4787 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004788 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4789 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304790 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4791 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004792 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4793 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304794 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4795 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004796 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4797 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304798 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4799 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004800 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4801 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304802 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4803 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004804 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4805 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304806 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4807 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004808 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4809 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304810 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4811 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004812 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4813 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304814 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4815 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004816 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4817 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304818 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4819 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304820 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4821 MSM_BACKEND_DAI_MI2S_RX,
4822 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4823 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004824 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4825 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304826 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4827 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004828 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4829 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304830 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4831 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304832};
4833
4834static const struct snd_kcontrol_new quaternary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004835 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4836 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304837 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4838 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004839 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4840 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304841 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4842 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004843 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4844 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304845 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4846 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004847 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4848 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304849 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4850 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004851 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4852 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304853 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4854 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004855 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4856 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304857 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4858 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004859 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4860 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304861 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4862 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004863 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4864 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304865 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4866 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004867 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4868 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304869 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4870 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004871 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4872 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304873 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4874 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004875 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4876 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304877 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4878 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004879 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4880 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304881 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4882 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004883 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4884 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304885 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4886 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004887 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4888 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304889 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4890 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004891 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4892 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304893 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4894 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004895 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4896 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304897 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4898 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004899 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4900 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304901 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4902 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004903 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4904 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304905 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4906 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004907 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4908 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304909 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4910 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304911 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4912 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
4913 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4914 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004915 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4916 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304917 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4918 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004919 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4920 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304921 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4922 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304923};
4924
4925static const struct snd_kcontrol_new quinary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004926 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4927 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304928 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4929 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004930 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4931 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304932 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4933 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004934 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4935 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304936 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4937 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004938 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4939 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304940 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4941 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004942 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4943 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304944 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4945 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004946 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4947 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304948 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4949 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004950 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4951 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304952 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4953 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004954 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4955 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304956 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4957 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004958 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4959 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304960 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4961 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004962 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4963 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304964 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4965 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004966 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4967 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304968 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4969 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004970 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4971 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304972 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4973 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004974 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4975 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304976 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4977 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004978 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4979 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304980 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4981 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004982 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4983 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304984 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4985 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004986 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4987 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304988 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4989 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004990 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4991 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304992 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4993 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004994 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4995 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304996 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4997 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004998 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4999 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305000 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5001 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305002 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5003 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
5004 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5005 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005006 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5007 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305008 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5009 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005010 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5011 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305012 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5013 msm_routing_put_audio_mixer),
5014
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305015};
5016
5017static const struct snd_kcontrol_new tertiary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005018 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5019 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305020 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5021 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005022 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5023 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305024 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5025 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005026 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5027 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305028 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5029 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005030 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5031 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305032 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5033 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005034 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5035 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305036 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5037 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005038 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5039 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305040 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5041 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005042 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5043 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305044 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5045 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005046 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5047 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305048 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5049 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005050 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5051 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305052 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5053 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005054 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5055 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305056 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5057 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005058 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5059 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305060 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5061 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005062 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5063 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305064 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5065 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005066 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5067 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305068 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5069 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005070 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5071 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305072 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5073 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005074 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5075 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305076 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5077 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005078 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5079 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305080 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5081 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005082 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5083 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305084 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5085 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305086 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5087 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
5088 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5089 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005090 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5091 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305092 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5093 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005094 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5095 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305096 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5097 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305098};
5099
5100static const struct snd_kcontrol_new secondary_mi2s_rx2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005101 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5102 MSM_BACKEND_DAI_SECONDARY_MI2S_RX_SD1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305103 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5104 msm_routing_put_audio_mixer),
5105};
5106
5107static const struct snd_kcontrol_new secondary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005108 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5109 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305110 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5111 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005112 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5113 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305114 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5115 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005116 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5117 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305118 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5119 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005120 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5121 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305122 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5123 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005124 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5125 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305126 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5127 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005128 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5129 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305130 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5131 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005132 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5133 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305134 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5135 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005136 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5137 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305138 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5139 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005140 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5141 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305142 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5143 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005144 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5145 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305146 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5147 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005148 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5149 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305150 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5151 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005152 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5153 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305154 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5155 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005156 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5157 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305158 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5159 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005160 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5161 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305162 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5163 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005164 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5165 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305166 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5167 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005168 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5169 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305170 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5171 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005172 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5173 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305174 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5175 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005176 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5177 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305178 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5179 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005180 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5181 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305182 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5183 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305184 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5185 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
5186 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5187 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005188 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5189 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305190 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5191 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005192 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5193 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305194 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5195 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305196};
5197
5198static const struct snd_kcontrol_new primary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005199 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5200 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305201 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5202 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005203 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5204 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305205 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5206 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005207 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5208 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305209 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5210 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005211 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5212 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305213 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5214 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005215 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5216 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305217 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5218 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005219 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5220 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305221 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5222 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005223 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5224 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305225 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5226 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005227 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5228 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305229 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5230 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005231 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5232 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305233 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5234 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005235 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5236 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305237 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5238 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005239 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5240 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305241 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5242 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005243 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5244 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305245 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5246 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005247 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5248 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305249 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5250 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005251 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5252 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305253 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5254 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005255 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5256 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305257 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5258 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005259 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5260 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305261 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5262 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005263 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5264 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305265 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5266 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005267 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5268 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305269 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5270 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005271 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5272 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305273 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5274 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305275 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5276 MSM_BACKEND_DAI_PRI_MI2S_RX,
5277 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5278 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005279 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5280 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305281 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5282 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005283 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5284 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305285 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5286 msm_routing_put_audio_mixer),
5287
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305288};
5289
5290static const struct snd_kcontrol_new int0_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005291 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5292 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305293 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5294 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005295 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5296 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305297 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5298 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005299 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5300 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305301 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5302 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005303 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5304 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305305 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5306 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005307 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5308 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305309 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5310 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005311 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5312 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305313 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5314 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005315 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5316 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305317 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5318 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005319 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5320 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305321 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5322 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005323 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5324 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305325 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5326 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005327 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5328 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305329 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5330 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005331 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5332 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305333 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5334 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005335 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5336 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305337 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5338 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005339 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5340 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305341 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5342 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005343 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5344 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305345 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5346 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005347 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5348 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305349 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5350 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005351 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5352 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305353 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5354 msm_routing_put_audio_mixer),
5355};
5356
5357static const struct snd_kcontrol_new int4_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005358 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5359 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305360 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5361 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005362 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5363 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305364 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5365 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005366 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5367 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305368 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5369 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005370 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5371 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305372 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5373 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005374 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5375 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305376 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5377 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005378 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5379 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305380 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5381 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005382 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5383 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305384 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5385 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005386 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5387 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305388 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5389 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005390 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5391 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305392 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5393 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005394 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5395 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305396 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5397 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005398 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5399 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305400 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5401 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005402 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5403 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305404 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5405 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005406 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5407 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305408 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5409 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005410 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5411 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305412 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5413 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005414 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5415 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305416 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5417 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005418 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5419 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305420 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5421 msm_routing_put_audio_mixer),
5422};
5423
5424static const struct snd_kcontrol_new hdmi_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005425 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5426 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305427 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5428 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005429 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5430 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305431 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5432 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005433 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5434 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305435 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5436 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005437 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5438 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305439 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5440 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005441 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5442 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305443 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5444 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005445 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5446 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305447 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5448 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005449 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5450 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305451 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5452 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005453 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5454 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305455 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5456 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005457 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5458 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305459 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5460 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005461 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5462 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305463 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5464 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005465 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5466 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305467 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5468 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005469 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5470 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305471 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5472 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005473 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5474 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305475 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5476 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005477 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5478 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305479 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5480 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005481 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5482 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305483 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5484 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005485 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5486 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305487 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5488 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005489 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5490 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305491 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5492 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005493 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5494 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305495 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5496 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005497 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5498 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305499 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5500 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305501 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5502 MSM_BACKEND_DAI_HDMI_RX,
5503 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5504 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005505 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5506 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305507 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5508 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005509 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5510 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305511 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5512 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305513};
5514
5515static const struct snd_kcontrol_new display_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005516 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5517 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305518 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5519 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005520 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5521 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305522 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5523 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005524 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5525 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305526 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5527 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005528 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5529 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305530 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5531 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005532 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5533 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305534 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5535 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005536 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5537 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305538 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5539 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005540 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5541 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305542 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5543 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005544 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5545 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305546 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5547 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005548 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5549 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305550 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5551 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005552 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5553 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305554 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5555 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005556 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5557 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305558 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5559 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005560 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5561 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305562 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5563 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005564 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5565 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305566 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5567 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005568 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5569 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305570 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5571 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005572 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5573 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305574 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5575 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005576 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5577 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305578 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5579 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305580 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5581 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
5582 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5583 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305584};
5585
Karthikeyan Mani57550082018-05-03 18:43:58 -07005586static const struct snd_kcontrol_new display_port1_mixer_controls[] = {
5587 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5588 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5589 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5590 msm_routing_put_audio_mixer),
5591 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5592 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5593 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5594 msm_routing_put_audio_mixer),
5595 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5596 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5597 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5598 msm_routing_put_audio_mixer),
5599 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5600 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5601 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5602 msm_routing_put_audio_mixer),
5603 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5604 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5605 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5606 msm_routing_put_audio_mixer),
5607 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5608 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5609 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5610 msm_routing_put_audio_mixer),
5611 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5612 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5613 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5614 msm_routing_put_audio_mixer),
5615 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5616 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5617 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5618 msm_routing_put_audio_mixer),
5619 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5620 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5621 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5622 msm_routing_put_audio_mixer),
5623 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5624 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5625 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5626 msm_routing_put_audio_mixer),
5627 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5628 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5629 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5630 msm_routing_put_audio_mixer),
5631 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5632 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5633 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5634 msm_routing_put_audio_mixer),
5635 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5636 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5637 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5638 msm_routing_put_audio_mixer),
5639 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5640 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5641 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5642 msm_routing_put_audio_mixer),
5643 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5644 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5645 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5646 msm_routing_put_audio_mixer),
5647 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5648 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5649 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5650 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305651 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5652 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5653 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5654 msm_routing_put_audio_mixer),
Karthikeyan Mani57550082018-05-03 18:43:58 -07005655};
5656
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305657 /* incall music delivery mixer */
5658static const struct snd_kcontrol_new incall_music_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005659 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5660 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305661 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5662 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005663 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5664 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305665 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5666 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005667 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5668 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305669 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5670 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005671 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5672 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305673 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5674 msm_routing_put_audio_mixer),
5675};
5676
5677static const struct snd_kcontrol_new incall_music2_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005678 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5679 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305680 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5681 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005682 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5683 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305684 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5685 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005686 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5687 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305688 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5689 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005690 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5691 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305692 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5693 msm_routing_put_audio_mixer),
5694};
5695
5696static const struct snd_kcontrol_new slimbus_4_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005697 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5698 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305699 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5700 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005701 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5702 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305703 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5704 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005705 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5706 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305707 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5708 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005709 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5710 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305711 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5712 msm_routing_put_audio_mixer),
5713};
5714
5715static const struct snd_kcontrol_new slimbus_6_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005716 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5717 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305718 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5719 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005720 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5721 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305722 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5723 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005724 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5725 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305726 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5727 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005728 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5729 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305730 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5731 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005732 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5733 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305734 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5735 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005736 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5737 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305738 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5739 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005740 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5741 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305742 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5743 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005744 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5745 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305746 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5747 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005748 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5749 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305750 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5751 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005752 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5753 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305754 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5755 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005756 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5757 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305758 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5759 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005760 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5761 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305762 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5763 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005764 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5765 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305766 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5767 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005768 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5769 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305770 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5771 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005772 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5773 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305774 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5775 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005776 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5777 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305778 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5779 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305780 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5781 MSM_BACKEND_DAI_SLIMBUS_6_RX,
5782 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5783 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305784};
5785
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305786static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_mixer_controls[] = {
5787 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5788 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5789 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5790 msm_routing_put_audio_mixer),
5791 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5792 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5793 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5794 msm_routing_put_audio_mixer),
5795 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5796 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5797 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5798 msm_routing_put_audio_mixer),
5799 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5800 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5801 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5802 msm_routing_put_audio_mixer),
5803 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5804 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5805 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5806 msm_routing_put_audio_mixer),
5807 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5808 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5809 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5810 msm_routing_put_audio_mixer),
5811 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5812 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5813 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5814 msm_routing_put_audio_mixer),
5815 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5816 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5817 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5818 msm_routing_put_audio_mixer),
5819 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5820 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5821 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5822 msm_routing_put_audio_mixer),
5823 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5824 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5825 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5826 msm_routing_put_audio_mixer),
5827 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5828 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5829 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5830 msm_routing_put_audio_mixer),
5831 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5832 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5833 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5834 msm_routing_put_audio_mixer),
5835 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5836 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5837 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5838 msm_routing_put_audio_mixer),
5839 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5840 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5841 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5842 msm_routing_put_audio_mixer),
5843 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5844 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5845 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5846 msm_routing_put_audio_mixer),
5847 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5848 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5849 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5850 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305851 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5852 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5853 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5854 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305855};
5856
5857static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_mixer_controls[] = {
5858 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5859 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5860 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5861 msm_routing_put_audio_mixer),
5862 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5863 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5864 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5865 msm_routing_put_audio_mixer),
5866 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5867 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5868 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5869 msm_routing_put_audio_mixer),
5870 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5871 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5872 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5873 msm_routing_put_audio_mixer),
5874 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5875 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5876 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5877 msm_routing_put_audio_mixer),
5878 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5879 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5880 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5881 msm_routing_put_audio_mixer),
5882 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5883 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5884 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5885 msm_routing_put_audio_mixer),
5886 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5887 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5888 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5889 msm_routing_put_audio_mixer),
5890 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5891 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5892 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5893 msm_routing_put_audio_mixer),
5894 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5895 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5896 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5897 msm_routing_put_audio_mixer),
5898 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5899 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5900 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5901 msm_routing_put_audio_mixer),
5902 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5903 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5904 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5905 msm_routing_put_audio_mixer),
5906 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5907 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5908 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5909 msm_routing_put_audio_mixer),
5910 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5911 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5912 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5913 msm_routing_put_audio_mixer),
5914 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5915 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5916 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5917 msm_routing_put_audio_mixer),
5918 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5919 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5920 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5921 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305922 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5923 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5924 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5925 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305926};
5927
Aditya Bavanari1e84a932018-06-18 19:40:08 +05305928static const struct snd_kcontrol_new rx_cdc_dma_rx_0_mixer_controls[] = {
5929 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5930 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5931 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5932 msm_routing_put_audio_mixer),
5933 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5934 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5935 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5936 msm_routing_put_audio_mixer),
5937 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5938 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5939 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5940 msm_routing_put_audio_mixer),
5941 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5942 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5943 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5944 msm_routing_put_audio_mixer),
5945 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5946 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5947 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5948 msm_routing_put_audio_mixer),
5949 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5950 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5951 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5952 msm_routing_put_audio_mixer),
5953 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5954 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5955 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5956 msm_routing_put_audio_mixer),
5957 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5958 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5959 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5960 msm_routing_put_audio_mixer),
5961 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5962 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5963 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5964 msm_routing_put_audio_mixer),
5965 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5966 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5967 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5968 msm_routing_put_audio_mixer),
5969 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5970 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5971 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5972 msm_routing_put_audio_mixer),
5973 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5974 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5975 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5976 msm_routing_put_audio_mixer),
5977 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5978 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5979 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5980 msm_routing_put_audio_mixer),
5981 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5982 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5983 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5984 msm_routing_put_audio_mixer),
5985 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5986 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5987 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5988 msm_routing_put_audio_mixer),
5989 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5990 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5991 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5992 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305993 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5994 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5995 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5996 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05305997};
5998
5999static const struct snd_kcontrol_new rx_cdc_dma_rx_1_mixer_controls[] = {
6000 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6001 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6002 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6003 msm_routing_put_audio_mixer),
6004 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6005 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6006 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6007 msm_routing_put_audio_mixer),
6008 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6009 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6010 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6011 msm_routing_put_audio_mixer),
6012 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6013 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6014 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6015 msm_routing_put_audio_mixer),
6016 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6017 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6018 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6019 msm_routing_put_audio_mixer),
6020 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6021 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6022 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6023 msm_routing_put_audio_mixer),
6024 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6025 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6026 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6027 msm_routing_put_audio_mixer),
6028 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6029 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6030 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6031 msm_routing_put_audio_mixer),
6032 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6033 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6034 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6035 msm_routing_put_audio_mixer),
6036 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6037 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6038 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6039 msm_routing_put_audio_mixer),
6040 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6041 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6042 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6043 msm_routing_put_audio_mixer),
6044 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6045 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6046 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6047 msm_routing_put_audio_mixer),
6048 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6049 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6050 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6051 msm_routing_put_audio_mixer),
6052 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6053 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6054 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6055 msm_routing_put_audio_mixer),
6056 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6057 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6058 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6059 msm_routing_put_audio_mixer),
6060 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6061 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6062 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6063 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306064 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6065 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6066 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6067 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306068};
6069
6070static const struct snd_kcontrol_new rx_cdc_dma_rx_2_mixer_controls[] = {
6071 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6072 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6073 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6074 msm_routing_put_audio_mixer),
6075 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6076 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6077 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6078 msm_routing_put_audio_mixer),
6079 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6080 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6081 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6082 msm_routing_put_audio_mixer),
6083 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6084 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6085 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6086 msm_routing_put_audio_mixer),
6087 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6088 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6089 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6090 msm_routing_put_audio_mixer),
6091 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6092 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6093 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6094 msm_routing_put_audio_mixer),
6095 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6096 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6097 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6098 msm_routing_put_audio_mixer),
6099 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6100 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6101 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6102 msm_routing_put_audio_mixer),
6103 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6104 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6105 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6106 msm_routing_put_audio_mixer),
6107 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6108 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6109 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6110 msm_routing_put_audio_mixer),
6111 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6112 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6113 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6114 msm_routing_put_audio_mixer),
6115 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6116 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6117 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6118 msm_routing_put_audio_mixer),
6119 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6120 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6121 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6122 msm_routing_put_audio_mixer),
6123 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6124 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6125 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6126 msm_routing_put_audio_mixer),
6127 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6128 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6129 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6130 msm_routing_put_audio_mixer),
6131 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6132 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6133 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6134 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306135 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6136 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6137 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6138 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306139};
6140
6141static const struct snd_kcontrol_new rx_cdc_dma_rx_3_mixer_controls[] = {
6142 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6143 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6144 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6145 msm_routing_put_audio_mixer),
6146 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6147 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6148 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6149 msm_routing_put_audio_mixer),
6150 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6151 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6152 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6153 msm_routing_put_audio_mixer),
6154 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6155 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6156 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6157 msm_routing_put_audio_mixer),
6158 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6159 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6160 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6161 msm_routing_put_audio_mixer),
6162 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6163 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6164 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6165 msm_routing_put_audio_mixer),
6166 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6167 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6168 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6169 msm_routing_put_audio_mixer),
6170 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6171 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6172 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6173 msm_routing_put_audio_mixer),
6174 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6175 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6176 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6177 msm_routing_put_audio_mixer),
6178 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6179 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6180 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6181 msm_routing_put_audio_mixer),
6182 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6183 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6184 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6185 msm_routing_put_audio_mixer),
6186 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6187 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6188 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6189 msm_routing_put_audio_mixer),
6190 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6191 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6192 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6193 msm_routing_put_audio_mixer),
6194 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6195 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6196 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6197 msm_routing_put_audio_mixer),
6198 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6199 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6200 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6201 msm_routing_put_audio_mixer),
6202 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6203 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6204 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6205 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306206 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6207 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6208 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6209 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306210};
6211
6212static const struct snd_kcontrol_new rx_cdc_dma_rx_4_mixer_controls[] = {
6213 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6214 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6215 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6216 msm_routing_put_audio_mixer),
6217 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6218 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6219 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6220 msm_routing_put_audio_mixer),
6221 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6222 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6223 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6224 msm_routing_put_audio_mixer),
6225 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6226 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6227 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6228 msm_routing_put_audio_mixer),
6229 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6230 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6231 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6232 msm_routing_put_audio_mixer),
6233 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6234 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6235 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6236 msm_routing_put_audio_mixer),
6237 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6238 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6239 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6240 msm_routing_put_audio_mixer),
6241 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6242 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6243 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6244 msm_routing_put_audio_mixer),
6245 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6246 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6247 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6248 msm_routing_put_audio_mixer),
6249 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6250 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6251 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6252 msm_routing_put_audio_mixer),
6253 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6254 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6255 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6256 msm_routing_put_audio_mixer),
6257 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6258 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6259 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6260 msm_routing_put_audio_mixer),
6261 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6262 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6263 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6264 msm_routing_put_audio_mixer),
6265 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6266 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6267 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6268 msm_routing_put_audio_mixer),
6269 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6270 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6271 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6272 msm_routing_put_audio_mixer),
6273 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6274 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6275 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6276 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306277 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6278 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6279 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6280 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306281};
6282
6283static const struct snd_kcontrol_new rx_cdc_dma_rx_5_mixer_controls[] = {
6284 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6285 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6286 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6287 msm_routing_put_audio_mixer),
6288 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6289 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6290 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6291 msm_routing_put_audio_mixer),
6292 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6293 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6294 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6295 msm_routing_put_audio_mixer),
6296 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6297 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6298 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6299 msm_routing_put_audio_mixer),
6300 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6301 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6302 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6303 msm_routing_put_audio_mixer),
6304 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6305 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6306 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6307 msm_routing_put_audio_mixer),
6308 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6309 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6310 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6311 msm_routing_put_audio_mixer),
6312 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6313 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6314 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6315 msm_routing_put_audio_mixer),
6316 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6317 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6318 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6319 msm_routing_put_audio_mixer),
6320 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6321 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6322 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6323 msm_routing_put_audio_mixer),
6324 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6325 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6326 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6327 msm_routing_put_audio_mixer),
6328 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6329 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6330 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6331 msm_routing_put_audio_mixer),
6332 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6333 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6334 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6335 msm_routing_put_audio_mixer),
6336 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6337 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6338 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6339 msm_routing_put_audio_mixer),
6340 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6341 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6342 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6343 msm_routing_put_audio_mixer),
6344 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6345 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6346 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6347 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306348 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6349 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6350 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6351 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306352};
6353
6354static const struct snd_kcontrol_new rx_cdc_dma_rx_6_mixer_controls[] = {
6355 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6356 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6357 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6358 msm_routing_put_audio_mixer),
6359 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6360 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6361 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6362 msm_routing_put_audio_mixer),
6363 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6364 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6365 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6366 msm_routing_put_audio_mixer),
6367 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6368 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6369 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6370 msm_routing_put_audio_mixer),
6371 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6372 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6373 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6374 msm_routing_put_audio_mixer),
6375 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6376 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6377 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6378 msm_routing_put_audio_mixer),
6379 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6380 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6381 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6382 msm_routing_put_audio_mixer),
6383 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6384 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6385 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6386 msm_routing_put_audio_mixer),
6387 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6388 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6389 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6390 msm_routing_put_audio_mixer),
6391 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6392 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6393 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6394 msm_routing_put_audio_mixer),
6395 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6396 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6397 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6398 msm_routing_put_audio_mixer),
6399 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6400 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6401 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6402 msm_routing_put_audio_mixer),
6403 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6404 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6405 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6406 msm_routing_put_audio_mixer),
6407 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6408 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6409 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6410 msm_routing_put_audio_mixer),
6411 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6412 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6413 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6414 msm_routing_put_audio_mixer),
6415 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6416 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6417 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6418 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306419 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6420 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6421 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6422 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306423};
6424
6425static const struct snd_kcontrol_new rx_cdc_dma_rx_7_mixer_controls[] = {
6426 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6427 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6428 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6429 msm_routing_put_audio_mixer),
6430 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6431 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6432 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6433 msm_routing_put_audio_mixer),
6434 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6435 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6436 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6437 msm_routing_put_audio_mixer),
6438 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6439 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6440 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6441 msm_routing_put_audio_mixer),
6442 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6443 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6444 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6445 msm_routing_put_audio_mixer),
6446 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6447 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6448 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6449 msm_routing_put_audio_mixer),
6450 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6451 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6452 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6453 msm_routing_put_audio_mixer),
6454 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6455 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6456 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6457 msm_routing_put_audio_mixer),
6458 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6459 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6460 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6461 msm_routing_put_audio_mixer),
6462 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6463 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6464 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6465 msm_routing_put_audio_mixer),
6466 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6467 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6468 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6469 msm_routing_put_audio_mixer),
6470 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6471 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6472 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6473 msm_routing_put_audio_mixer),
6474 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6475 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6476 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6477 msm_routing_put_audio_mixer),
6478 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6479 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6480 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6481 msm_routing_put_audio_mixer),
6482 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6483 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6484 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6485 msm_routing_put_audio_mixer),
6486 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6487 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6488 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6489 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306490 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6491 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6492 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6493 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306494};
6495
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306496static const struct snd_kcontrol_new slimbus_7_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006497 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6498 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306499 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6500 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006501 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6502 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306503 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6504 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006505 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6506 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306507 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6508 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006509 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6510 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306511 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6512 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006513 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6514 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306515 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6516 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006517 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6518 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306519 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6520 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006521 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6522 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306523 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6524 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006525 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6526 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306527 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6528 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006529 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6530 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306531 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006533 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6534 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306535 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006537 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6538 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306539 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006541 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6542 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306543 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006545 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6546 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306547 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006549 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6550 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306551 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006553 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6554 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306555 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6556 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006557 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6558 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306559 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6560 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306561 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6562 MSM_BACKEND_DAI_SLIMBUS_7_RX,
6563 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6564 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306565};
6566
Surendar Karka3ef3d812018-09-28 18:52:35 +05306567static const struct snd_kcontrol_new slimbus_9_rx_mixer_controls[] = {
6568 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6569 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6570 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6571 msm_routing_put_audio_mixer),
6572 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6573 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6574 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6575 msm_routing_put_audio_mixer),
6576 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6577 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6578 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6579 msm_routing_put_audio_mixer),
6580 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6581 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6582 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6583 msm_routing_put_audio_mixer),
6584 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6585 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6586 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6587 msm_routing_put_audio_mixer),
6588 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6589 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6590 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6591 msm_routing_put_audio_mixer),
6592 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6593 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6594 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6595 msm_routing_put_audio_mixer),
6596 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6597 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6598 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6599 msm_routing_put_audio_mixer),
6600 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6601 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6602 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6603 msm_routing_put_audio_mixer),
6604 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6605 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6606 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6607 msm_routing_put_audio_mixer),
6608 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6609 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6610 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6611 msm_routing_put_audio_mixer),
6612 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6613 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6614 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6615 msm_routing_put_audio_mixer),
6616 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6617 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6618 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6619 msm_routing_put_audio_mixer),
6620 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6621 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6622 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6623 msm_routing_put_audio_mixer),
6624 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6625 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6626 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6627 msm_routing_put_audio_mixer),
6628 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6629 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6630 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6631 msm_routing_put_audio_mixer),
6632 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6633 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6634 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6635 msm_routing_put_audio_mixer),
6636};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306637static const struct snd_kcontrol_new usb_audio_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006638 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6639 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306640 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6641 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006642 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6643 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306644 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6645 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006646 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6647 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306648 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6649 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006650 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6651 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306652 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6653 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006654 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6655 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306656 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6657 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006658 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6659 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306660 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6661 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006662 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6663 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306664 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6665 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006666 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6667 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306668 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6669 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006670 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6671 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306672 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6673 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006674 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6675 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306676 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6677 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006678 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6679 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306680 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6681 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006682 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6683 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306684 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6685 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006686 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6687 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306688 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6689 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006690 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6691 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306692 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6693 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006694 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6695 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306696 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6697 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006698 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6699 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306700 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6701 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306702 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6703 MSM_BACKEND_DAI_USB_RX,
6704 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6705 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306706};
6707
6708static const struct snd_kcontrol_new int_bt_sco_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006709 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6710 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306711 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6712 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006713 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6714 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306715 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6716 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006717 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6718 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306719 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6720 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006721 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6722 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306723 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6724 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006725 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6726 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306727 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6728 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006729 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6730 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306731 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6732 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006733 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6734 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306735 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6736 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006737 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6738 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306739 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6740 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006741 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6742 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306743 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6744 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006745 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6746 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306747 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6748 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006749 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6750 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306751 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6752 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006753 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6754 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306755 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6756 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006757 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6758 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306759 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6760 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006761 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6762 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306763 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6764 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006765 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6766 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306767 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6768 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006769 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6770 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306771 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6772 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006773 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6774 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306775 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6776 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006777 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6778 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306779 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6780 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006781 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6782 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306783 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6784 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306785 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6786 MSM_BACKEND_DAI_INT_BT_SCO_RX,
6787 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6788 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006789 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6790 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306791 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6792 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006793 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6794 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306795 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6796 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306797};
6798
6799static const struct snd_kcontrol_new int_bt_a2dp_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006800 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6801 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306802 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6803 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006804 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6805 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306806 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6807 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006808 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6809 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306810 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6811 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006812 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6813 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306814 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6815 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006816 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6817 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306818 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6819 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006820 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6821 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306822 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6823 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006824 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6825 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306826 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6827 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006828 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6829 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306830 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6831 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006832 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6833 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306834 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6835 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006836 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6837 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306838 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6839 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006840 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6841 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306842 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6843 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006844 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6845 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306846 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6847 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006848 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6849 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306850 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6851 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006852 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6853 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306854 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6855 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006856 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6857 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306858 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6859 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006860 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6861 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306862 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6863 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306864 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6865 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
6866 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6867 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306868};
6869
6870static const struct snd_kcontrol_new int_fm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006871 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6872 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306873 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6874 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006875 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6876 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306877 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6878 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006879 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6880 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306881 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6882 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006883 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6884 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306885 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6886 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006887 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6888 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306889 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6890 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006891 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6892 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306893 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6894 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006895 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6896 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306897 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6898 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006899 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6900 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306901 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6902 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006903 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6904 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306905 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6906 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006907 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6908 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306909 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6910 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006911 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6912 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306913 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6914 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006915 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6916 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306917 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6918 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006919 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6920 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306921 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6922 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006923 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6924 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306925 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6926 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006927 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6928 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306929 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6930 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006931 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6932 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306933 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6934 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006935 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6936 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306937 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6938 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006939 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6940 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306941 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6942 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006943 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6944 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306945 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6946 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306947 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6948 MSM_BACKEND_DAI_INT_FM_RX,
6949 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6950 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006951 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6952 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306953 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6954 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006955 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6956 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306957 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6958 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306959};
6960
6961static const struct snd_kcontrol_new afe_pcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006962 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6963 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306964 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6965 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006966 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6967 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306968 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6969 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006970 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6971 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306972 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6973 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006974 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6975 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306976 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6977 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006978 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6979 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306980 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6981 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006982 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6983 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306984 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6985 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006986 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6987 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306988 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6989 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006990 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6991 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306992 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6993 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006994 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6995 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306996 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6997 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006998 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6999 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307000 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7001 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007002 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7003 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307004 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7005 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007006 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7007 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307008 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7009 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007010 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7011 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307012 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7013 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007014 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7015 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307016 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7017 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007018 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7019 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307020 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7021 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007022 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7023 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307024 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7025 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007026 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7027 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307028 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7029 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007030 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7031 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307032 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7033 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007034 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7035 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307036 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7037 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307038 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7039 MSM_BACKEND_DAI_AFE_PCM_RX,
7040 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7041 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007042 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7043 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307044 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7045 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007046 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7047 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307048 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7049 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307050};
7051
7052static const struct snd_kcontrol_new auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007053 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7054 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307055 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7056 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007057 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7058 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307059 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7060 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007061 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7062 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307063 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7064 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007065 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7066 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307067 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7068 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007069 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7070 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307071 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7072 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007073 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7074 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307075 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7076 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007077 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7078 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307079 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7080 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007081 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7082 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307083 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7084 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007085 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7086 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307087 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7088 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007089 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7090 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307091 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7092 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007093 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7094 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307095 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7096 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007097 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7098 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307099 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7100 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007101 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7102 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307103 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7104 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007105 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7106 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307107 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7108 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007109 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7110 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307111 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7112 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007113 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7114 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307115 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7116 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007117 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7118 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307119 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7120 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007121 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7122 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307123 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7124 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007125 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7126 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307127 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7128 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007129 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7130 MSM_BACKEND_DAI_AUXPCM_RX,
7131 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7132 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307133 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7134 MSM_BACKEND_DAI_AUXPCM_RX,
7135 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7136 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007137 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7138 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307139 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7140 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007141 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7142 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307143 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7144 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307145};
7146
7147static const struct snd_kcontrol_new sec_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007148 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7149 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307150 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7151 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007152 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7153 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307154 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7155 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007156 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7157 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307158 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7159 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007160 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7161 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307162 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7163 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007164 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7165 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307166 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7167 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007168 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7169 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307170 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7171 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007172 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7173 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307174 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7175 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007176 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7177 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307178 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7179 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007180 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7181 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307182 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7183 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007184 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7185 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307186 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7187 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007188 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7189 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307190 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7191 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007192 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7193 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307194 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7195 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007196 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7197 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307198 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7199 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007200 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7201 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307202 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7203 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007204 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7205 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307206 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7207 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007208 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7209 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307210 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7211 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007212 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7213 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307214 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7215 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007216 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7217 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307218 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7219 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007220 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7221 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307222 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7223 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007224 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7225 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
7226 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7227 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307228 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7229 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
7230 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7231 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007232 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7233 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307234 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7235 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007236 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7237 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307238 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7239 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307240};
7241
7242static const struct snd_kcontrol_new tert_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007243 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7244 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307245 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7246 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007247 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7248 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307249 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7250 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007251 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7252 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307253 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7254 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007255 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7256 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307257 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7258 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007259 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7260 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307261 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7262 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007263 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7264 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307265 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7266 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007267 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7268 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307269 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7270 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007271 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7272 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307273 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7274 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007275 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7276 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307277 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7278 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007279 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7280 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307281 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7282 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007283 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7284 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307285 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7286 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007287 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7288 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307289 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7290 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007291 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7292 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307293 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7294 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007295 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7296 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307297 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7298 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007299 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7300 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307301 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7302 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007303 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7304 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307305 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7306 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307307 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7308 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
7309 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7310 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307311};
7312
7313static const struct snd_kcontrol_new quat_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007314 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7315 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307316 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7317 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007318 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7319 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307320 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7321 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007322 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7323 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307324 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7325 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007326 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7327 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307328 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7329 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007330 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7331 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307332 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7333 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007334 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7335 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307336 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7337 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007338 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7339 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307340 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7341 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007342 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7343 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307344 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7345 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007346 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7347 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307348 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7349 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007350 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7351 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307352 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7353 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007354 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7355 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307356 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7357 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007358 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7359 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307360 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7361 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007362 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7363 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307364 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7365 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007366 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7367 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307368 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7369 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007370 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7371 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307372 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7373 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007374 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7375 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307376 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7377 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307378 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7379 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
7380 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7381 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307382};
7383
Rohit Kumara5077932017-09-10 22:05:05 +05307384static const struct snd_kcontrol_new quin_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007385 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7386 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307387 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7388 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007389 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7390 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307391 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7392 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007393 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7394 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307395 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7396 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007397 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7398 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307399 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7400 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007401 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7402 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307403 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7404 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007405 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7406 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307407 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7408 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007409 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7410 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307411 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7412 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007413 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7414 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307415 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7416 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007417 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7418 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307419 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7420 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007421 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7422 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307423 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7424 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007425 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7426 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307427 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7428 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007429 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7430 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307431 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7432 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007433 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7434 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307435 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7436 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007437 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7438 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307439 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7440 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007441 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7442 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307443 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7444 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007445 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7446 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307447 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7448 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307449 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7450 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
7451 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7452 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05307453};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307454static const struct snd_kcontrol_new pri_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007455 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7456 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307457 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7458 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007459 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7460 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307461 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7462 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007463 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7464 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307465 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7466 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007467 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7468 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307469 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7470 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007471 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7472 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307473 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7474 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007475 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7476 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307477 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7478 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007479 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7480 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307481 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7482 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007483 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7484 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307485 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7486 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007487 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7488 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307489 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7490 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007491 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7492 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307493 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7494 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007495 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7496 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307497 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7498 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007499 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7500 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307501 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7502 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007503 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7504 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307505 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7506 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007507 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7508 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307509 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7510 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007511 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7512 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307513 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7514 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007515 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7516 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307517 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7518 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007519 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7520 MSM_BACKEND_DAI_PRI_TDM_RX_0,
7521 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7522 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307523};
7524
7525static const struct snd_kcontrol_new pri_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007526 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7527 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307528 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7529 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007530 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7531 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307532 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7533 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007534 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7535 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307536 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7537 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007538 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7539 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307540 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7541 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007542 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7543 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307544 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7545 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007546 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7547 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307548 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7549 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007550 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7551 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307552 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7553 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007554 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7555 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307556 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7557 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007558 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7559 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307560 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7561 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007562 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7563 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307564 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7565 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007566 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7567 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307568 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7569 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007570 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7571 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307572 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7573 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007574 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7575 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307576 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7577 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007578 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7579 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307580 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7581 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007582 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7583 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307584 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7585 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007586 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7587 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307588 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7589 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007590 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7591 MSM_BACKEND_DAI_PRI_TDM_RX_1,
7592 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7593 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307594};
7595
7596static const struct snd_kcontrol_new pri_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007597 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7598 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307599 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7600 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007601 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7602 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307603 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7604 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007605 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7606 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307607 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7608 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007609 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7610 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307611 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7612 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007613 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7614 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307615 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7616 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007617 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7618 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307619 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7620 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007621 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7622 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307623 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7624 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007625 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7626 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307627 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7628 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007629 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7630 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307631 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7632 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007633 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7634 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307635 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7636 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007637 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7638 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307639 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7640 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007641 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7642 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307643 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7644 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007645 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7646 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307647 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7648 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007649 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7650 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307651 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7652 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007653 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7654 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307655 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7656 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007657 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7658 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307659 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7660 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007661 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7662 MSM_BACKEND_DAI_PRI_TDM_RX_2,
7663 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7664 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307665};
7666
7667static const struct snd_kcontrol_new pri_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007668 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7669 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307670 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7671 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007672 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7673 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307674 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7675 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007676 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7677 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307678 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7679 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007680 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7681 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307682 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7683 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007684 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7685 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307686 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7687 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007688 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7689 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307690 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7691 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007692 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7693 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307694 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7695 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007696 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7697 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307698 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7699 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007700 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7701 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307702 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7703 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007704 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7705 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307706 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7707 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007708 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7709 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307710 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7711 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007712 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7713 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307714 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7715 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007716 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7717 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307718 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7719 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007720 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7721 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307722 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7723 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007724 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7725 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307726 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7727 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007728 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7729 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307730 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7731 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007732 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7733 MSM_BACKEND_DAI_PRI_TDM_RX_3,
7734 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7735 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307736};
7737
7738static const struct snd_kcontrol_new pri_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007739 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7740 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307741 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7742 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007743 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7744 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307745 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7746 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007747 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7748 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307749 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7750 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007751 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7752 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307753 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7754 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007755 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7756 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307757 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7758 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007759 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7760 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307761 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7762 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007763 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7764 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307765 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7766 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007767 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7768 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307769 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7770 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007771 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7772 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307773 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7774 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007775 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7776 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307777 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7778 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007779 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7780 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307781 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7782 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007783 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7784 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307785 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7786 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007787 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7788 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307789 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7790 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007791 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7792 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307793 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7794 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007795 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7796 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307797 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7798 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007799 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7800 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307801 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7802 msm_routing_put_audio_mixer),
7803};
7804
7805static const struct snd_kcontrol_new sec_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007806 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7807 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307808 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7809 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007810 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7811 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307812 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7813 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007814 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7815 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307816 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7817 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007818 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7819 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307820 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7821 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007822 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7823 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307824 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7825 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007826 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7827 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307828 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7829 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007830 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7831 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307832 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7833 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007834 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7835 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307836 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7837 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007838 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7839 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307840 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7841 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007842 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7843 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307844 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7845 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007846 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7847 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307848 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7849 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007850 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7851 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307852 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7853 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007854 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7855 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307856 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7857 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007858 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7859 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307860 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7861 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007862 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7863 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307864 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7865 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007866 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7867 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307868 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7869 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007870 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7871 MSM_BACKEND_DAI_SEC_TDM_RX_0,
7872 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7873 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307874};
7875
7876static const struct snd_kcontrol_new sec_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007877 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7878 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307879 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7880 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007881 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7882 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307883 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7884 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007885 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7886 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307887 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7888 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007889 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7890 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307891 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7892 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007893 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7894 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307895 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7896 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007897 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7898 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307899 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7900 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007901 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7902 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307903 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7904 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007905 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7906 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307907 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7908 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007909 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7910 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307911 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7912 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007913 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7914 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307915 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7916 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007917 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7918 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307919 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7920 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007921 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7922 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307923 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7924 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007925 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7926 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307927 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7928 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007929 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7930 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307931 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7932 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007933 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7934 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307935 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7936 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007937 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7938 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307939 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7940 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007941 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7942 MSM_BACKEND_DAI_SEC_TDM_RX_1,
7943 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7944 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307945};
7946
7947static const struct snd_kcontrol_new sec_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007948 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7949 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307950 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7951 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007952 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7953 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307954 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7955 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007956 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7957 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307958 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7959 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007960 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7961 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307962 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7963 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007964 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7965 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307966 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7967 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007968 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7969 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307970 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7971 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007972 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7973 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307974 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7975 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007976 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7977 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307978 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7979 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007980 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7981 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307982 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7983 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007984 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7985 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307986 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7987 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007988 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7989 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307990 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7991 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007992 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7993 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307994 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7995 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007996 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7997 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307998 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7999 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008000 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8001 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308002 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8003 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008004 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8005 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308006 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8007 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008008 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8009 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308010 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8011 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008012 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8013 MSM_BACKEND_DAI_SEC_TDM_RX_2,
8014 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8015 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308016};
8017
8018static const struct snd_kcontrol_new sec_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008019 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8020 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308021 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8022 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008023 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8024 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308025 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8026 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008027 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8028 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308029 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8030 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008031 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8032 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308033 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8034 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008035 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8036 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308037 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8038 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008039 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8040 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308041 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8042 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008043 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8044 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308045 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8046 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008047 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8048 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308049 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8050 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008051 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8052 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308053 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8054 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008055 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8056 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308057 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8058 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008059 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8060 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308061 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8062 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008063 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8064 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308065 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8066 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008067 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8068 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308069 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8070 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008071 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8072 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308073 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8074 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008075 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8076 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308077 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8078 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008079 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8080 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308081 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8082 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008083 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8084 MSM_BACKEND_DAI_SEC_TDM_RX_3,
8085 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8086 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308087};
8088
8089static const struct snd_kcontrol_new sec_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008090 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8091 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308092 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8093 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008094 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8095 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308096 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8097 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008098 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8099 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308100 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8101 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008102 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8103 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308104 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8105 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008106 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8107 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308108 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8109 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008110 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8111 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308112 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8113 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008114 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8115 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308116 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8117 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008118 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8119 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308120 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8121 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008122 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8123 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308124 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8125 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008126 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8127 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308128 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8129 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008130 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8131 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308132 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8133 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008134 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8135 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308136 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8137 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008138 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8139 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308140 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8141 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008142 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8143 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308144 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8145 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008146 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8147 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308148 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8149 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008150 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8151 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308152 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8153 msm_routing_put_audio_mixer),
8154};
8155
8156static const struct snd_kcontrol_new tert_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008157 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8158 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308159 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008161 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8162 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308163 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8164 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008165 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8166 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308167 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008169 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8170 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308171 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8172 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008173 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8174 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308175 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8176 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008177 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8178 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308179 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8180 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008181 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8182 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308183 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8184 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008185 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8186 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308187 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8188 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008189 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8190 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308191 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8192 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008193 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8194 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308195 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8196 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008197 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8198 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308199 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8200 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008201 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8202 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308203 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8204 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008205 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8206 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308207 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8208 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008209 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8210 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308211 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8212 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008213 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8214 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308215 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8216 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008217 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8218 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308219 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8220 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008221 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8222 MSM_BACKEND_DAI_TERT_TDM_RX_0,
8223 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8224 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308225};
8226
8227static const struct snd_kcontrol_new tert_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008228 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8229 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308230 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8231 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008232 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8233 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308234 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8235 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008236 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8237 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308238 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8239 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008240 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8241 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308242 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8243 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008244 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8245 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308246 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8247 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008248 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8249 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308250 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8251 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008252 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8253 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308254 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8255 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008256 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8257 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308258 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8259 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008260 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8261 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308262 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8263 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008264 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8265 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308266 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8267 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008268 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8269 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308270 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8271 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008272 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8273 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308274 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8275 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008276 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8277 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308278 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8279 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008280 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8281 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308282 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8283 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008284 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8285 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308286 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8287 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008288 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8289 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308290 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8291 msm_routing_put_audio_mixer),
8292};
8293
8294static const struct snd_kcontrol_new tert_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008295 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8296 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308297 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8298 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008299 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8300 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308301 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8302 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008303 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8304 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308305 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8306 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008307 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8308 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308309 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8310 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008311 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8312 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308313 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8314 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008315 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8316 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308317 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8318 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008319 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8320 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308321 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8322 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008323 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8324 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308325 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8326 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008327 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8328 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308329 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8330 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008331 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8332 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308333 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8334 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008335 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8336 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308337 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8338 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008339 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8340 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308341 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8342 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008343 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8344 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308345 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8346 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008347 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8348 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308349 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8350 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008351 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8352 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308353 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8354 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008355 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8356 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308357 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8358 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008359 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8360 MSM_BACKEND_DAI_TERT_TDM_RX_1,
8361 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8362 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308363};
8364
8365static const struct snd_kcontrol_new tert_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008366 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8367 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308368 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8369 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008370 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8371 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308372 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8373 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008374 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8375 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308376 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8377 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008378 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8379 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308380 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8381 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008382 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8383 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308384 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8385 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008386 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8387 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308388 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8389 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008390 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8391 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308392 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8393 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008394 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8395 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308396 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8397 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008398 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8399 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308400 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8401 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008402 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8403 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308404 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8405 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008406 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8407 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308408 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8409 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008410 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8411 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308412 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8413 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008414 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8415 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308416 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8417 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008418 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8419 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308420 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8421 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008422 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8423 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308424 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8425 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008426 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8427 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308428 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8429 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008430 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8431 MSM_BACKEND_DAI_TERT_TDM_RX_2,
8432 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8433 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308434};
8435
8436static const struct snd_kcontrol_new tert_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008437 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8438 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308439 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8440 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008441 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8442 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308443 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8444 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008445 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8446 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308447 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8448 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008449 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8450 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308451 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8452 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008453 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8454 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308455 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8456 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008457 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8458 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308459 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8460 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008461 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8462 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308463 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8464 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008465 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8466 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308467 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8468 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008469 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8470 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308471 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8472 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008473 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8474 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308475 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8476 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008477 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8478 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308479 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8480 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008481 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8482 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308483 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8484 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008485 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8486 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308487 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8488 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008489 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8490 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308491 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8492 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008493 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8494 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308495 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8496 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008497 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8498 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308499 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8500 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008501 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8502 MSM_BACKEND_DAI_TERT_TDM_RX_3,
8503 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8504 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308505};
8506
8507static const struct snd_kcontrol_new tert_tdm_rx_4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008508 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8509 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308510 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8511 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008512 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8513 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308514 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8515 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008516 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8517 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308518 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8519 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008520 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8521 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308522 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8523 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008524 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8525 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308526 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8527 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008528 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8529 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308530 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8531 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008532 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8533 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308534 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8535 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008536 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8537 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308538 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8539 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008540 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8541 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308542 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8543 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008544 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8545 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308546 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8547 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008548 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8549 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308550 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8551 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008552 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8553 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308554 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8555 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008556 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8557 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308558 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8559 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008560 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8561 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308562 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8563 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008564 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8565 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308566 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8567 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008568 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8569 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308570 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8571 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008572 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8573 MSM_BACKEND_DAI_TERT_TDM_RX_4,
8574 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8575 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308576};
8577
8578static const struct snd_kcontrol_new quat_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008579 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8580 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308581 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8582 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008583 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8584 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308585 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8586 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008587 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8588 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308589 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8590 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008591 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8592 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308593 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8594 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008595 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8596 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308597 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8598 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008599 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8600 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308601 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8602 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008603 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8604 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308605 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8606 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008607 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8608 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308609 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8610 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008611 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8612 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308613 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8614 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008615 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8616 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308617 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8618 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008619 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8620 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308621 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8622 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008623 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8624 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308625 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8626 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008627 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8628 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308629 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8630 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008631 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8632 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308633 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8634 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008635 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8636 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308637 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8638 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008639 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8640 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308641 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8642 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008643 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8644 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308645 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8646 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008647 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8648 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
8649 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8650 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308651};
8652
8653static const struct snd_kcontrol_new quat_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008654 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8655 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308656 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8657 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008658 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8659 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308660 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8661 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008662 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8663 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308664 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8665 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008666 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8667 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308668 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8669 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008670 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8671 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308672 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8673 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008674 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8675 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308676 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8677 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008678 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8679 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308680 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8681 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008682 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8683 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308684 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8685 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008686 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8687 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308688 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8689 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008690 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8691 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308692 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8693 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008694 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8695 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308696 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8697 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008698 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8699 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308700 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8701 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008702 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8703 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308704 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8705 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008706 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8707 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308708 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8709 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008710 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8711 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308712 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8713 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008714 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8715 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308716 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8717 msm_routing_put_audio_mixer),
8718};
8719
8720static const struct snd_kcontrol_new quat_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008721 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8722 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308723 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8724 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008725 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8726 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308727 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8728 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008729 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8730 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308731 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8732 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008733 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8734 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308735 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8736 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008737 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8738 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308739 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8740 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008741 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8742 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308743 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8744 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008745 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8746 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308747 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8748 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008749 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8750 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308751 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8752 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008753 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8754 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308755 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8756 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008757 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8758 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308759 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8760 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008761 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8762 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308763 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8764 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008765 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8766 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308767 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8768 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008769 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8770 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308771 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8772 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008773 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8774 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308775 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8776 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008777 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8778 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308779 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8780 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008781 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8782 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308783 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8784 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008785 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8786 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308787 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8788 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008789 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8790 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
8791 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8792 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308793};
8794
8795static const struct snd_kcontrol_new quat_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008796 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8797 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308798 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8799 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008800 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8801 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308802 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8803 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008804 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8805 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308806 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8807 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008808 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8809 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308810 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8811 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008812 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8813 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308814 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8815 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008816 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8817 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308818 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8819 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008820 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8821 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308822 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8823 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008824 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8825 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308826 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8827 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008828 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8829 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308830 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8831 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008832 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8833 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308834 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8835 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008836 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8837 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308838 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8839 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008840 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8841 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308842 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8843 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008844 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8845 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308846 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8847 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008848 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8849 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308850 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8851 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008852 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8853 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308854 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8855 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008856 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8857 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308858 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8859 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008860 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8861 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308862 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8863 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008864 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8865 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
8866 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8867 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308868};
8869
8870static const struct snd_kcontrol_new quat_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008871 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8872 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308873 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8874 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008875 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8876 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308877 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8878 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008879 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8880 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308881 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8882 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008883 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8884 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308885 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8886 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008887 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8888 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308889 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8890 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008891 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8892 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308893 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8894 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008895 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8896 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308897 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8898 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008899 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8900 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308901 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8902 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008903 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8904 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308905 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8906 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008907 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8908 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308909 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8910 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008911 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8912 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308913 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8914 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008915 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8916 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308917 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8918 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008919 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8920 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308921 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8922 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008923 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8924 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308925 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8926 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008927 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8928 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308929 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8930 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008931 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8932 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308933 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8934 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008935 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8936 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308937 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8938 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008939 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8940 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
8941 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8942 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308943};
8944
Rohit Kumara5077932017-09-10 22:05:05 +05308945static const struct snd_kcontrol_new quin_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008946 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8947 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308948 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8949 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008950 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8951 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308952 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8953 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008954 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8955 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308956 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8957 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008958 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8959 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308960 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8961 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008962 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8963 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308964 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8965 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008966 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8967 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308968 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8969 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008970 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8971 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308972 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8973 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008974 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8975 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308976 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8977 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008978 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8979 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308980 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8981 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008982 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8983 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308984 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8985 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008986 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8987 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308988 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8989 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008990 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8991 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308992 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8993 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008994 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8995 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308996 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8997 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008998 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8999 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309000 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9001 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009002 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9003 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309004 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9005 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009006 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9007 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309008 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9009 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009010 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9011 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309012 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9013 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009014 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9015 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
9016 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9017 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309018};
9019
9020static const struct snd_kcontrol_new quin_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009021 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9022 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309023 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9024 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009025 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9026 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309027 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9028 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009029 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9030 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309031 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9032 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009033 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9034 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309035 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9036 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009037 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9038 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309039 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9040 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009041 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9042 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309043 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9044 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009045 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9046 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309047 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9048 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009049 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9050 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309051 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9052 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009053 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9054 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309055 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9056 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009057 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9058 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309059 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9060 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009061 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9062 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309063 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9064 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009065 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9066 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309067 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9068 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009069 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9070 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309071 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9072 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009073 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9074 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309075 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9076 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009077 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9078 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309079 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9080 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009081 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9082 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309083 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9084 msm_routing_put_audio_mixer),
9085};
9086
9087static const struct snd_kcontrol_new quin_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009088 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9089 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309090 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9091 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009092 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9093 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309094 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9095 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009096 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9097 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309098 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9099 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009100 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9101 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309102 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9103 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009104 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9105 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309106 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9107 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009108 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9109 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309110 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9111 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009112 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9113 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309114 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9115 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009116 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9117 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309118 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9119 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009120 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9121 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309122 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9123 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009124 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9125 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309126 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9127 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009128 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9129 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309130 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9131 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009132 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9133 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309134 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9135 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009136 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9137 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309138 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9139 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009140 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9141 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309142 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9143 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009144 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9145 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309146 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9147 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009148 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9149 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309150 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9151 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009152 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9153 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309154 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9155 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009156 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9157 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
9158 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9159 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309160};
9161
9162static const struct snd_kcontrol_new quin_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009163 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9164 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309165 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9166 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009167 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9168 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309169 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9170 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009171 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9172 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309173 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9174 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009175 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9176 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309177 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9178 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009179 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9180 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309181 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9182 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009183 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9184 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309185 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9186 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009187 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9188 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309189 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9190 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009191 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9192 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309193 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9194 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009195 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9196 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309197 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9198 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009199 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9200 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309201 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9202 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009203 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9204 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309205 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9206 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009207 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9208 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309209 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9210 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009211 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9212 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309213 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9214 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009215 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9216 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309217 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9218 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009219 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9220 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309221 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9222 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009223 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9224 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309225 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9226 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009227 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9228 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309229 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9230 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009231 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9232 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
9233 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9234 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309235};
9236
9237static const struct snd_kcontrol_new quin_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009238 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9239 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309240 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9241 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009242 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9243 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309244 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9245 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009246 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9247 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309248 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9249 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009250 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9251 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309252 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9253 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009254 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9255 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309256 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9257 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009258 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9259 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309260 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9261 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009262 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9263 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309264 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9265 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009266 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9267 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309268 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9269 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009270 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9271 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309272 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9273 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009274 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9275 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309276 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9277 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009278 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9279 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309280 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9281 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009282 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9283 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309284 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9285 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009286 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9287 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309288 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9289 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009290 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9291 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309292 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9293 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009294 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9295 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309296 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9297 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009298 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9299 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309300 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9301 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009302 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9303 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309304 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9305 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009306 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9307 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
9308 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9309 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309310};
9311
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309312static const struct snd_kcontrol_new mmul1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009313 SOC_DOUBLE_EXT("PRI_TX", SND_SOC_NOPM,
9314 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309315 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9316 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009317 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9318 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309319 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9320 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009321 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9322 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309323 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9324 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009325 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9326 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309327 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9328 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009329 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9330 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309331 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9332 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009333 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9334 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309335 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9336 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009337 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9338 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309339 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9340 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009341 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9342 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309343 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9344 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009345 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9346 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309347 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9348 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009349 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
9350 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309351 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9352 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009353 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
9354 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309355 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9356 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009357 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
9358 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309359 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9360 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009361 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
9362 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309363 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9364 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009365 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
9366 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05309367 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9368 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009369 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9370 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309371 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9372 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009373 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9374 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309375 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9376 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009377 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9378 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309379 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9380 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009381 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9382 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309383 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9384 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009385 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9386 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309387 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9388 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009389 SOC_DOUBLE_EXT("SLIM_4_TX", SND_SOC_NOPM,
9390 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309391 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9392 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009393 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9394 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309395 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9396 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009397 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
9398 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309399 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9400 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009401 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9402 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309403 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9404 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009405 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9406 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309407 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9408 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009409 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9410 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309411 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9412 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009413 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9414 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309415 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9416 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009417 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9418 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309419 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9420 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009421 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9422 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309423 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9424 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009425 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9426 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309427 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9428 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009429 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9430 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309431 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9432 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009433 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9434 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309435 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9436 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009437 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9438 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309439 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9440 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009441 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9442 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309443 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9444 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009445 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9446 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309447 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9448 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009449 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9450 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309451 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9452 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009453 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9454 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309455 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9456 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009457 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9458 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309459 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9460 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009461 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9462 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309463 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9464 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009465 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9466 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309467 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9468 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009469 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9470 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309471 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9472 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009473 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9474 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309475 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9476 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009477 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9478 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309479 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9480 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009481 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
9482 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309483 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9484 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009485 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
9486 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309487 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9488 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009489 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9490 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309491 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9492 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309493 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9494 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9495 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9496 msm_routing_put_audio_mixer),
9497 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9498 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9499 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9500 msm_routing_put_audio_mixer),
9501 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9502 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9503 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9504 msm_routing_put_audio_mixer),
9505 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9506 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9507 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9508 msm_routing_put_audio_mixer),
9509 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9510 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9511 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9512 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309513 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9514 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9515 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9516 msm_routing_put_audio_mixer),
9517 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9518 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9519 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9520 msm_routing_put_audio_mixer),
9521 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9522 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9523 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9524 msm_routing_put_audio_mixer),
9525 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9526 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9527 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9528 msm_routing_put_audio_mixer),
9529 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9530 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9531 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9532 msm_routing_put_audio_mixer),
9533 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9534 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9535 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9536 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009537 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9538 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9539 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9540 msm_routing_put_audio_mixer),
9541 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9542 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9543 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9544 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +05309545 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
9546 MSM_BACKEND_DAI_SLIMBUS_9_TX,
9547 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9548 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309549};
9550
9551static const struct snd_kcontrol_new mmul2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009552 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9553 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309554 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9555 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009556 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9557 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309558 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9559 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009560 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9561 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309562 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9563 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009564 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9565 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309566 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9567 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009568 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9569 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309570 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9571 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009572 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9573 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309574 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9575 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009576 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9577 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309578 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9579 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009580 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9581 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309582 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9583 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009584 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9585 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309586 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9587 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009588 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9589 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309590 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009592 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
9593 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309594 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9595 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009596 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
9597 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309598 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9599 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009600 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9601 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309602 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9603 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009604 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9605 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309606 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9607 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009608 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9609 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309610 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9611 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009612 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9613 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309614 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9615 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009616 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9617 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309618 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9619 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009620 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9621 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309622 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9623 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009624 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9625 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309626 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9627 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009628 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9629 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309630 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9631 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009632 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9633 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309634 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9635 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009636 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9637 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309638 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9639 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009640 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9641 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309642 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9643 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009644 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9645 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309646 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9647 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009648 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9649 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309650 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9651 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009652 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9653 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309654 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9655 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009656 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9657 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309658 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9659 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009660 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9661 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309662 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9663 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009664 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9665 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309666 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9667 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009668 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9669 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309670 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9671 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009672 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9673 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309674 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9675 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009676 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9677 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309678 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9679 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009680 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
9681 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309682 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9683 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009684 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9685 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309686 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9687 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309688 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9689 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9690 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9691 msm_routing_put_audio_mixer),
9692 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9693 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9694 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9695 msm_routing_put_audio_mixer),
9696 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9697 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9698 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9699 msm_routing_put_audio_mixer),
9700 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9701 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9702 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9703 msm_routing_put_audio_mixer),
9704 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9705 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9706 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9707 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309708 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9709 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9710 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9711 msm_routing_put_audio_mixer),
9712 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9713 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9714 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9715 msm_routing_put_audio_mixer),
9716 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9717 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9718 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9719 msm_routing_put_audio_mixer),
9720 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9721 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9722 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9723 msm_routing_put_audio_mixer),
9724 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9725 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9726 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9727 msm_routing_put_audio_mixer),
9728 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9729 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9730 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9731 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009732 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9733 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9734 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9735 msm_routing_put_audio_mixer),
9736 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9737 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9738 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9739 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +05309740 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
9741 MSM_BACKEND_DAI_SLIMBUS_9_TX,
9742 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9743 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309744};
9745
9746static const struct snd_kcontrol_new mmul3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009747 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9748 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309749 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9750 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009751 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9752 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309753 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9754 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009755 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9756 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309757 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9758 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009759 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9760 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309761 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9762 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009763 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9764 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309765 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9766 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009767 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
9768 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309769 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9770 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009771 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
9772 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309773 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9774 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009775 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
9776 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309777 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9778 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009779 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
9780 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309781 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9782 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009783 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
9784 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05309785 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9786 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009787 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9788 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309789 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9790 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009791 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9792 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309793 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9794 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009795 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9796 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309797 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9798 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009799 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9800 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309801 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9802 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009803 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9804 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309805 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9806 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009807 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9808 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309809 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9810 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009811 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9812 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309813 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9814 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009815 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9816 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309817 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9818 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009819 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9820 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309821 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9822 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009823 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9824 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309825 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9826 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009827 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9828 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309829 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9830 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009831 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9832 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309833 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9834 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009835 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9836 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309837 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9838 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009839 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9840 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309841 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9842 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009843 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9844 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309845 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9846 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009847 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9848 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309849 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9850 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009851 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9852 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309853 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9854 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009855 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9856 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309857 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9858 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009859 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9860 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309861 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9862 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009863 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9864 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309865 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9866 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009867 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9868 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309869 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9870 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009871 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9872 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309873 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9874 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009875 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9876 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309877 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9878 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009879 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9880 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309881 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9882 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309883 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9884 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9885 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9886 msm_routing_put_audio_mixer),
9887 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9888 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9889 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9890 msm_routing_put_audio_mixer),
9891 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9892 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9893 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9894 msm_routing_put_audio_mixer),
9895 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9896 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9897 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9898 msm_routing_put_audio_mixer),
9899 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9900 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9901 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9902 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309903 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9904 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9905 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9906 msm_routing_put_audio_mixer),
9907 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9908 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9909 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9910 msm_routing_put_audio_mixer),
9911 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9912 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9913 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9914 msm_routing_put_audio_mixer),
9915 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9916 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9917 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9918 msm_routing_put_audio_mixer),
9919 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9920 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9921 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9922 msm_routing_put_audio_mixer),
9923 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9924 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9925 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9926 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009927 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9928 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9929 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9930 msm_routing_put_audio_mixer),
9931 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9932 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9933 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9934 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309935};
9936
9937static const struct snd_kcontrol_new mmul4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009938 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9939 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309940 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9941 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009942 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9943 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309944 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9945 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009946 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9947 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309948 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9949 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009950 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9951 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309952 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9953 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009954 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9955 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309956 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9957 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009958 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9959 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309960 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9961 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009962 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9963 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309964 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9965 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009966 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9967 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309968 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9969 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009970 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9971 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309972 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9973 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009974 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9975 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309976 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9977 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009978 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9979 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309980 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9981 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009982 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9983 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309984 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9985 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009986 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9987 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309988 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9989 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009990 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9991 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309992 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9993 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009994 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9995 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309996 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9997 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009998 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9999 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010000 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10001 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010002 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10003 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010004 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10005 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010006 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10007 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010008 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10009 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010010 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10011 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010012 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10013 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010014 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10015 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010016 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10017 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010018 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10019 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010020 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10021 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010022 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10023 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010024 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10025 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010026 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10027 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010028 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10029 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010030 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10031 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010032 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10033 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010034 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10035 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010036 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10037 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010038 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10039 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010040 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10041 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010042 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10043 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010044 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10045 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010046 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10047 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010048 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10049 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010050 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10051 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010052 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10053 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010054 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10055 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010056 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10057 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010058 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10059 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010060 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10061 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010062 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10063 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010064 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10065 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010066 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10067 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010068 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10069 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010070 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10071 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10072 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10073 msm_routing_put_audio_mixer),
10074 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10075 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10076 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10077 msm_routing_put_audio_mixer),
10078 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10079 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10080 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10081 msm_routing_put_audio_mixer),
10082 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10083 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10084 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10085 msm_routing_put_audio_mixer),
10086 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10087 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10088 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10089 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010090 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10091 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10092 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10093 msm_routing_put_audio_mixer),
10094 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10095 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10096 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10097 msm_routing_put_audio_mixer),
10098 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10099 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10100 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10101 msm_routing_put_audio_mixer),
10102 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10103 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10104 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10105 msm_routing_put_audio_mixer),
10106 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10107 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10108 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10109 msm_routing_put_audio_mixer),
10110 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10111 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10112 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10113 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010114 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10115 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10116 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10117 msm_routing_put_audio_mixer),
10118 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10119 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10120 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10121 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010122};
10123
10124static const struct snd_kcontrol_new mmul5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010125 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10126 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010127 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10128 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010129 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10130 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010131 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10132 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010133 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
10134 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010135 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10136 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010137 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10138 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010139 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10140 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010141 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10142 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010143 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10144 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010145 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
10146 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010147 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10148 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010149 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
10150 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010151 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10152 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010153 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
10154 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010155 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10156 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010157 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
10158 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010159 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010161 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
10162 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010163 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10164 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010165 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10166 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010167 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010169 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10170 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010171 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10172 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010173 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10174 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010175 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10176 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010177 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10178 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010179 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10180 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010181 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10182 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010183 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10184 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010185 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10186 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010187 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10188 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010189 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10190 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010191 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10192 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010193 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10194 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010195 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10196 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010197 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10198 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010199 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10200 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010201 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10202 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010203 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10204 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010205 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10206 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010207 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10208 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010209 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10210 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010211 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10212 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010213 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10214 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010215 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10216 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010217 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10218 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010219 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10220 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010221 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10222 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010223 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10224 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010225 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10226 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010227 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10228 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010229 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10230 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010231 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10232 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010233 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10234 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010235 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10236 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010237 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10238 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010239 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10240 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010241 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10242 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010243 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10244 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010245 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10246 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010247 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10248 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010249 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10250 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010251 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10252 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010253 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10254 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010255 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10256 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010257 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10258 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010259 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10260 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010261 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10262 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010263 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10264 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010265 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10266 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010267 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10268 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010269 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10270 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010271 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10272 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010273 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
10274 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010275 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10276 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010277 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10278 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010279 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10280 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010281 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10282 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10283 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10284 msm_routing_put_audio_mixer),
10285 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10286 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10287 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10288 msm_routing_put_audio_mixer),
10289 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10290 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10291 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10292 msm_routing_put_audio_mixer),
10293 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10294 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10295 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10296 msm_routing_put_audio_mixer),
10297 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10298 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10299 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10300 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010301 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10302 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10303 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10304 msm_routing_put_audio_mixer),
10305 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10306 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10307 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10308 msm_routing_put_audio_mixer),
10309 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10310 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10311 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10312 msm_routing_put_audio_mixer),
10313 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10314 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10315 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10316 msm_routing_put_audio_mixer),
10317 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10318 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10319 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10320 msm_routing_put_audio_mixer),
10321 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10322 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10323 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10324 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010325 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10326 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10327 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10328 msm_routing_put_audio_mixer),
10329 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10330 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10331 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10332 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053010333 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
10334 MSM_BACKEND_DAI_SLIMBUS_9_TX,
10335 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10336 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010337};
10338
10339static const struct snd_kcontrol_new mmul6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010340 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10341 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010342 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10343 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010344 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10345 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010346 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10347 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010348 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10349 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010350 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10351 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010352 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10353 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010354 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10355 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010356 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10357 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010358 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10359 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010360 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10361 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010362 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10363 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010364 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10365 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010366 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10367 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010368 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10369 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010370 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10371 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010372 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
10373 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010374 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10375 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010376 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
10377 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010378 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10379 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010380 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
10381 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010382 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10383 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010384 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
10385 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010386 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10387 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010388 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
10389 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010390 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10391 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010392 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10393 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010394 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10395 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010396 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10397 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010398 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10399 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010400 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10401 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010402 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10403 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010404 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10405 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010406 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10407 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010408 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10409 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010410 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10411 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010412 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10413 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010414 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10415 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010416 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10417 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010418 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10419 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010420 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10421 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010422 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10423 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010424 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10425 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010426 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10427 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010428 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10429 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010430 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10431 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010432 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10433 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010434 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10435 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010436 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10437 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010438 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10439 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010440 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10441 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010442 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10443 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010444 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10445 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010446 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10447 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010448 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10449 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010450 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10451 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010452 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10453 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010454 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10455 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010456 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10457 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010458 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10459 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010460 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10461 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010462 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10463 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010464 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10465 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010466 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10467 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010468 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10469 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010470 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10471 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010472 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10473 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010474 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10475 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010476 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10477 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10478 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10479 msm_routing_put_audio_mixer),
10480 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10481 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10482 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10483 msm_routing_put_audio_mixer),
10484 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10485 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10486 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10487 msm_routing_put_audio_mixer),
10488 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10489 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10490 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10491 msm_routing_put_audio_mixer),
10492 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10493 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10494 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10495 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010496 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10497 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10498 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10499 msm_routing_put_audio_mixer),
10500 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10501 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10502 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10503 msm_routing_put_audio_mixer),
10504 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10505 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10506 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10507 msm_routing_put_audio_mixer),
10508 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10509 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10510 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10511 msm_routing_put_audio_mixer),
10512 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10513 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10514 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10515 msm_routing_put_audio_mixer),
10516 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10517 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10518 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10519 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010520 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10521 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10522 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10523 msm_routing_put_audio_mixer),
10524 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10525 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10526 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10527 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010528};
10529
10530static const struct snd_kcontrol_new mmul8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010531 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10532 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010533 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10534 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010535 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10536 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010537 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10538 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010539 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10540 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010541 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10542 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010543 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10544 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010545 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10546 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010547 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10548 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010549 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10550 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010551 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10552 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010553 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10554 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010555 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10556 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010557 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10558 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010559 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10560 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010561 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10562 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010563 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10564 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010565 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10566 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010567 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10568 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010569 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10570 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010571 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10572 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010573 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10574 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010575 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10576 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010577 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10578 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010579 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
10580 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010581 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10582 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010583 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10584 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010585 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10586 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010587 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10588 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010589 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10590 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010591 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10592 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010593 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10594 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010595 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10596 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010597 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10598 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010599 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10600 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010601 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10602 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010603 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10604 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010605 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10606 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010607 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10608 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010609 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10610 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010611 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10612 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010613 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10614 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010615 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10616 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010617 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10618 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010619 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10620 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010621 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10622 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010623 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10624 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010625 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10626 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010627 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10628 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010629 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10630 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010631 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10632 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010633 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10634 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010635 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10636 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010637 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10638 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010639 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10640 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010641 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10642 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010643 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10644 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010645 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10646 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010647 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10648 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010649 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10650 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010651 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10652 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010653 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10654 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010655 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10656 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010657 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10658 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010659 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10660 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010661 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10662 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010663 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10664 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010665 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10666 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010667 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10668 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010669 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10670 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010671 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10672 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10673 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10674 msm_routing_put_audio_mixer),
10675 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10676 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10677 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10678 msm_routing_put_audio_mixer),
10679 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10680 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10681 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10682 msm_routing_put_audio_mixer),
10683 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10684 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10685 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10686 msm_routing_put_audio_mixer),
10687 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10688 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10689 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10690 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010691 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10692 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10693 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10694 msm_routing_put_audio_mixer),
10695 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10696 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10697 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10698 msm_routing_put_audio_mixer),
10699 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10700 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10701 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10702 msm_routing_put_audio_mixer),
10703 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10704 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10705 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10706 msm_routing_put_audio_mixer),
10707 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10708 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10709 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10710 msm_routing_put_audio_mixer),
10711 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10712 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10713 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10714 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010715 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10716 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10717 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10718 msm_routing_put_audio_mixer),
10719 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10720 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10721 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10722 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053010723 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
10724 MSM_BACKEND_DAI_SLIMBUS_9_TX,
10725 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10726 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010727};
10728
Asish Bhattacharya34504582017-08-08 12:55:01 +053010729static const struct snd_kcontrol_new mmul16_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010730 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10731 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010732 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10733 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010734 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10735 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010736 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10737 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010738 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10739 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010740 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10741 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010742 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10743 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010744 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10745 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010746 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10747 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010748 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10749 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010750 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10751 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010752 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010754 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10755 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010756 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10757 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010758 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10759 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010760 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10761 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010762 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10763 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010764 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10765 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010766 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10767 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010768 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10769 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010770 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10771 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010772 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10773 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010774 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10775 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010776 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10777 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010778 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
10779 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010780 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10781 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010782 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10783 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010784 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10785 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010786 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10787 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010788 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10789 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010790 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10791 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010792 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10793 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010794 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10795 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010796 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10797 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010798 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10799 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010800 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10801 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010802 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10803 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010804 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10805 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010806 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10807 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010808 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10809 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010810 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10811 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010812 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10813 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010814 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10815 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010816 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10817 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010818 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10819 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010820 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10821 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010822 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10823 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010824 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10825 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010826 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10827 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010828 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10829 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010830 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10831 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010832 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10833 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010834 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10835 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010836 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10837 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010838 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10839 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010840 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10841 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010842 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10843 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010844 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10845 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010846 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10847 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010848 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10849 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010850 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10851 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010852 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10853 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010854 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
10855 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010856 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10857 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010858 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
10859 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010860 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10861 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010862 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
10863 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010864 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10865 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010866 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
10867 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010868 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10869 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010870 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10871 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10872 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10873 msm_routing_put_audio_mixer),
10874 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10875 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10876 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10877 msm_routing_put_audio_mixer),
10878 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10879 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10880 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10881 msm_routing_put_audio_mixer),
10882 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10883 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10884 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10885 msm_routing_put_audio_mixer),
10886 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10887 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10888 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10889 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010890 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10891 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10892 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10893 msm_routing_get_audio_mixer,
10894 msm_routing_put_audio_mixer),
10895 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10896 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10897 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10898 msm_routing_get_audio_mixer,
10899 msm_routing_put_audio_mixer),
10900 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10901 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10902 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10903 msm_routing_get_audio_mixer,
10904 msm_routing_put_audio_mixer),
10905 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10906 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10907 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10908 msm_routing_get_audio_mixer,
10909 msm_routing_put_audio_mixer),
10910 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10911 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10912 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10913 msm_routing_get_audio_mixer,
10914 msm_routing_put_audio_mixer),
10915 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10916 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10917 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10918 msm_routing_get_audio_mixer,
10919 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010920 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10921 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10922 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10923 msm_routing_put_audio_mixer),
10924 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10925 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10926 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10927 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053010928 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
10929 MSM_BACKEND_DAI_SLIMBUS_9_TX,
10930 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10931 msm_routing_put_audio_mixer),
Asish Bhattacharya34504582017-08-08 12:55:01 +053010932};
10933
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010934static const struct snd_kcontrol_new mmul9_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010935 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10936 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010937 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10938 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010939 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10940 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010941 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10942 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010943 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10944 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010945 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10946 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010947 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10948 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010949 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10950 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010951 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10952 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010953 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10954 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010955 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10956 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010957 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10958 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010959 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10960 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010961 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10962 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010963 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
10964 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010965 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10966 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010967 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10968 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010969 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10970 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010971 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10972 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010973 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10974 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010975 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10976 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010977 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10978 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010979 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10980 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010981 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10982 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010983 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10984 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010985 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10986 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010987 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10988 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010989 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10990 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010991 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10992 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010993 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10994 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010995 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10996 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010997 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10998 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010999 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11000 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011001 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11002 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011003 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11004 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011005 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11006 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011007 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11008 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011009 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11010 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011011 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11012 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011013 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11014 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011015 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11016 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11017 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11018 msm_routing_put_audio_mixer),
11019 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11020 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11021 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11022 msm_routing_put_audio_mixer),
11023 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11024 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11025 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11026 msm_routing_put_audio_mixer),
11027 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11028 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11029 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11030 msm_routing_put_audio_mixer),
11031 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11032 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11033 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11034 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011035 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11036 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11037 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11038 msm_routing_put_audio_mixer),
11039 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11040 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11041 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11042 msm_routing_put_audio_mixer),
11043 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11044 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11045 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11046 msm_routing_put_audio_mixer),
11047 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11048 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11049 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11050 msm_routing_put_audio_mixer),
11051 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11052 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11053 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11054 msm_routing_put_audio_mixer),
11055 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11056 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11057 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11058 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011059 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11060 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11061 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11062 msm_routing_put_audio_mixer),
11063 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11064 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11065 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11066 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011067};
11068
Laxminath Kasam38070be2017-08-17 18:21:59 +053011069static const struct snd_kcontrol_new mmul10_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011070 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11071 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011072 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11073 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011074 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11075 MSM_BACKEND_DAI_PRI_MI2S_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011076 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11077 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011078 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11079 MSM_BACKEND_DAI_INT_FM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011080 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11081 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011082 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11083 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011084 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11085 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011086 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11087 MSM_BACKEND_DAI_AFE_PCM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011088 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11089 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011090 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11091 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011092 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11093 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011094 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11095 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011096 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11097 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011098 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11099 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011100 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11101 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011102 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11103 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Vikram Panduranga72863152017-09-06 15:47:35 -070011104 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11105 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011106 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11107 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011108 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11109 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011110 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11111 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011112 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11113 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011114 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11115 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011116 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11117 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011118 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11119 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011120 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11121 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011122 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11123 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011124 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11125 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011126 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11127 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011128 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11129 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011130 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11131 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011132 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11133 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011134 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11135 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011136 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11137 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011138 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
11139 MSM_BACKEND_DAI_USB_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011140 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11141 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011142 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11143 MSM_BACKEND_DAI_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011144 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11145 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011146 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
11147 MSM_BACKEND_DAI_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011148 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11149 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011150 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
11151 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011152 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11153 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011154 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
11155 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011156 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11157 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011158 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
11159 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011160 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11161 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011162 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11163 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011164 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11165 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011166 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
11167 MSM_BACKEND_DAI_INT2_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011168 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11169 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011170 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11171 MSM_BACKEND_DAI_INT3_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011172 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11173 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011174 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11175 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11176 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11177 msm_routing_put_audio_mixer),
11178 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11179 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11180 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11181 msm_routing_put_audio_mixer),
11182 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11183 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11184 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11185 msm_routing_put_audio_mixer),
11186 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11187 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11188 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11189 msm_routing_put_audio_mixer),
11190 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11191 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11192 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11193 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011194 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11195 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11196 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11197 msm_routing_get_audio_mixer,
11198 msm_routing_put_audio_mixer),
11199 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11200 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11201 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11202 msm_routing_get_audio_mixer,
11203 msm_routing_put_audio_mixer),
11204 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11205 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11206 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11207 msm_routing_get_audio_mixer,
11208 msm_routing_put_audio_mixer),
11209 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11210 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11211 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11212 msm_routing_get_audio_mixer,
11213 msm_routing_put_audio_mixer),
11214 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11215 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11216 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11217 msm_routing_get_audio_mixer,
11218 msm_routing_put_audio_mixer),
11219 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11220 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11221 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11222 msm_routing_get_audio_mixer,
11223 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011224 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11225 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11226 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11227 msm_routing_put_audio_mixer),
11228 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11229 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11230 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11231 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053011232 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
11233 MSM_BACKEND_DAI_SLIMBUS_9_TX,
11234 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11235 msm_routing_put_audio_mixer),
Laxminath Kasam38070be2017-08-17 18:21:59 +053011236};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011237static const struct snd_kcontrol_new mmul17_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011238 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11239 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011240 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11241 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011242 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11243 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011244 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11245 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011246 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11247 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011248 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11249 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011250 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11251 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011252 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11253 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011254 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11255 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011256 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11257 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011258 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11259 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011260 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11261 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011262 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11263 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011264 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11265 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011266 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11267 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011268 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11269 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011270 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11271 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11272 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11273 msm_routing_put_audio_mixer),
11274 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11275 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11276 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11277 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011278 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11279 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11280 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11281 msm_routing_put_audio_mixer),
11282 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11283 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11284 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11285 msm_routing_put_audio_mixer),
11286 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11287 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11288 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11289 msm_routing_put_audio_mixer),
11290 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11291 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11292 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11293 msm_routing_put_audio_mixer),
11294 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11295 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11296 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11297 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011298 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11299 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11300 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11301 msm_routing_get_audio_mixer,
11302 msm_routing_put_audio_mixer),
11303 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11304 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11305 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11306 msm_routing_get_audio_mixer,
11307 msm_routing_put_audio_mixer),
11308 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11309 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11310 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11311 msm_routing_get_audio_mixer,
11312 msm_routing_put_audio_mixer),
11313 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11314 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11315 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11316 msm_routing_get_audio_mixer,
11317 msm_routing_put_audio_mixer),
11318 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11319 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11320 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11321 msm_routing_get_audio_mixer,
11322 msm_routing_put_audio_mixer),
11323 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11324 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11325 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11326 msm_routing_get_audio_mixer,
11327 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011328 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11329 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11330 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11331 msm_routing_put_audio_mixer),
11332 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11333 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11334 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11335 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011336};
11337
11338static const struct snd_kcontrol_new mmul18_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011339 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11340 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011341 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11342 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011343 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11344 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011345 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11346 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011347 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11348 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011349 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11350 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011351 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11352 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
11353 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11354 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011355 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11356 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11357 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11358 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011359 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11360 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011361 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11362 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011363 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11364 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011365 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11366 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011367 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11368 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011369 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11370 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011371 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11372 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011373 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11374 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011375 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11376 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011377 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11378 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011379 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11380 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011381 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11382 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011383 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11384 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11385 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11386 msm_routing_put_audio_mixer),
11387 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11388 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11389 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11390 msm_routing_put_audio_mixer),
11391 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11392 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11393 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11394 msm_routing_put_audio_mixer),
11395 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11396 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11397 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11398 msm_routing_put_audio_mixer),
11399 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11400 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11401 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11402 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011403 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11404 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11405 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11406 msm_routing_get_audio_mixer,
11407 msm_routing_put_audio_mixer),
11408 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11409 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11410 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11411 msm_routing_get_audio_mixer,
11412 msm_routing_put_audio_mixer),
11413 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11414 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11415 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11416 msm_routing_get_audio_mixer,
11417 msm_routing_put_audio_mixer),
11418 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11419 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11420 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11421 msm_routing_get_audio_mixer,
11422 msm_routing_put_audio_mixer),
11423 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11424 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11425 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11426 msm_routing_get_audio_mixer,
11427 msm_routing_put_audio_mixer),
11428 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11429 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11430 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11431 msm_routing_get_audio_mixer,
11432 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011433 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11434 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11435 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11436 msm_routing_put_audio_mixer),
11437 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11438 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11439 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11440 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011441};
11442
11443static const struct snd_kcontrol_new mmul19_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011444 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11445 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011446 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11447 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011448 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11449 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011450 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11451 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011452 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11453 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011454 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11455 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011456 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11457 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011458 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11459 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011460 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11461 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011462 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11463 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011464 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11465 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011466 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11467 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011468 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11469 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011470 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11471 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011472 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11473 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011474 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11475 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011476 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11477 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11478 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11479 msm_routing_put_audio_mixer),
11480 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11481 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11482 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11483 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011484 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11485 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11486 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11487 msm_routing_put_audio_mixer),
11488 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11489 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11490 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11491 msm_routing_put_audio_mixer),
11492 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11493 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11494 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11495 msm_routing_put_audio_mixer),
11496 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11497 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11498 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11499 msm_routing_put_audio_mixer),
11500 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11501 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11502 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11503 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011504 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11505 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11506 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11507 msm_routing_get_audio_mixer,
11508 msm_routing_put_audio_mixer),
11509 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11510 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11511 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11512 msm_routing_get_audio_mixer,
11513 msm_routing_put_audio_mixer),
11514 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11515 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11516 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11517 msm_routing_get_audio_mixer,
11518 msm_routing_put_audio_mixer),
11519 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11520 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11521 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11522 msm_routing_get_audio_mixer,
11523 msm_routing_put_audio_mixer),
11524 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11525 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11526 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11527 msm_routing_get_audio_mixer,
11528 msm_routing_put_audio_mixer),
11529 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11530 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11531 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11532 msm_routing_get_audio_mixer,
11533 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011534 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11535 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11536 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11537 msm_routing_put_audio_mixer),
11538 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11539 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11540 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11541 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011542};
11543
11544static const struct snd_kcontrol_new mmul20_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011545 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11546 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011547 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011549 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11550 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011551 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011553 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11554 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011555 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11556 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011557 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11558 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011559 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11560 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011561 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11562 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053011563 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11564 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011565 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11566 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011567 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11568 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011569 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11570 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011571 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11572 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011573 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11574 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011575 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11576 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011577 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11578 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011579 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11580 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011581 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11582 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011583 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11584 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011585 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11586 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011587 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11588 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011589 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11590 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011591 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11592 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011593 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11594 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011595 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11596 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011597 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11598 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011599 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11600 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011601 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11602 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011603 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11604 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011605 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11606 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011607 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11608 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011609 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11610 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011611 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11612 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011613 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11614 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011615 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11616 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011617 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11618 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011619 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11620 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011621 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11622 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011623 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11624 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011625 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11626 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011627 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11628 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011629 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11630 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011631 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11632 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011633 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11634 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011635 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11636 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011637 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11638 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011639 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11640 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011641 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11642 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011643 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11644 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011645 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11646 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11647 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11648 msm_routing_put_audio_mixer),
11649 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11650 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11651 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11652 msm_routing_put_audio_mixer),
11653 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11654 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11655 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11656 msm_routing_put_audio_mixer),
11657 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11658 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11659 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11660 msm_routing_put_audio_mixer),
11661 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11662 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11663 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11664 msm_routing_put_audio_mixer),
11665 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11666 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11667 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11668 msm_routing_put_audio_mixer),
11669 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11670 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11671 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11672 msm_routing_put_audio_mixer),
11673 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11674 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11675 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11676 msm_routing_put_audio_mixer),
11677 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11678 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11679 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11680 msm_routing_put_audio_mixer),
11681 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11682 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11683 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11684 msm_routing_put_audio_mixer),
11685 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11686 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11687 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11688 msm_routing_put_audio_mixer),
11689 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11690 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11691 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11692 msm_routing_put_audio_mixer),
11693 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11694 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11695 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11696 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011697};
11698
11699static const struct snd_kcontrol_new mmul21_mixer_controls[] = {
11700 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11701 MSM_BACKEND_DAI_AUXPCM_TX,
11702 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11703 msm_routing_put_audio_mixer),
11704 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11705 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
11706 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11707 msm_routing_put_audio_mixer),
11708 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11709 MSM_BACKEND_DAI_PRI_TDM_TX_0,
11710 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11711 msm_routing_put_audio_mixer),
11712 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11713 MSM_BACKEND_DAI_PRI_TDM_TX_1,
11714 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11715 msm_routing_put_audio_mixer),
11716 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11717 MSM_BACKEND_DAI_PRI_TDM_TX_2,
11718 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11719 msm_routing_put_audio_mixer),
11720 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11721 MSM_BACKEND_DAI_PRI_TDM_TX_3,
11722 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11723 msm_routing_put_audio_mixer),
11724 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11725 MSM_BACKEND_DAI_SEC_TDM_TX_0,
11726 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11727 msm_routing_put_audio_mixer),
11728 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11729 MSM_BACKEND_DAI_SEC_TDM_TX_1,
11730 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11731 msm_routing_put_audio_mixer),
11732 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11733 MSM_BACKEND_DAI_SEC_TDM_TX_2,
11734 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11735 msm_routing_put_audio_mixer),
11736 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11737 MSM_BACKEND_DAI_SEC_TDM_TX_3,
11738 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11739 msm_routing_put_audio_mixer),
11740 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11741 MSM_BACKEND_DAI_TERT_TDM_TX_0,
11742 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11743 msm_routing_put_audio_mixer),
11744 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11745 MSM_BACKEND_DAI_TERT_TDM_TX_1,
11746 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11747 msm_routing_put_audio_mixer),
11748 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11749 MSM_BACKEND_DAI_TERT_TDM_TX_2,
11750 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11751 msm_routing_put_audio_mixer),
11752 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11753 MSM_BACKEND_DAI_TERT_TDM_TX_3,
11754 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11755 msm_routing_put_audio_mixer),
11756 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11757 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
11758 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11759 msm_routing_put_audio_mixer),
11760 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11761 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
11762 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11763 msm_routing_put_audio_mixer),
11764 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11765 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
11766 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11767 msm_routing_put_audio_mixer),
11768 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11769 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
11770 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11771 msm_routing_put_audio_mixer),
11772 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11773 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
11774 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11775 msm_routing_put_audio_mixer),
11776 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11777 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11778 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11779 msm_routing_put_audio_mixer),
11780 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11781 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11782 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11783 msm_routing_put_audio_mixer),
11784 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11785 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11786 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11787 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011788 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011789 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11790 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011791 msm_routing_put_audio_mixer),
11792 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011793 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11794 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011795 msm_routing_put_audio_mixer),
11796 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011797 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11798 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011799 msm_routing_put_audio_mixer),
11800 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011801 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11802 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011803 msm_routing_put_audio_mixer),
11804 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011805 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11806 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011807 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011808 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011809 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11810 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11811 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011812 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011813 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11814 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11815 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011816 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011817 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11818 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11819 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011820 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011821 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11822 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11823 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011824 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011825 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11826 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11827 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011828 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011829 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11830 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11831 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011832 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11833 MSM_BACKEND_DAI_PRI_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011834 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020011835 msm_routing_put_audio_mixer),
11836 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11837 MSM_BACKEND_DAI_SEC_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011838 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020011839 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011840};
11841
Surendar Karkac1cde372018-08-14 18:56:24 +053011842static const struct snd_kcontrol_new mmul27_mixer_controls[] = {
11843 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11844 MSM_BACKEND_DAI_SLIMBUS_0_TX,
11845 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11846 msm_routing_put_audio_mixer),
11847 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11848 MSM_BACKEND_DAI_SLIMBUS_6_TX,
11849 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11850 msm_routing_put_audio_mixer),
11851 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11852 MSM_BACKEND_DAI_SLIMBUS_7_TX,
11853 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11854 msm_routing_put_audio_mixer),
11855 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11856 MSM_BACKEND_DAI_PRI_MI2S_TX,
11857 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11858 msm_routing_put_audio_mixer),
11859 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11860 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
11861 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11862 msm_routing_put_audio_mixer),
11863 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11864 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11865 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11866 msm_routing_put_audio_mixer),
11867 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11868 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11869 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11870 msm_routing_put_audio_mixer),
11871 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11872 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
11873 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11874 msm_routing_put_audio_mixer),
11875 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11876 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11877 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11878 msm_routing_put_audio_mixer),
11879 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11880 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11881 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11882 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053011883 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
11884 MSM_BACKEND_DAI_SLIMBUS_9_TX,
11885 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11886 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053011887};
11888
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011889static const struct snd_kcontrol_new mmul28_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011890 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11891 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011892 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11893 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011894 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11895 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011896 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11897 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011898 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11899 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011900 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11901 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011902 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11903 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011904 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11905 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011906 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11907 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011908 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11909 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011910 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11911 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011912 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11913 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011914 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11915 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011916 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11917 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011918 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11919 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011920 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11921 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011922 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11923 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11924 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11925 msm_routing_put_audio_mixer),
11926 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11927 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11928 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11929 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011930 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11931 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11932 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11933 msm_routing_put_audio_mixer),
11934 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11935 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11936 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11937 msm_routing_put_audio_mixer),
11938 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11939 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11940 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11941 msm_routing_put_audio_mixer),
11942 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11943 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11944 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11945 msm_routing_put_audio_mixer),
11946 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11947 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11948 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11949 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011950 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11951 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11952 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11953 msm_routing_get_audio_mixer,
11954 msm_routing_put_audio_mixer),
11955 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11956 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11957 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11958 msm_routing_get_audio_mixer,
11959 msm_routing_put_audio_mixer),
11960 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11961 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11962 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11963 msm_routing_get_audio_mixer,
11964 msm_routing_put_audio_mixer),
11965 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11966 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11967 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11968 msm_routing_get_audio_mixer,
11969 msm_routing_put_audio_mixer),
11970 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11971 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11972 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11973 msm_routing_get_audio_mixer,
11974 msm_routing_put_audio_mixer),
11975 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11976 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11977 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11978 msm_routing_get_audio_mixer,
11979 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011980 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11981 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11982 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11983 msm_routing_put_audio_mixer),
11984 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11985 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11986 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11987 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011988};
11989
11990static const struct snd_kcontrol_new mmul29_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011991 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11992 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011993 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11994 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011995 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11996 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011997 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11998 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011999 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12000 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012001 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12002 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012003 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12004 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012005 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12006 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012007 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12008 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012009 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12010 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012011 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12012 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012013 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12014 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012015 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
12016 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012017 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12018 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012019 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
12020 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012021 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12022 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080012023 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12024 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
12025 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12026 msm_routing_put_audio_mixer),
12027 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12028 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
12029 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12030 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012031 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12032 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12033 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12034 msm_routing_put_audio_mixer),
12035 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12036 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12037 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12038 msm_routing_put_audio_mixer),
12039 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12040 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12041 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12042 msm_routing_put_audio_mixer),
12043 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12044 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12045 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12046 msm_routing_put_audio_mixer),
12047 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12048 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12049 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12050 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012051 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12052 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12053 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12054 msm_routing_get_audio_mixer,
12055 msm_routing_put_audio_mixer),
12056 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12057 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12058 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12059 msm_routing_get_audio_mixer,
12060 msm_routing_put_audio_mixer),
12061 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12062 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12063 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12064 msm_routing_get_audio_mixer,
12065 msm_routing_put_audio_mixer),
12066 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12067 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12068 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12069 msm_routing_get_audio_mixer,
12070 msm_routing_put_audio_mixer),
12071 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12072 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12073 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12074 msm_routing_get_audio_mixer,
12075 msm_routing_put_audio_mixer),
12076 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12077 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12078 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12079 msm_routing_get_audio_mixer,
12080 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012081 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12082 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12083 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12084 msm_routing_put_audio_mixer),
12085 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12086 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12087 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12088 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012089};
12090
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012091static const struct snd_kcontrol_new pri_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012092 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12093 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012094 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12095 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012096 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12097 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012098 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12099 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012100 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12101 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012102 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12103 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012104 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12105 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012106 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12107 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012108 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12109 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012110 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12111 msm_routing_put_voice_mixer),
12112};
12113
12114static const struct snd_kcontrol_new sec_i2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012115 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12116 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012117 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12118 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012119 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12120 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012121 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12122 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012123 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12124 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012125 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12126 msm_routing_put_voice_mixer),
12127};
12128
12129static const struct snd_kcontrol_new sec_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012130 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12131 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012132 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12133 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012134 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12135 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012136 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12137 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012138 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12139 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012140 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12141 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012142 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12143 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012144 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12145 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012146 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12147 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012148 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12149 msm_routing_put_voice_mixer),
12150};
12151
12152static const struct snd_kcontrol_new slimbus_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012153 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12154 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012155 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12156 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012157 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12158 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012159 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12160 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012161 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12162 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012163 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12164 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012165 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12166 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012167 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12168 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012169 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12170 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012171 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12172 msm_routing_put_voice_mixer),
12173};
12174
12175static const struct snd_kcontrol_new slimbus_6_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012176 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12177MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012178 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12179 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012180 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12181MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012182 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12183 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012184 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12185MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012186 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12187 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012188 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12189MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012190 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12191 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012192 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12193MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012194 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12195 msm_routing_put_voice_mixer),
12196};
12197
12198static const struct snd_kcontrol_new usb_audio_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012199 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12200 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012201 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12202 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012203 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12204 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012205 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12206 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012207 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12208 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012209 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12210 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012211 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12212 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012213 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12214 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012215 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12216 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012217 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12218 msm_routing_put_voice_mixer),
12219};
12220
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012221static const struct snd_kcontrol_new display_port_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012222 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12223MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012224 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12225 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012226 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12227MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012228 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12229 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012230 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12231MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012232 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12233 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012234 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12235MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012236 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12237 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012238 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12239MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012240 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12241 msm_routing_put_voice_mixer),
12242};
12243
Karthikeyan Mani57550082018-05-03 18:43:58 -070012244static const struct snd_kcontrol_new display_port_rx1_voice_mixer_controls[] = {
12245 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12246 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12247 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12248 msm_routing_put_voice_mixer),
12249 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12250 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12251 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12252 msm_routing_put_voice_mixer),
12253 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12254 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12255 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12256 msm_routing_put_voice_mixer),
12257 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12258 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12259 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12260 msm_routing_put_voice_mixer),
12261 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12262 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12263 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12264 msm_routing_put_voice_mixer),
12265};
12266
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012267static const struct snd_kcontrol_new bt_sco_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012268 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12269 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012270 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12271 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012272 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12273 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012274 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12275 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012276 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12277 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012278 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12279 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012280 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12281 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012282 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12283 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012284 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12285 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012286 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12287 msm_routing_put_voice_mixer),
12288};
12289
12290static const struct snd_kcontrol_new mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012291 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12292 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012293 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12294 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012295 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12296 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012297 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12298 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012299 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12300 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012301 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12302 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012303 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12304 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012305 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12306 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012307 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12308 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012309 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12310 msm_routing_put_voice_mixer),
12311};
12312
12313static const struct snd_kcontrol_new pri_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012314 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12315MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012316 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12317 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012318 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12319MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012320 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12321 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012322 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12323MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012324 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12325 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012326 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12327MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012328 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12329 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012330 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12331MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012332 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12333 msm_routing_put_voice_mixer),
12334};
12335
12336static const struct snd_kcontrol_new int0_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012337 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12338MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012339 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12340 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012341 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12342MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012343 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12344 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012345 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12346MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012347 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12348 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012349 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12350MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012351 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12352 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012353 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12354MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012355 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12356 msm_routing_put_voice_mixer),
12357};
12358
12359static const struct snd_kcontrol_new int4_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012360 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12361 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012362 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12363 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012364 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12365 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012366 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12367 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012368 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12369 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012370 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12371 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012372 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12373 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012374 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12375 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012376 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12377 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012378 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12379 msm_routing_put_voice_mixer),
12380};
12381
12382static const struct snd_kcontrol_new tert_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012383 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12384 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012385 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12386 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012387 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12388 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012389 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12390 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012391 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12392 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012393 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12394 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012395 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12396 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012397 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12398 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012399 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12400 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012401 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12402 msm_routing_put_voice_mixer),
12403};
12404
12405static const struct snd_kcontrol_new quat_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012406 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12407 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012408 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12409 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012410 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12411 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012412 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12413 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012414 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12415 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012416 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12417 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012418 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12419 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012420 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12421 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012422 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12423 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012424 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12425 msm_routing_put_voice_mixer),
12426};
12427
12428static const struct snd_kcontrol_new quin_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012429 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12430 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012431 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12432 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012433 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12434 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012435 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12436 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012437 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12438 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012439 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12440 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012441 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12442 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012443 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12444 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012445 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12446 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012447 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12448 msm_routing_put_voice_mixer),
12449};
12450
12451static const struct snd_kcontrol_new afe_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012452 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12453 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012454 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12455 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012456 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12457 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012458 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12459 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012460 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12461 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012462 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12463 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012464 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12465 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012466 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12467 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012468 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12469 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012470 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12471 msm_routing_put_voice_mixer),
12472};
12473
12474static const struct snd_kcontrol_new aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012475 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12476 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012477 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12478 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012479 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12480 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012481 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12482 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012483 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12484 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012485 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12486 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012487 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12488 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012489 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12490 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012491 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12492 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012493 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12494 msm_routing_put_voice_mixer),
12495};
12496
12497static const struct snd_kcontrol_new sec_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012498 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12499MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012500 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12501 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012502 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12503MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012504 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12505 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012506 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12507MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012508 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12509 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012510 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12511MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012512 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12513 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012514 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12515MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012516 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12517 msm_routing_put_voice_mixer),
12518};
12519
12520static const struct snd_kcontrol_new tert_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012521 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12522MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012523 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12524 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012525 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12526MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012527 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12528 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012529 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12530MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012531 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12532 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012533 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12534MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012535 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12536 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012537 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12538MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012539 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12540 msm_routing_put_voice_mixer),
12541};
12542
12543static const struct snd_kcontrol_new quat_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012544 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12545MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012546 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12547 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012548 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12549MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012550 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12551 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012552 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12553MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012554 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12555 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012556 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12557MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012558 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12559 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012560 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12561MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012562 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12563 msm_routing_put_voice_mixer),
12564};
12565
Rohit Kumara5077932017-09-10 22:05:05 +053012566static const struct snd_kcontrol_new quin_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012567 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12568MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012569 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12570 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012571 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12572MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012573 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12574 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012575 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12576MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012577 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12578 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012579 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12580MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012581 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12582 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012583 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12584MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012585 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12586 msm_routing_put_voice_mixer),
12587};
12588
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012589static const struct snd_kcontrol_new hdmi_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012590 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12591 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012592 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12593 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012594 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12595 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012596 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12597 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012598 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12599 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012600 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12601 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012602 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12603 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012604 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12605 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012606 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12607 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012608 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12609 msm_routing_put_voice_mixer),
12610};
12611
12612static const struct snd_kcontrol_new slimbus_7_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012613 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12614MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012615 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12616 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012617 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12618MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012619 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12620 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012621 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12622MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012623 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12624 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012625 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12626MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012627 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12628 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012629 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12630MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012631 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12632 msm_routing_put_voice_mixer),
12633};
12634
12635static const struct snd_kcontrol_new slimbus_8_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012636 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12637 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012638 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12639 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012640 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12641 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012642 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12643 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012644 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12645 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012646 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12647 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012648 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12649 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012650 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12651 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012652 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12653 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012654 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12655 msm_routing_put_voice_mixer),
12656};
12657
12658static const struct snd_kcontrol_new quat_tdm_rx_2_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012659 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12660 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012661 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12662 msm_routing_put_voice_mixer),
12663};
12664
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012665static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_voice_mixer_controls[] = {
12666 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12667 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12668 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12669 msm_routing_put_voice_mixer),
12670 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12671 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12672 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12673 msm_routing_put_voice_mixer),
12674 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12675 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12676 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12677 msm_routing_put_voice_mixer),
12678 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12679 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12680 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12681 msm_routing_put_voice_mixer),
12682 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12683 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12684 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12685 msm_routing_put_voice_mixer),
12686};
12687
12688static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_voice_mixer_controls[] = {
12689 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12690 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12691 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12692 msm_routing_put_voice_mixer),
12693 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12694 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12695 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12696 msm_routing_put_voice_mixer),
12697 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12698 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12699 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12700 msm_routing_put_voice_mixer),
12701 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12702 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12703 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12704 msm_routing_put_voice_mixer),
12705 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12706 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12707 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12708 msm_routing_put_voice_mixer),
12709};
12710
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012711static const struct snd_kcontrol_new rx_cdc_dma_rx_0_voice_mixer_controls[] = {
12712 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12713 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12714 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12715 msm_routing_put_voice_mixer),
12716 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12717 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12718 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12719 msm_routing_put_voice_mixer),
12720 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12721 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12722 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12723 msm_routing_put_voice_mixer),
12724 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12725 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12726 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12727 msm_routing_put_voice_mixer),
12728 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12729 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12730 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12731 msm_routing_put_voice_mixer),
12732};
12733
12734static const struct snd_kcontrol_new rx_cdc_dma_rx_1_voice_mixer_controls[] = {
12735 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12736 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12737 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12738 msm_routing_put_voice_mixer),
12739 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12740 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12741 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12742 msm_routing_put_voice_mixer),
12743 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12744 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12745 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12746 msm_routing_put_voice_mixer),
12747 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12748 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12749 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12750 msm_routing_put_voice_mixer),
12751 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12752 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12753 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12754 msm_routing_put_voice_mixer),
12755};
12756
12757static const struct snd_kcontrol_new rx_cdc_dma_rx_2_voice_mixer_controls[] = {
12758 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12759 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12760 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12761 msm_routing_put_voice_mixer),
12762 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12763 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12764 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12765 msm_routing_put_voice_mixer),
12766 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12767 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12768 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12769 msm_routing_put_voice_mixer),
12770 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12771 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12772 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12773 msm_routing_put_voice_mixer),
12774 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12775 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12776 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12777 msm_routing_put_voice_mixer),
12778};
12779
12780static const struct snd_kcontrol_new rx_cdc_dma_rx_3_voice_mixer_controls[] = {
12781 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12782 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12783 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12784 msm_routing_put_voice_mixer),
12785 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12786 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12787 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12788 msm_routing_put_voice_mixer),
12789 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12790 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12791 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12792 msm_routing_put_voice_mixer),
12793 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12794 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12795 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12796 msm_routing_put_voice_mixer),
12797 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12798 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12799 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12800 msm_routing_put_voice_mixer),
12801};
12802
12803static const struct snd_kcontrol_new rx_cdc_dma_rx_4_voice_mixer_controls[] = {
12804 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12805 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12806 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12807 msm_routing_put_voice_mixer),
12808 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12809 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12810 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12811 msm_routing_put_voice_mixer),
12812 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12813 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12814 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12815 msm_routing_put_voice_mixer),
12816 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12817 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12818 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12819 msm_routing_put_voice_mixer),
12820 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12821 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12822 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12823 msm_routing_put_voice_mixer),
12824};
12825
12826static const struct snd_kcontrol_new rx_cdc_dma_rx_5_voice_mixer_controls[] = {
12827 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12828 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12829 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12830 msm_routing_put_voice_mixer),
12831 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12832 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12833 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12834 msm_routing_put_voice_mixer),
12835 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12836 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12837 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12838 msm_routing_put_voice_mixer),
12839 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12840 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12841 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12842 msm_routing_put_voice_mixer),
12843 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12844 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12845 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12846 msm_routing_put_voice_mixer),
12847};
12848
12849static const struct snd_kcontrol_new rx_cdc_dma_rx_6_voice_mixer_controls[] = {
12850 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12851 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12852 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12853 msm_routing_put_voice_mixer),
12854 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12855 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12856 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12857 msm_routing_put_voice_mixer),
12858 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12859 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12860 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12861 msm_routing_put_voice_mixer),
12862 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12863 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12864 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12865 msm_routing_put_voice_mixer),
12866 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12867 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12868 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12869 msm_routing_put_voice_mixer),
12870};
12871
12872static const struct snd_kcontrol_new rx_cdc_dma_rx_7_voice_mixer_controls[] = {
12873 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12874 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12875 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12876 msm_routing_put_voice_mixer),
12877 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12878 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12879 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12880 msm_routing_put_voice_mixer),
12881 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12882 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12883 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12884 msm_routing_put_voice_mixer),
12885 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12886 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12887 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12888 msm_routing_put_voice_mixer),
12889 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12890 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12891 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12892 msm_routing_put_voice_mixer),
12893};
12894
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012895static const struct snd_kcontrol_new stub_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012896 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12897 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012898 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12899 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012900 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12901 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012902 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12903 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012904};
12905
12906static const struct snd_kcontrol_new slimbus_1_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012907 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12908 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012909 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12910 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012911 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12912 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012913 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12914 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012915};
12916
12917static const struct snd_kcontrol_new slimbus_3_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012918 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12919 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012920 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12921 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012922 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12923 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012924 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12925 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012926};
12927
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012928static const struct snd_kcontrol_new tx_voicemmode1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012929 SOC_DOUBLE_EXT("PRI_TX_MMode1", SND_SOC_NOPM,
12930 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012931 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12932 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012933 SOC_DOUBLE_EXT("MI2S_TX_MMode1", SND_SOC_NOPM,
12934 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012935 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12936 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012937 SOC_DOUBLE_EXT("SLIM_0_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012938 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12939 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012940 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012941 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12942 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012943 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012944 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
12945 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012946 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012947 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
12948 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012949 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012950 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12951 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012952 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012953 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12954 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012955 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012956 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12957 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012958 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053012959 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12960 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012961 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012962 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
12963 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012964 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012965 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
12966 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012967 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012968 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
12969 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012970 SOC_DOUBLE_EXT("SLIM_7_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012971 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12972 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012973 SOC_DOUBLE_EXT("SLIM_8_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012974 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12975 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012976 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode1", SND_SOC_NOPM,
12977 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012978 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12979 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012980 SOC_DOUBLE_EXT("QUAT_TDM_TX_0_MMode1", SND_SOC_NOPM,
12981MSM_BACKEND_DAI_QUAT_TDM_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012982 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012983 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
12984 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
12985 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12986 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
12987 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
12988 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012989 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
12990 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
12991 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12992 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
12993 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
12994 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12995 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
12996 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
12997 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12998 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode1", SND_SOC_NOPM,
12999 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
13000 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13001 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode1", SND_SOC_NOPM,
13002 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE1,
13003 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13004 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode1", SND_SOC_NOPM,
13005 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE1,
13006 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013007};
13008
13009static const struct snd_kcontrol_new tx_voicemmode2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013010 SOC_DOUBLE_EXT("PRI_TX_MMode2", SND_SOC_NOPM,
13011 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013012 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13013 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013014 SOC_DOUBLE_EXT("MI2S_TX_MMode2", SND_SOC_NOPM,
13015 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013016 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13017 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013018 SOC_DOUBLE_EXT("SLIM_0_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013019 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13020 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013021 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013022 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13023 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013024 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013025 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
13026 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013027 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013028 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
13029 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013030 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013031 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13032 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013033 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013034 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13035 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013036 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013037 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13038 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013039 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053013040 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13041 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013042 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013043 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
13044 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013045 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013046 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
13047 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013048 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013049 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
13050 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013051 SOC_DOUBLE_EXT("SLIM_7_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013052 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13053 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013054 SOC_DOUBLE_EXT("SLIM_8_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013055 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13056 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013057 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013058 MSM_BACKEND_DAI_USB_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13059 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013060 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
13061 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
13062 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13063 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
13064 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
13065 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013066 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
13067 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
13068 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13069 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
13070 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
13071 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13072 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
13073 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
13074 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13075 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode2", SND_SOC_NOPM,
13076 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE2,
13077 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13078 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode2", SND_SOC_NOPM,
13079 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE2,
13080 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13081 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode2", SND_SOC_NOPM,
13082 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE2,
13083 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013084};
13085
13086static const struct snd_kcontrol_new tx_voip_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013087 SOC_DOUBLE_EXT("PRI_TX_Voip", SND_SOC_NOPM,
13088 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013089 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13090 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013091 SOC_DOUBLE_EXT("MI2S_TX_Voip", SND_SOC_NOPM,
13092 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013093 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13094 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013095 SOC_DOUBLE_EXT("SLIM_0_TX_Voip", SND_SOC_NOPM,
13096 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013097 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13098 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013099 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_Voip", SND_SOC_NOPM,
13100 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013101 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13102 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013103 SOC_DOUBLE_EXT("AFE_PCM_TX_Voip", SND_SOC_NOPM,
13104 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013105 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13106 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013107 SOC_DOUBLE_EXT("AUX_PCM_TX_Voip", SND_SOC_NOPM,
13108 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013109 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13110 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013111 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13112 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013113 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13114 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013115 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13116 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013117 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13118 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013119 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13120 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013121 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13122 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013123 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13124 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013125 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13126 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013127 SOC_DOUBLE_EXT("PRI_MI2S_TX_Voip", SND_SOC_NOPM,
13128 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013129 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13130 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013131 SOC_DOUBLE_EXT("TERT_MI2S_TX_Voip", SND_SOC_NOPM,
13132 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013133 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13134 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013135 SOC_DOUBLE_EXT("INT3_MI2S_TX_Voip", SND_SOC_NOPM,
13136 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013137 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13138 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013139 SOC_DOUBLE_EXT("SLIM_7_TX_Voip", SND_SOC_NOPM,
13140 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013141 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13142 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013143 SOC_DOUBLE_EXT("SLIM_8_TX_Voip", SND_SOC_NOPM,
13144 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013145 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13146 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013147 SOC_DOUBLE_EXT("USB_AUDIO_TX_Voip", SND_SOC_NOPM,
13148 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013149 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13150 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013151 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
13152 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
13153 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13154 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
13155 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
13156 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013157 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
13158 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
13159 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13160 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
13161 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
13162 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13163 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
13164 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
13165 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13166 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_Voip", SND_SOC_NOPM,
13167 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOIP,
13168 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13169 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_Voip", SND_SOC_NOPM,
13170 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOIP,
13171 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13172 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_Voip", SND_SOC_NOPM,
13173 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOIP,
13174 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013175};
13176
13177static const struct snd_kcontrol_new tx_voice_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013178 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
13179 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013180 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13181 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013182 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13183 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013184 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13185 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013186 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13187 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013188 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13189 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013190 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
13191 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013192 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13193 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013194 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13195 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013196 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13197 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013198 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13199 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013200 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13201 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013202 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13203 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013204 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13205 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013206 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13207 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013208 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13209 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013210 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13211 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013212 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13213 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013214 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13215 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013216 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13217 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013218 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13219 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013220 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13221 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013222 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13223 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013224 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13225 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013226 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13227 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013228 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13229 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013230 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13231 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013232 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13233 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013234 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13235 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013236 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13237 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013238 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
13239 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013240 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13241 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013242 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13243 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013244 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13245 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013246 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13247 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013248 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13249 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013250 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13251 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013252 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13253 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013254 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13255 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
13256 1, 0, msm_routing_get_voice_stub_mixer,
13257 msm_routing_put_voice_stub_mixer),
13258 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13259 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
13260 1, 0, msm_routing_get_voice_stub_mixer,
13261 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013262 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13263 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
13264 1, 0, msm_routing_get_voice_stub_mixer,
13265 msm_routing_put_voice_stub_mixer),
13266 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13267 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
13268 1, 0, msm_routing_get_voice_stub_mixer,
13269 msm_routing_put_voice_stub_mixer),
13270 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13271 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
13272 1, 0, msm_routing_get_voice_stub_mixer,
13273 msm_routing_put_voice_stub_mixer),
13274 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13275 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE_STUB,
13276 1, 0, msm_routing_get_voice_stub_mixer,
13277 msm_routing_put_voice_stub_mixer),
13278 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13279 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE_STUB,
13280 1, 0, msm_routing_get_voice_stub_mixer,
13281 msm_routing_put_voice_stub_mixer),
13282 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13283 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE_STUB,
13284 1, 0, msm_routing_get_voice_stub_mixer,
13285 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013286};
13287
13288static const struct snd_kcontrol_new tx_voice2_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013289 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
13290 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013291 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13292 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013293 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13294 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013295 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13296 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013297 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
13298 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013299 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13300 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013301 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13302 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013303 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13304 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013305 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13306 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013307 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13308 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013309 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13310 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013311 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13312 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013313 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13314 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013315 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13316 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013317 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13318 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013319 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13320 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013321 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13322 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013323 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13324 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013325 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
13326 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013327 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13328 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013329 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13330 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013331 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13332 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013333 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13334 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013335 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13336 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013337 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13338 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013339 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13340 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013341 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13342 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013343 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13344 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013345 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13346 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013347 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13348 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013349 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13350 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
13351 1, 0, msm_routing_get_voice_stub_mixer,
13352 msm_routing_put_voice_stub_mixer),
13353 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13354 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
13355 1, 0, msm_routing_get_voice_stub_mixer,
13356 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013357 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13358 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
13359 1, 0, msm_routing_get_voice_stub_mixer,
13360 msm_routing_put_voice_stub_mixer),
13361 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13362 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
13363 1, 0, msm_routing_get_voice_stub_mixer,
13364 msm_routing_put_voice_stub_mixer),
13365 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13366 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
13367 1, 0, msm_routing_get_voice_stub_mixer,
13368 msm_routing_put_voice_stub_mixer),
13369 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13370 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE2_STUB,
13371 1, 0, msm_routing_get_voice_stub_mixer,
13372 msm_routing_put_voice_stub_mixer),
13373 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13374 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE2_STUB,
13375 1, 0, msm_routing_get_voice_stub_mixer,
13376 msm_routing_put_voice_stub_mixer),
13377 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13378 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE2_STUB,
13379 1, 0, msm_routing_get_voice_stub_mixer,
13380 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013381};
13382
13383static const struct snd_kcontrol_new tx_volte_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013384 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
13385 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013386 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13387 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013388 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13389 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013390 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13391 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013392 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
13393 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013394 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13395 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013396 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13397 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013398 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13399 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013400 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13401 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013402 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13403 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013404 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13405 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013406 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13407 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013408 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13409 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013410 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13411 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013412 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13413 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013414 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13415 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013416 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13417 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013418 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13419 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013420 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
13421 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013422 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13423 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013424 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13425 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013426 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13427 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013428 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13429 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013430 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13431 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013432 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13433 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013434 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13435 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013436 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13437 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013438 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13439 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013440 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13441 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013442 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13443 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013444 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13445 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
13446 1, 0, msm_routing_get_voice_stub_mixer,
13447 msm_routing_put_voice_stub_mixer),
13448 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13449 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
13450 1, 0, msm_routing_get_voice_stub_mixer,
13451 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013452 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13453 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
13454 1, 0, msm_routing_get_voice_stub_mixer,
13455 msm_routing_put_voice_stub_mixer),
13456 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13457 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
13458 1, 0, msm_routing_get_voice_stub_mixer,
13459 msm_routing_put_voice_stub_mixer),
13460 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13461 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
13462 1, 0, msm_routing_get_voice_stub_mixer,
13463 msm_routing_put_voice_stub_mixer),
13464 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13465 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOLTE_STUB,
13466 1, 0, msm_routing_get_voice_stub_mixer,
13467 msm_routing_put_voice_stub_mixer),
13468 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13469 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOLTE_STUB,
13470 1, 0, msm_routing_get_voice_stub_mixer,
13471 msm_routing_put_voice_stub_mixer),
13472 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13473 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOLTE_STUB,
13474 1, 0, msm_routing_get_voice_stub_mixer,
13475 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013476};
13477
13478static const struct snd_kcontrol_new tx_qchat_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013479 SOC_DOUBLE_EXT("PRI_TX_QCHAT", SND_SOC_NOPM,
13480 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013481 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13482 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013483 SOC_DOUBLE_EXT("SLIM_0_TX_QCHAT", SND_SOC_NOPM,
13484 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013485 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13486 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013487 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_QCHAT", SND_SOC_NOPM,
13488 MSM_BACKEND_DAI_INT_BT_SCO_TX,
13489 MSM_FRONTEND_DAI_QCHAT, 1, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013490 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013491 SOC_DOUBLE_EXT("AFE_PCM_TX_QCHAT", SND_SOC_NOPM,
13492 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013493 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13494 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013495 SOC_DOUBLE_EXT("AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13496 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013497 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13498 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013499 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13500 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013501 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13502 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013503 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13504 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013505 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13506 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013507 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13508 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013509 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13510 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013511 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13512 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013513 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13514 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013515 SOC_DOUBLE_EXT("MI2S_TX_QCHAT", SND_SOC_NOPM,
13516 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013517 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13518 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013519 SOC_DOUBLE_EXT("PRI_MI2S_TX_QCHAT", SND_SOC_NOPM,
13520 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013521 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13522 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013523 SOC_DOUBLE_EXT("TERT_MI2S_TX_QCHAT", SND_SOC_NOPM,
13524 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013525 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13526 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013527 SOC_DOUBLE_EXT("INT3_MI2S_TX_QCHAT", SND_SOC_NOPM,
13528 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013529 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13530 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013531 SOC_DOUBLE_EXT("SLIM_7_TX_QCHAT", SND_SOC_NOPM,
13532 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013533 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13534 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013535 SOC_DOUBLE_EXT("SLIM_8_TX_QCHAT", SND_SOC_NOPM,
13536 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013537 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13538 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013539 SOC_DOUBLE_EXT("USB_AUDIO_TX_QCHAT", SND_SOC_NOPM,
13540 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013541 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13542 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013543 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
13544 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
13545 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13546 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
13547 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
13548 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013549 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
13550 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
13551 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13552 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
13553 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
13554 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13555 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
13556 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
13557 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13558 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_QCHAT", SND_SOC_NOPM,
13559 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_QCHAT,
13560 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13561 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_QCHAT", SND_SOC_NOPM,
13562 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_QCHAT,
13563 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13564 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_QCHAT", SND_SOC_NOPM,
13565 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_QCHAT,
13566 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013567};
13568
13569static const struct snd_kcontrol_new int0_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013570 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13571 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013572 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13573 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013574 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13575 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013576 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13577 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013578 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13579 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013580 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13581 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013582 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13583 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013584 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13585 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013586 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13587 MSM_BACKEND_DAI_INT0_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013588 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13589 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013590 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13591 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013592 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13593 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013594 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13595 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013596 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13597 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013598 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13599 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013600 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13601 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013602 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13603 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013604 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13605 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013606 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13607 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013608 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13609 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013610 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13611 MSM_BACKEND_DAI_INT0_MI2S_RX,
13612 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
13613 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013614};
13615
13616static const struct snd_kcontrol_new int4_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013617 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13618 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013619 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13620 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013621 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13622 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013623 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13624 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013625 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13626 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013627 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13628 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013629 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13630 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013631 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13632 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013633 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13634 MSM_BACKEND_DAI_INT4_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013635 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13636 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013637 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13638 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013639 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13640 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013641 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13642 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013643 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13644 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013645 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13646 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013647 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13648 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013649 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13650 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013651 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13652 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013653 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13654 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013655 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13656 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013657 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13658 MSM_BACKEND_DAI_INT4_MI2S_RX,
13659 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
13660 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013661};
13662
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053013663static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_port_mixer_controls[] = {
13664 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13665 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13666 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, 1, 0, msm_routing_get_port_mixer,
13667 msm_routing_put_port_mixer),
13668 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13669 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13670 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
13671 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080013672 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13673 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13674 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13675 msm_routing_put_port_mixer),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053013676};
13677
13678static const struct snd_kcontrol_new rx_cdc_dma_rx_0_port_mixer_controls[] = {
13679 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13680 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13681 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
13682 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080013683 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13684 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13685 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13686 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013687 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13688 MSM_BACKEND_DAI_INT4_MI2S_RX,
13689 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
13690 msm_routing_put_port_mixer),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053013691};
13692
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013693static const struct snd_kcontrol_new sbus_0_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013694 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13695 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013696 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13697 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013698 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13699 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013700 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13701 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013702 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13703 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013704 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13705 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013706 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13707 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013708 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13709 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013710 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13711 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013712 MSM_BACKEND_DAI_SLIMBUS_8_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
13715 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013716 MSM_BACKEND_DAI_AUXPCM_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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13719 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013720 MSM_BACKEND_DAI_SEC_AUXPCM_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("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13723 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013724 MSM_BACKEND_DAI_TERT_AUXPCM_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("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13727 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013728 MSM_BACKEND_DAI_QUAT_AUXPCM_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("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13731 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013732 MSM_BACKEND_DAI_QUIN_AUXPCM_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("MI2S_TX", SND_SOC_NOPM,
13735 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013736 MSM_BACKEND_DAI_MI2S_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("PRI_MI2S_TX", SND_SOC_NOPM,
13739 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013740 MSM_BACKEND_DAI_PRI_MI2S_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("SEC_MI2S_TX", SND_SOC_NOPM,
13743 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013744 MSM_BACKEND_DAI_SECONDARY_MI2S_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("TERT_MI2S_TX", SND_SOC_NOPM,
13747 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013748 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13749 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013750 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13751 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013752 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13753 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013754 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13755 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013756 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13757 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013758 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13759 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013760 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13761 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013762 SOC_DOUBLE_EXT("PRI_MI2S_RX", SND_SOC_NOPM,
13763 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013764 MSM_BACKEND_DAI_PRI_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13765 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013766 SOC_DOUBLE_EXT("SEC_MI2S_RX", SND_SOC_NOPM,
13767 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013768 MSM_BACKEND_DAI_SECONDARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13769 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013770 SOC_DOUBLE_EXT("TERT_MI2S_RX", SND_SOC_NOPM,
13771 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013772 MSM_BACKEND_DAI_TERTIARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13773 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013774 SOC_DOUBLE_EXT("QUAT_MI2S_RX", SND_SOC_NOPM,
13775 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013776 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13777 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013778 SOC_DOUBLE_EXT("QUIN_MI2S_RX", SND_SOC_NOPM,
13779 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Surendar Karka3ef3d812018-09-28 18:52:35 +053013780 MSM_BACKEND_DAI_QUINARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13781 msm_routing_put_port_mixer),
13782 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13783 MSM_BACKEND_DAI_SLIMBUS_0_RX,
13784 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
Rohit Kumara5077932017-09-10 22:05:05 +053013785 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013786};
13787
13788static const struct snd_kcontrol_new aux_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013789 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13790 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013791 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13792 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013793 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13794 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013795 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13796 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013797 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13798 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013799 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13800 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013801 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13802 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013803 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13804 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013805 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13806 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013807 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
13808 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013809 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13810 MSM_BACKEND_DAI_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080013811 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13812 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013813};
13814
13815static const struct snd_kcontrol_new sec_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013816 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13817 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013818 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13819 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013820 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13821 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013822 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13823 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013824 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13825 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013826 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13827 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013828 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13829 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080013830 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13831 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013832};
13833
13834static const struct snd_kcontrol_new tert_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013835 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13836 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013837 MSM_BACKEND_DAI_TERT_AUXPCM_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("SLIM_0_TX", SND_SOC_NOPM,
13840 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013841 MSM_BACKEND_DAI_SLIMBUS_0_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
13844 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013845 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13846 msm_routing_put_port_mixer),
13847};
13848
13849static const struct snd_kcontrol_new quat_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013850 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13851 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013852 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13853 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013854 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13855 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013856 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13857 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013858 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13859 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013860 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13861 msm_routing_put_port_mixer),
13862};
13863
Rohit Kumara5077932017-09-10 22:05:05 +053013864static const struct snd_kcontrol_new quin_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013865 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13866 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013867 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13868 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013869 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13870 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013871 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13872 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013873 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13874 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013875 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13876 msm_routing_put_port_mixer),
13877};
13878
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013879static const struct snd_kcontrol_new sbus_1_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013880 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13881 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013882 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13883 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013884 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13885 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013886 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0, msm_routing_get_port_mixer,
13887 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013888 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13889 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013890 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13891 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013892 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13893 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013894 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13895 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013896 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13897 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013898 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13899 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013900 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13901 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013902 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13903 msm_routing_put_port_mixer),
13904};
13905
13906static const struct snd_kcontrol_new sbus_3_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013907 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_RX", SND_SOC_NOPM,
13908 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013909 MSM_BACKEND_DAI_INT_BT_SCO_RX, 1, 0, msm_routing_get_port_mixer,
13910 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013911 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13912 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013913 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13914 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013915 SOC_DOUBLE_EXT("AFE_PCM_RX", SND_SOC_NOPM,
13916 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013917 MSM_BACKEND_DAI_AFE_PCM_RX, 1, 0, msm_routing_get_port_mixer,
13918 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013919 SOC_DOUBLE_EXT("AUX_PCM_RX", SND_SOC_NOPM,
13920 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013921 MSM_BACKEND_DAI_AUXPCM_RX, 1, 0, msm_routing_get_port_mixer,
13922 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013923 SOC_DOUBLE_EXT("SLIM_0_RX", SND_SOC_NOPM,
13924 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013925 MSM_BACKEND_DAI_SLIMBUS_0_RX, 1, 0, msm_routing_get_port_mixer,
13926 msm_routing_put_port_mixer),
13927};
13928
13929static const struct snd_kcontrol_new sbus_6_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013930 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13931 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013932 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13933 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013934 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13935 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013936 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13937 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013938 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13939 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013940 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13941 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013942 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13943 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013944 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13945 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013946 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13947 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013948 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13949 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013950 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13951 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013952 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13953 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013954 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13955 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013956 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13957 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013958 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13959 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013960 MSM_BACKEND_DAI_MI2S_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("PRI_MI2S_TX", SND_SOC_NOPM,
13963 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013964 MSM_BACKEND_DAI_PRI_MI2S_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("TERT_MI2S_TX", SND_SOC_NOPM,
13967 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013968 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13969 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013970 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13971 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013972 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13973 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013974 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13975 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013976 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13977 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013978 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13979 MSM_BACKEND_DAI_SLIMBUS_6_RX,
13980 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
13981 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013982};
13983
13984static const struct snd_kcontrol_new bt_sco_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013985 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13986 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013987 MSM_BACKEND_DAI_SLIMBUS_1_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("SLIM_0_TX", SND_SOC_NOPM,
13990 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013991 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13992 msm_routing_put_port_mixer),
13993};
13994
13995static const struct snd_kcontrol_new afe_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013996 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13997 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013998 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13999 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014000 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14001 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014002 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14003 msm_routing_put_port_mixer),
14004};
14005
14006
14007static const struct snd_kcontrol_new hdmi_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014008 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14009 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014010 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14011 msm_routing_put_port_mixer),
14012};
14013
14014static const struct snd_kcontrol_new display_port_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014015 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14016 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014017 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14018 msm_routing_put_port_mixer),
14019};
14020
Karthikeyan Mani57550082018-05-03 18:43:58 -070014021static const struct snd_kcontrol_new display_port_rx1_port_mixer_controls[] = {
14022 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14023 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
14024 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14025 msm_routing_put_port_mixer),
14026};
14027
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014028static const struct snd_kcontrol_new sec_i2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014029 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14030 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014031 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14032 msm_routing_put_port_mixer),
14033};
14034
14035static const struct snd_kcontrol_new mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014036 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14037 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014038 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14039 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014040 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14041 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014042 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14043 msm_routing_put_port_mixer),
14044};
14045
14046static const struct snd_kcontrol_new primary_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014047 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14048 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014049 MSM_BACKEND_DAI_SECONDARY_MI2S_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("TERT_MI2S_TX", SND_SOC_NOPM,
14052 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014053 MSM_BACKEND_DAI_TERTIARY_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("INTERNAL_FM_TX", SND_SOC_NOPM,
14056 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014057 MSM_BACKEND_DAI_INT_FM_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("QUAT_MI2S_TX", SND_SOC_NOPM,
14060 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014061 MSM_BACKEND_DAI_QUATERNARY_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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14064 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014065 MSM_BACKEND_DAI_INT_BT_SCO_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("PRI_MI2S_TX", SND_SOC_NOPM,
14068 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014069 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14070 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014071 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14072 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014073 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14074 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014075 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14076 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014077 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14078 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014079 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14080 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014081 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14082 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014083 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14084 MSM_BACKEND_DAI_PRI_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080014085 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14086 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014087};
14088
14089static const struct snd_kcontrol_new usb_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014090 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
14091 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014092 MSM_BACKEND_DAI_USB_TX, 1, 0, msm_routing_get_port_mixer,
14093 msm_routing_put_port_mixer),
14094};
14095
14096static const struct snd_kcontrol_new quat_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014097 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14098 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014099 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14100 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014101 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14102 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014103 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14104 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014105 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14106 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014107 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14108 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014109 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14110 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014111 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14112 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014113 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14114 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014115 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14116 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014117 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14118 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014119 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14120 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014121 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14122 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014123 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14124 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014125 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14126 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014127 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14128 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014129 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14130 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014131 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14132 msm_routing_put_port_mixer),
14133};
14134
Rohit Kumara5077932017-09-10 22:05:05 +053014135static const struct snd_kcontrol_new quin_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014136 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14137 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014138 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14139 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014140 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14141 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014142 MSM_BACKEND_DAI_TERTIARY_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("SLIM_0_TX", SND_SOC_NOPM,
14145 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014146 MSM_BACKEND_DAI_SLIMBUS_0_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("QUAT_MI2S_TX", SND_SOC_NOPM,
14149 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014150 MSM_BACKEND_DAI_QUATERNARY_MI2S_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("QUIN_MI2S_TX", SND_SOC_NOPM,
14153 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014154 MSM_BACKEND_DAI_QUINARY_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("SEC_MI2S_TX", SND_SOC_NOPM,
14157 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014158 MSM_BACKEND_DAI_SECONDARY_MI2S_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("SLIM_8_TX", SND_SOC_NOPM,
14161 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014162 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14163 msm_routing_put_port_mixer),
14164};
14165
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014166static const struct snd_kcontrol_new pri_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014167 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14168 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014169 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14170 msm_routing_get_port_mixer,
14171 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014172 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14173 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014174 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14175 msm_routing_get_port_mixer,
14176 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014177 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14178 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014179 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14180 msm_routing_get_port_mixer,
14181 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014182 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14183 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014184 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14185 msm_routing_get_port_mixer,
14186 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014187 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14188 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014189 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14190 msm_routing_get_port_mixer,
14191 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014192 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14193 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014194 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14195 msm_routing_get_port_mixer,
14196 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014197 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14198 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014199 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14200 msm_routing_get_port_mixer,
14201 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014202 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14203 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014204 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14205 msm_routing_get_port_mixer,
14206 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014207 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14208 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014209 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14210 msm_routing_get_port_mixer,
14211 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014212 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14213 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014214 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14215 msm_routing_get_port_mixer,
14216 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014217 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14218 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014219 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14220 msm_routing_get_port_mixer,
14221 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014222 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14223 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014224 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14225 msm_routing_get_port_mixer,
14226 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014227 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14228 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014229 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14230 msm_routing_get_port_mixer,
14231 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014232 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14233 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014234 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14235 msm_routing_get_port_mixer,
14236 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014237 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14238 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014239 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14240 msm_routing_get_port_mixer,
14241 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014242 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14243 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014244 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14245 msm_routing_get_port_mixer,
14246 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014247 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14248 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014249 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14250 msm_routing_get_port_mixer,
14251 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014252 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14253 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014254 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14255 msm_routing_get_port_mixer,
14256 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014257 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14258 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014259 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14260 msm_routing_get_port_mixer,
14261 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014262 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14263 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014264 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14265 msm_routing_get_port_mixer,
14266 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014267};
14268
14269static const struct snd_kcontrol_new pri_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014270 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14271 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014272 MSM_BACKEND_DAI_PRI_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("SEC_MI2S_TX", SND_SOC_NOPM,
14276 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014277 MSM_BACKEND_DAI_SECONDARY_MI2S_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("QUAT_MI2S_TX", SND_SOC_NOPM,
14281 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014282 MSM_BACKEND_DAI_QUATERNARY_MI2S_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("INTERNAL_FM_TX", SND_SOC_NOPM,
14286 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014287 MSM_BACKEND_DAI_INT_FM_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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14291 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014292 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
14296 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014297 MSM_BACKEND_DAI_AFE_PCM_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
14301 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014302 MSM_BACKEND_DAI_AUXPCM_TX, 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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14306 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014307 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 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_0", SND_SOC_NOPM,
14311 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014312 MSM_BACKEND_DAI_PRI_TDM_TX_0, 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_1", SND_SOC_NOPM,
14316 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014317 MSM_BACKEND_DAI_PRI_TDM_TX_1, 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("PRI_TDM_TX_2", SND_SOC_NOPM,
14321 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014322 MSM_BACKEND_DAI_PRI_TDM_TX_2, 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("PRI_TDM_TX_3", SND_SOC_NOPM,
14326 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014327 MSM_BACKEND_DAI_PRI_TDM_TX_3, 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_0", SND_SOC_NOPM,
14331 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014332 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 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_1", SND_SOC_NOPM,
14336 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014337 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 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("QUAT_TDM_TX_2", SND_SOC_NOPM,
14341 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014342 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 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("QUAT_TDM_TX_3", SND_SOC_NOPM,
14346 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014347 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 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_0", SND_SOC_NOPM,
14351 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014352 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 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_1", SND_SOC_NOPM,
14356 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014357 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14358 msm_routing_get_port_mixer,
14359 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014360 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14361 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014362 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14363 msm_routing_get_port_mixer,
14364 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014365 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14366 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014367 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14368 msm_routing_get_port_mixer,
14369 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014370};
14371
14372static const struct snd_kcontrol_new pri_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014373 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14374 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014375 MSM_BACKEND_DAI_PRI_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("SEC_MI2S_TX", SND_SOC_NOPM,
14379 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014380 MSM_BACKEND_DAI_SECONDARY_MI2S_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("QUAT_MI2S_TX", SND_SOC_NOPM,
14384 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014385 MSM_BACKEND_DAI_QUATERNARY_MI2S_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("INTERNAL_FM_TX", SND_SOC_NOPM,
14389 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014390 MSM_BACKEND_DAI_INT_FM_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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14394 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014395 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
14399 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014400 MSM_BACKEND_DAI_AFE_PCM_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
14404 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014405 MSM_BACKEND_DAI_AUXPCM_TX, 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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14409 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014410 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 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_0", SND_SOC_NOPM,
14414 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014415 MSM_BACKEND_DAI_PRI_TDM_TX_0, 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_1", SND_SOC_NOPM,
14419 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014420 MSM_BACKEND_DAI_PRI_TDM_TX_1, 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("PRI_TDM_TX_2", SND_SOC_NOPM,
14424 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014425 MSM_BACKEND_DAI_PRI_TDM_TX_2, 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("PRI_TDM_TX_3", SND_SOC_NOPM,
14429 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014430 MSM_BACKEND_DAI_PRI_TDM_TX_3, 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_0", SND_SOC_NOPM,
14434 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014435 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 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_1", SND_SOC_NOPM,
14439 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014440 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 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("QUAT_TDM_TX_2", SND_SOC_NOPM,
14444 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014445 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 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("QUAT_TDM_TX_3", SND_SOC_NOPM,
14449 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014450 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 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_0", SND_SOC_NOPM,
14454 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014455 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 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_1", SND_SOC_NOPM,
14459 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014460 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14461 msm_routing_get_port_mixer,
14462 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014463 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14464 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014465 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14466 msm_routing_get_port_mixer,
14467 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014468 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14469 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014470 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14471 msm_routing_get_port_mixer,
14472 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014473};
14474
14475static const struct snd_kcontrol_new pri_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014476 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14477 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014478 MSM_BACKEND_DAI_PRI_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("SEC_MI2S_TX", SND_SOC_NOPM,
14482 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014483 MSM_BACKEND_DAI_SECONDARY_MI2S_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("QUAT_MI2S_TX", SND_SOC_NOPM,
14487 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014488 MSM_BACKEND_DAI_QUATERNARY_MI2S_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("INTERNAL_FM_TX", SND_SOC_NOPM,
14492 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014493 MSM_BACKEND_DAI_INT_FM_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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14497 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014498 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
14502 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014503 MSM_BACKEND_DAI_AFE_PCM_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
14507 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014508 MSM_BACKEND_DAI_AUXPCM_TX, 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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14512 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014513 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 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_0", SND_SOC_NOPM,
14517 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014518 MSM_BACKEND_DAI_PRI_TDM_TX_0, 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_1", SND_SOC_NOPM,
14522 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014523 MSM_BACKEND_DAI_PRI_TDM_TX_1, 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("PRI_TDM_TX_2", SND_SOC_NOPM,
14527 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014528 MSM_BACKEND_DAI_PRI_TDM_TX_2, 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("PRI_TDM_TX_3", SND_SOC_NOPM,
14532 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014533 MSM_BACKEND_DAI_PRI_TDM_TX_3, 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_0", SND_SOC_NOPM,
14537 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014538 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 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_1", SND_SOC_NOPM,
14542 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014543 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 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("QUAT_TDM_TX_2", SND_SOC_NOPM,
14547 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014548 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 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("QUAT_TDM_TX_3", SND_SOC_NOPM,
14552 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014553 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 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_0", SND_SOC_NOPM,
14557 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014558 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 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_1", SND_SOC_NOPM,
14562 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014563 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14564 msm_routing_get_port_mixer,
14565 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014566 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14567 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014568 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14569 msm_routing_get_port_mixer,
14570 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014571 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14572 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014573 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14574 msm_routing_get_port_mixer,
14575 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014576};
14577
14578static const struct snd_kcontrol_new sec_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014579 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14580 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014581 MSM_BACKEND_DAI_PRI_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("SEC_MI2S_TX", SND_SOC_NOPM,
14585 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014586 MSM_BACKEND_DAI_SECONDARY_MI2S_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("QUAT_MI2S_TX", SND_SOC_NOPM,
14590 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014591 MSM_BACKEND_DAI_QUATERNARY_MI2S_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("INTERNAL_FM_TX", SND_SOC_NOPM,
14595 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014596 MSM_BACKEND_DAI_INT_FM_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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14600 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014601 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
14605 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014606 MSM_BACKEND_DAI_AFE_PCM_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
14610 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014611 MSM_BACKEND_DAI_AUXPCM_TX, 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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14615 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014616 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 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("SEC_TDM_TX_0", SND_SOC_NOPM,
14620 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014621 MSM_BACKEND_DAI_SEC_TDM_TX_0, 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("SEC_TDM_TX_1", SND_SOC_NOPM,
14625 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014626 MSM_BACKEND_DAI_SEC_TDM_TX_1, 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("SEC_TDM_TX_2", SND_SOC_NOPM,
14630 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014631 MSM_BACKEND_DAI_SEC_TDM_TX_2, 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("SEC_TDM_TX_3", SND_SOC_NOPM,
14635 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014636 MSM_BACKEND_DAI_SEC_TDM_TX_3, 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_0", SND_SOC_NOPM,
14640 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014641 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 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_1", SND_SOC_NOPM,
14645 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014646 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 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("QUAT_TDM_TX_2", SND_SOC_NOPM,
14650 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014651 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 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("QUAT_TDM_TX_3", SND_SOC_NOPM,
14655 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014656 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 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_0", SND_SOC_NOPM,
14660 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014661 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 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_1", SND_SOC_NOPM,
14665 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014666 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14667 msm_routing_get_port_mixer,
14668 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014669 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14670 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014671 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14672 msm_routing_get_port_mixer,
14673 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014674 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14675 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014676 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14677 msm_routing_get_port_mixer,
14678 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014679};
14680
14681static const struct snd_kcontrol_new sec_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014682 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14683 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014684 MSM_BACKEND_DAI_PRI_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("SEC_MI2S_TX", SND_SOC_NOPM,
14688 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014689 MSM_BACKEND_DAI_SECONDARY_MI2S_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("QUAT_MI2S_TX", SND_SOC_NOPM,
14693 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014694 MSM_BACKEND_DAI_QUATERNARY_MI2S_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("INTERNAL_FM_TX", SND_SOC_NOPM,
14698 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014699 MSM_BACKEND_DAI_INT_FM_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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14703 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014704 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
14708 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014709 MSM_BACKEND_DAI_AFE_PCM_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
14713 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014714 MSM_BACKEND_DAI_AUXPCM_TX, 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_AUX_PCM_UL_TX", SND_SOC_NOPM,
14718 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014719 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 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_0", SND_SOC_NOPM,
14723 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014724 MSM_BACKEND_DAI_SEC_TDM_TX_0, 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_1", SND_SOC_NOPM,
14728 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014729 MSM_BACKEND_DAI_SEC_TDM_TX_1, 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("SEC_TDM_TX_2", SND_SOC_NOPM,
14733 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014734 MSM_BACKEND_DAI_SEC_TDM_TX_2, 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("SEC_TDM_TX_3", SND_SOC_NOPM,
14738 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014739 MSM_BACKEND_DAI_SEC_TDM_TX_3, 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_0", SND_SOC_NOPM,
14743 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014744 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 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_1", SND_SOC_NOPM,
14748 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014749 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 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("QUAT_TDM_TX_2", SND_SOC_NOPM,
14753 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014754 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 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("QUAT_TDM_TX_3", SND_SOC_NOPM,
14758 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014759 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 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_0", SND_SOC_NOPM,
14763 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014764 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 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_1", SND_SOC_NOPM,
14768 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014769 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14770 msm_routing_get_port_mixer,
14771 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014772 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14773 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014774 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14775 msm_routing_get_port_mixer,
14776 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014777 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14778 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014779 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14780 msm_routing_get_port_mixer,
14781 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014782};
14783
14784static const struct snd_kcontrol_new sec_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014785 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14786 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014787 MSM_BACKEND_DAI_PRI_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("SEC_MI2S_TX", SND_SOC_NOPM,
14791 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014792 MSM_BACKEND_DAI_SECONDARY_MI2S_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("QUAT_MI2S_TX", SND_SOC_NOPM,
14796 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014797 MSM_BACKEND_DAI_QUATERNARY_MI2S_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("INTERNAL_FM_TX", SND_SOC_NOPM,
14801 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014802 MSM_BACKEND_DAI_INT_FM_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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14806 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014807 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
14811 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014812 MSM_BACKEND_DAI_AFE_PCM_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
14816 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014817 MSM_BACKEND_DAI_AUXPCM_TX, 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_AUX_PCM_UL_TX", SND_SOC_NOPM,
14821 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014822 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 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_0", SND_SOC_NOPM,
14826 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014827 MSM_BACKEND_DAI_SEC_TDM_TX_0, 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_1", SND_SOC_NOPM,
14831 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014832 MSM_BACKEND_DAI_SEC_TDM_TX_1, 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("SEC_TDM_TX_2", SND_SOC_NOPM,
14836 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014837 MSM_BACKEND_DAI_SEC_TDM_TX_2, 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("SEC_TDM_TX_3", SND_SOC_NOPM,
14841 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014842 MSM_BACKEND_DAI_SEC_TDM_TX_3, 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_0", SND_SOC_NOPM,
14846 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014847 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 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_1", SND_SOC_NOPM,
14851 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014852 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 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("QUAT_TDM_TX_2", SND_SOC_NOPM,
14856 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014857 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 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("QUAT_TDM_TX_3", SND_SOC_NOPM,
14861 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014862 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 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_0", SND_SOC_NOPM,
14866 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014867 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 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_1", SND_SOC_NOPM,
14871 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014872 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14873 msm_routing_get_port_mixer,
14874 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014875 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14876 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014877 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14878 msm_routing_get_port_mixer,
14879 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014880 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14881 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014882 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14883 msm_routing_get_port_mixer,
14884 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014885};
14886
14887static const struct snd_kcontrol_new sec_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014888 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14889 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014890 MSM_BACKEND_DAI_PRI_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("SEC_MI2S_TX", SND_SOC_NOPM,
14894 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014895 MSM_BACKEND_DAI_SECONDARY_MI2S_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("QUAT_MI2S_TX", SND_SOC_NOPM,
14899 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014900 MSM_BACKEND_DAI_QUATERNARY_MI2S_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("INTERNAL_FM_TX", SND_SOC_NOPM,
14904 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014905 MSM_BACKEND_DAI_INT_FM_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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14909 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014910 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
14914 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014915 MSM_BACKEND_DAI_AFE_PCM_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
14919 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014920 MSM_BACKEND_DAI_AUXPCM_TX, 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_AUX_PCM_UL_TX", SND_SOC_NOPM,
14924 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014925 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 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_0", SND_SOC_NOPM,
14929 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014930 MSM_BACKEND_DAI_SEC_TDM_TX_0, 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_1", SND_SOC_NOPM,
14934 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014935 MSM_BACKEND_DAI_SEC_TDM_TX_1, 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("SEC_TDM_TX_2", SND_SOC_NOPM,
14939 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014940 MSM_BACKEND_DAI_SEC_TDM_TX_2, 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("SEC_TDM_TX_3", SND_SOC_NOPM,
14944 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014945 MSM_BACKEND_DAI_SEC_TDM_TX_3, 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_0", SND_SOC_NOPM,
14949 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014950 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 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_1", SND_SOC_NOPM,
14954 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014955 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 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("QUAT_TDM_TX_2", SND_SOC_NOPM,
14959 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014960 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 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("QUAT_TDM_TX_3", SND_SOC_NOPM,
14964 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014965 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 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_0", SND_SOC_NOPM,
14969 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014970 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 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_1", SND_SOC_NOPM,
14974 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014975 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14976 msm_routing_get_port_mixer,
14977 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014978 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14979 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014980 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14981 msm_routing_get_port_mixer,
14982 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014983 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14984 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014985 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14986 msm_routing_get_port_mixer,
14987 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014988};
14989
14990static const struct snd_kcontrol_new tert_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014991 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14992 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014993 MSM_BACKEND_DAI_PRI_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("SEC_MI2S_TX", SND_SOC_NOPM,
14997 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014998 MSM_BACKEND_DAI_SECONDARY_MI2S_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("QUAT_MI2S_TX", SND_SOC_NOPM,
15002 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015003 MSM_BACKEND_DAI_QUATERNARY_MI2S_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("INTERNAL_FM_TX", SND_SOC_NOPM,
15007 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015008 MSM_BACKEND_DAI_INT_FM_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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15012 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015013 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
15017 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015018 MSM_BACKEND_DAI_AFE_PCM_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
15022 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015023 MSM_BACKEND_DAI_AUXPCM_TX, 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_AUX_PCM_UL_TX", SND_SOC_NOPM,
15027 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015028 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 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("TERT_TDM_TX_0", SND_SOC_NOPM,
15032 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015033 MSM_BACKEND_DAI_TERT_TDM_TX_0, 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("TERT_TDM_TX_1", SND_SOC_NOPM,
15037 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015038 MSM_BACKEND_DAI_TERT_TDM_TX_1, 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("TERT_TDM_TX_2", SND_SOC_NOPM,
15042 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015043 MSM_BACKEND_DAI_TERT_TDM_TX_2, 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("TERT_TDM_TX_3", SND_SOC_NOPM,
15047 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015048 MSM_BACKEND_DAI_TERT_TDM_TX_3, 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_0", SND_SOC_NOPM,
15052 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015053 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 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_1", SND_SOC_NOPM,
15057 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015058 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 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("QUAT_TDM_TX_2", SND_SOC_NOPM,
15062 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015063 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 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("QUAT_TDM_TX_3", SND_SOC_NOPM,
15067 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015068 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 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_0", SND_SOC_NOPM,
15072 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015073 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 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_1", SND_SOC_NOPM,
15077 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015078 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15079 msm_routing_get_port_mixer,
15080 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015081 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15082 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015083 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15084 msm_routing_get_port_mixer,
15085 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015086 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15087 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015088 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15089 msm_routing_get_port_mixer,
15090 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015091};
15092
15093static const struct snd_kcontrol_new tert_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015094 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15095 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015096 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15097 msm_routing_get_port_mixer,
15098 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015099 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15100 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015101 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15102 msm_routing_get_port_mixer,
15103 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015104 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15105 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015106 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15107 msm_routing_get_port_mixer,
15108 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015109 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15110 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015111 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15112 msm_routing_get_port_mixer,
15113 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015114 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15115 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015116 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15117 msm_routing_get_port_mixer,
15118 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015119 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15120 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015121 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15122 msm_routing_get_port_mixer,
15123 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015124 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15125 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015126 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15127 msm_routing_get_port_mixer,
15128 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015129 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15130 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015131 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15132 msm_routing_get_port_mixer,
15133 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015134 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15135 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015136 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15137 msm_routing_get_port_mixer,
15138 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015139 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15140 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015141 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15142 msm_routing_get_port_mixer,
15143 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015144 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15145 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015146 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15147 msm_routing_get_port_mixer,
15148 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015149 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15150 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015151 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15152 msm_routing_get_port_mixer,
15153 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015154 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15155 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015156 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15157 msm_routing_get_port_mixer,
15158 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015159 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15160 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015161 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15162 msm_routing_get_port_mixer,
15163 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015164 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15165 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015166 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15167 msm_routing_get_port_mixer,
15168 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015169 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15170 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015171 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15172 msm_routing_get_port_mixer,
15173 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015174 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15175 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015176 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15177 msm_routing_get_port_mixer,
15178 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015179 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15180 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015181 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15182 msm_routing_get_port_mixer,
15183 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015184 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15185 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015186 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15187 msm_routing_get_port_mixer,
15188 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015189 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15190 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015191 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15192 msm_routing_get_port_mixer,
15193 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015194};
15195
15196static const struct snd_kcontrol_new tert_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015197 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15198 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015199 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15200 msm_routing_get_port_mixer,
15201 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015202 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15203 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015204 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15205 msm_routing_get_port_mixer,
15206 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015207 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15208 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015209 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15210 msm_routing_get_port_mixer,
15211 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015212 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15213 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015214 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15215 msm_routing_get_port_mixer,
15216 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015217 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15218 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015219 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15220 msm_routing_get_port_mixer,
15221 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015222 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15223 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015224 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15225 msm_routing_get_port_mixer,
15226 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015227 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15228 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015229 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15230 msm_routing_get_port_mixer,
15231 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015232 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15233 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015234 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15235 msm_routing_get_port_mixer,
15236 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015237 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15238 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015239 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15240 msm_routing_get_port_mixer,
15241 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015242 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15243 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015244 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15245 msm_routing_get_port_mixer,
15246 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015247 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15248 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015249 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15250 msm_routing_get_port_mixer,
15251 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015252 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15253 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015254 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15255 msm_routing_get_port_mixer,
15256 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015257 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15258 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015259 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15260 msm_routing_get_port_mixer,
15261 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015262 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15263 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015264 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15265 msm_routing_get_port_mixer,
15266 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015267 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15268 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015269 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15270 msm_routing_get_port_mixer,
15271 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015272 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15273 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015274 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15275 msm_routing_get_port_mixer,
15276 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015277 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15278 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015279 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15280 msm_routing_get_port_mixer,
15281 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015282 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15283 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015284 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15285 msm_routing_get_port_mixer,
15286 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015287 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15288 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015289 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15290 msm_routing_get_port_mixer,
15291 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015292 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15293 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015294 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15295 msm_routing_get_port_mixer,
15296 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015297};
15298
15299static const struct snd_kcontrol_new tert_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015300 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15301 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015302 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15303 msm_routing_get_port_mixer,
15304 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015305 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15306 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015307 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15308 msm_routing_get_port_mixer,
15309 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015310 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15311 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015312 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15313 msm_routing_get_port_mixer,
15314 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015315 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15316 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015317 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15318 msm_routing_get_port_mixer,
15319 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015320 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15321 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015322 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15323 msm_routing_get_port_mixer,
15324 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015325 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15326 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015327 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15328 msm_routing_get_port_mixer,
15329 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015330 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15331 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015332 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15333 msm_routing_get_port_mixer,
15334 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015335 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15336 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015337 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15338 msm_routing_get_port_mixer,
15339 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015340 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15341 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015342 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15343 msm_routing_get_port_mixer,
15344 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015345 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15346 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015347 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15348 msm_routing_get_port_mixer,
15349 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015350 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15351 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015352 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15353 msm_routing_get_port_mixer,
15354 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015355 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15356 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015357 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15358 msm_routing_get_port_mixer,
15359 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015360 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15361 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015362 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15363 msm_routing_get_port_mixer,
15364 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015365 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15366 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015367 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15368 msm_routing_get_port_mixer,
15369 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015370 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15371 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015372 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15373 msm_routing_get_port_mixer,
15374 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015375 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15376 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015377 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15378 msm_routing_get_port_mixer,
15379 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015380 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15381 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015382 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15383 msm_routing_get_port_mixer,
15384 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015385 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15386 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015387 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15388 msm_routing_get_port_mixer,
15389 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015390 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15391 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015392 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15393 msm_routing_get_port_mixer,
15394 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015395 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15396 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015397 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15398 msm_routing_get_port_mixer,
15399 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015400};
15401
15402static const struct snd_kcontrol_new quat_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015403 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15404 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015405 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15406 msm_routing_get_port_mixer,
15407 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015408 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15409 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015410 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15411 msm_routing_get_port_mixer,
15412 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015413 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15414 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015415 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15416 msm_routing_get_port_mixer,
15417 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015418 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15419 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015420 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15421 msm_routing_get_port_mixer,
15422 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015423 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15424 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015425 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15426 msm_routing_get_port_mixer,
15427 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015428 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15429 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015430 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15431 msm_routing_get_port_mixer,
15432 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015433 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15434 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015435 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15436 msm_routing_get_port_mixer,
15437 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015438 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15439 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015440 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15441 msm_routing_get_port_mixer,
15442 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015443 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15444 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015445 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15446 msm_routing_get_port_mixer,
15447 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015448 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15449 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015450 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15451 msm_routing_get_port_mixer,
15452 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015453 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15454 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015455 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15456 msm_routing_get_port_mixer,
15457 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015458 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15459 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015460 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15461 msm_routing_get_port_mixer,
15462 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015463 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15464 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015465 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15466 msm_routing_get_port_mixer,
15467 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015468 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15469 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015470 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15471 msm_routing_get_port_mixer,
15472 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015473 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15474 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015475 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15476 msm_routing_get_port_mixer,
15477 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015478 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15479 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015480 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15481 msm_routing_get_port_mixer,
15482 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015483 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15484 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015485 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15486 msm_routing_get_port_mixer,
15487 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015488 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15489 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015490 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15491 msm_routing_get_port_mixer,
15492 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015493 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15494 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015495 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15496 msm_routing_get_port_mixer,
15497 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015498 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15499 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015500 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15501 msm_routing_get_port_mixer,
15502 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015503};
15504
15505static const struct snd_kcontrol_new quat_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015506 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15507 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015508 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15509 msm_routing_get_port_mixer,
15510 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015511 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15512 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015513 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15514 msm_routing_get_port_mixer,
15515 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015516 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15517 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015518 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15519 msm_routing_get_port_mixer,
15520 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015521 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15522 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015523 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15524 msm_routing_get_port_mixer,
15525 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015526 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15527 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015528 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15529 msm_routing_get_port_mixer,
15530 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015531 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15532 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015533 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15534 msm_routing_get_port_mixer,
15535 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015536 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15537 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015538 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15539 msm_routing_get_port_mixer,
15540 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015541 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15542 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015543 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15544 msm_routing_get_port_mixer,
15545 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015546 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15547 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015548 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15549 msm_routing_get_port_mixer,
15550 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015551 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15552 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015553 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15554 msm_routing_get_port_mixer,
15555 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015556 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15557 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015558 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15559 msm_routing_get_port_mixer,
15560 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015561 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15562 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015563 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15564 msm_routing_get_port_mixer,
15565 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015566 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15567 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015568 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15569 msm_routing_get_port_mixer,
15570 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015571 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15572 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015573 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15574 msm_routing_get_port_mixer,
15575 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015576 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15577 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015578 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15579 msm_routing_get_port_mixer,
15580 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015581 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15582 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015583 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15584 msm_routing_get_port_mixer,
15585 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015586 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15587 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015588 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15589 msm_routing_get_port_mixer,
15590 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015591 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15592 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015593 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15594 msm_routing_get_port_mixer,
15595 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015596 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15597 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015598 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15599 msm_routing_get_port_mixer,
15600 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015601 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15602 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015603 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15604 msm_routing_get_port_mixer,
15605 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015606};
15607
15608static const struct snd_kcontrol_new quat_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015609 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15610 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015611 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15612 msm_routing_get_port_mixer,
15613 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015614 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15615 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015616 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15617 msm_routing_get_port_mixer,
15618 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015619 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15620 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015621 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15622 msm_routing_get_port_mixer,
15623 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015624 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15625 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015626 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15627 msm_routing_get_port_mixer,
15628 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015629 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15630 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015631 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15632 msm_routing_get_port_mixer,
15633 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015634 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15635 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015636 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15637 msm_routing_get_port_mixer,
15638 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015639 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15640 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015641 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15642 msm_routing_get_port_mixer,
15643 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015644 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15645 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015646 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15647 msm_routing_get_port_mixer,
15648 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015649 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15650 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015651 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15652 msm_routing_get_port_mixer,
15653 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015654 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15655 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015656 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15657 msm_routing_get_port_mixer,
15658 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015659 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15660 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015661 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15662 msm_routing_get_port_mixer,
15663 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015664 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15665 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015666 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15667 msm_routing_get_port_mixer,
15668 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015669 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15670 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015671 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15672 msm_routing_get_port_mixer,
15673 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015674 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15675 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015676 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15677 msm_routing_get_port_mixer,
15678 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015679 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15680 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015681 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15682 msm_routing_get_port_mixer,
15683 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015684 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15685 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015686 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15687 msm_routing_get_port_mixer,
15688 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015689 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15690 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015691 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15692 msm_routing_get_port_mixer,
15693 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015694 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15695 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015696 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15697 msm_routing_get_port_mixer,
15698 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015699 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15700 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015701 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15702 msm_routing_get_port_mixer,
15703 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015704 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15705 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015706 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15707 msm_routing_get_port_mixer,
15708 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015709};
15710
15711static const struct snd_kcontrol_new quat_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015712 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15713 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015714 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15715 msm_routing_get_port_mixer,
15716 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015717 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15718 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015719 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15720 msm_routing_get_port_mixer,
15721 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015722 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15723 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015724 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15725 msm_routing_get_port_mixer,
15726 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015727 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15728 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015729 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15730 msm_routing_get_port_mixer,
15731 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015732 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15733 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015734 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15735 msm_routing_get_port_mixer,
15736 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015737 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15738 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015739 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15740 msm_routing_get_port_mixer,
15741 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015742 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15743 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015744 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15745 msm_routing_get_port_mixer,
15746 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015747 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15748 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015749 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15750 msm_routing_get_port_mixer,
15751 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015752 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15753 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015754 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15755 msm_routing_get_port_mixer,
15756 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015757 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15758 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015759 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15760 msm_routing_get_port_mixer,
15761 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015762 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15763 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015764 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15765 msm_routing_get_port_mixer,
15766 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015767 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15768 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015769 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15770 msm_routing_get_port_mixer,
15771 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015772 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15773 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015774 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15775 msm_routing_get_port_mixer,
15776 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015777 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15778 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015779 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15780 msm_routing_get_port_mixer,
15781 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015782 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15783 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015784 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15785 msm_routing_get_port_mixer,
15786 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015787 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15788 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015789 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15790 msm_routing_get_port_mixer,
15791 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015792 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15793 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015794 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15795 msm_routing_get_port_mixer,
15796 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015797 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15798 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015799 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15800 msm_routing_get_port_mixer,
15801 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015802 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15803 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015804 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15805 msm_routing_get_port_mixer,
15806 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015807 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15808 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015809 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15810 msm_routing_get_port_mixer,
15811 msm_routing_put_port_mixer),
15812};
15813
15814static const struct snd_kcontrol_new quin_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015815 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15816 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015817 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15818 msm_routing_get_port_mixer,
15819 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015820 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15821 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015822 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15823 msm_routing_get_port_mixer,
15824 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015825 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15826 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015827 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15828 msm_routing_get_port_mixer,
15829 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015830 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15831 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015832 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15833 msm_routing_get_port_mixer,
15834 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015835 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15836 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015837 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15838 msm_routing_get_port_mixer,
15839 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015840 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15841 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015842 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15843 msm_routing_get_port_mixer,
15844 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015845 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15846 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015847 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15848 msm_routing_get_port_mixer,
15849 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015850 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15851 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015852 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15853 msm_routing_get_port_mixer,
15854 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015855 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15856 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015857 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15858 msm_routing_get_port_mixer,
15859 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015860 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15861 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015862 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15863 msm_routing_get_port_mixer,
15864 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015865 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15866 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015867 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15868 msm_routing_get_port_mixer,
15869 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015870 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15871 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015872 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15873 msm_routing_get_port_mixer,
15874 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015875 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15876 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015877 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15878 msm_routing_get_port_mixer,
15879 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015880 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15881 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015882 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15883 msm_routing_get_port_mixer,
15884 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015885 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15886 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015887 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15888 msm_routing_get_port_mixer,
15889 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015890 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15891 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015892 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15893 msm_routing_get_port_mixer,
15894 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015895 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15896 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015897 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15898 msm_routing_get_port_mixer,
15899 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015900 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15901 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015902 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15903 msm_routing_get_port_mixer,
15904 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015905 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15906 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015907 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15908 msm_routing_get_port_mixer,
15909 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015910 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15911 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015912 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15913 msm_routing_get_port_mixer,
15914 msm_routing_put_port_mixer),
15915};
15916
15917static const struct snd_kcontrol_new quin_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015918 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15919 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015920 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15921 msm_routing_get_port_mixer,
15922 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015923 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15924 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015925 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15926 msm_routing_get_port_mixer,
15927 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015928 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15929 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015930 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15931 msm_routing_get_port_mixer,
15932 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015933 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15934 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015935 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15936 msm_routing_get_port_mixer,
15937 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015938 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15939 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015940 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15941 msm_routing_get_port_mixer,
15942 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015943 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15944 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015945 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15946 msm_routing_get_port_mixer,
15947 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015948 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15949 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015950 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15951 msm_routing_get_port_mixer,
15952 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015953 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15954 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015955 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15956 msm_routing_get_port_mixer,
15957 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015958 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15959 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015960 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15961 msm_routing_get_port_mixer,
15962 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015963 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15964 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015965 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15966 msm_routing_get_port_mixer,
15967 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015968 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15969 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015970 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15971 msm_routing_get_port_mixer,
15972 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015973 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15974 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015975 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15976 msm_routing_get_port_mixer,
15977 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015978 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15979 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015980 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15981 msm_routing_get_port_mixer,
15982 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015983 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15984 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015985 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15986 msm_routing_get_port_mixer,
15987 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015988 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15989 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015990 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15991 msm_routing_get_port_mixer,
15992 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015993 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15994 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015995 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15996 msm_routing_get_port_mixer,
15997 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015998 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15999 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016000 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16001 msm_routing_get_port_mixer,
16002 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016003 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16004 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016005 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16006 msm_routing_get_port_mixer,
16007 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016008 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16009 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016010 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16011 msm_routing_get_port_mixer,
16012 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016013 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16014 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016015 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16016 msm_routing_get_port_mixer,
16017 msm_routing_put_port_mixer),
16018};
16019
16020static const struct snd_kcontrol_new quin_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016021 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16022 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016023 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16024 msm_routing_get_port_mixer,
16025 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016026 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16027 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016028 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16029 msm_routing_get_port_mixer,
16030 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016031 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16032 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016033 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16034 msm_routing_get_port_mixer,
16035 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016036 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16037 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016038 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16039 msm_routing_get_port_mixer,
16040 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016041 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16042 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016043 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16044 msm_routing_get_port_mixer,
16045 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016046 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16047 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016048 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16049 msm_routing_get_port_mixer,
16050 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016051 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16052 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016053 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16054 msm_routing_get_port_mixer,
16055 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016056 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16057 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016058 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16059 msm_routing_get_port_mixer,
16060 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016061 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16062 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016063 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16064 msm_routing_get_port_mixer,
16065 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016066 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16067 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016068 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16069 msm_routing_get_port_mixer,
16070 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016071 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16072 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016073 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16074 msm_routing_get_port_mixer,
16075 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016076 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16077 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016078 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16079 msm_routing_get_port_mixer,
16080 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016081 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16082 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016083 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16084 msm_routing_get_port_mixer,
16085 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016086 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16087 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016088 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16089 msm_routing_get_port_mixer,
16090 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016091 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16092 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016093 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16094 msm_routing_get_port_mixer,
16095 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016096 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16097 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016098 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16099 msm_routing_get_port_mixer,
16100 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016101 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16102 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016103 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16104 msm_routing_get_port_mixer,
16105 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016106 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16107 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016108 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16109 msm_routing_get_port_mixer,
16110 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016111 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16112 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016113 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16114 msm_routing_get_port_mixer,
16115 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016116 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16117 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016118 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16119 msm_routing_get_port_mixer,
16120 msm_routing_put_port_mixer),
16121};
16122
16123static const struct snd_kcontrol_new quin_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016124 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16125 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016126 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16127 msm_routing_get_port_mixer,
16128 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016129 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16130 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016131 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16132 msm_routing_get_port_mixer,
16133 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016134 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16135 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016136 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16137 msm_routing_get_port_mixer,
16138 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016139 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16140 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016141 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16142 msm_routing_get_port_mixer,
16143 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016144 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16145 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016146 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16147 msm_routing_get_port_mixer,
16148 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016149 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16150 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016151 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16152 msm_routing_get_port_mixer,
16153 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016154 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16155 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016156 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16157 msm_routing_get_port_mixer,
16158 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016159 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16160 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016161 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16162 msm_routing_get_port_mixer,
16163 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016164 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16165 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016166 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16167 msm_routing_get_port_mixer,
16168 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016169 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16170 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016171 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16172 msm_routing_get_port_mixer,
16173 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016174 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16175 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016176 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16177 msm_routing_get_port_mixer,
16178 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016179 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16180 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016181 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16182 msm_routing_get_port_mixer,
16183 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016184 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16185 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016186 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16187 msm_routing_get_port_mixer,
16188 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016189 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16190 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016191 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16192 msm_routing_get_port_mixer,
16193 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016194 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16195 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016196 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16197 msm_routing_get_port_mixer,
16198 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016199 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16200 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016201 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16202 msm_routing_get_port_mixer,
16203 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016204 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16205 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016206 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16207 msm_routing_get_port_mixer,
16208 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016209 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16210 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016211 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16212 msm_routing_get_port_mixer,
16213 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016214 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16215 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016216 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16217 msm_routing_get_port_mixer,
16218 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016219 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16220 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016221 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16222 msm_routing_get_port_mixer,
16223 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016224};
16225
16226static const struct snd_kcontrol_new tert_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016227 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16228 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016229 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16230 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016231 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16232 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016233 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16234 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016235 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16236 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016237 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16238 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016239 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16240 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016241 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16242 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016243 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
16244 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016245 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16246 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016247 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16248 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016249 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16250 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016251 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16252 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016253 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16254 msm_routing_put_port_mixer),
16255};
16256
16257static const struct snd_kcontrol_new sec_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016258 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16259 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016260 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16261 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016262 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16263 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016264 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16265 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016266 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16267 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016268 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16269 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016270 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16271 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016272 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16273 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016274 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
16275 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016276 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16277 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016278 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16279 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016280 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16281 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016282 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16283 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016284 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
16285 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016286 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16287 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016288 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16289 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016290 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16291 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080016292 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16293 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016294};
16295
16296static const struct snd_kcontrol_new lsm1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016297 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16298 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016299 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16300 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016301 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16302 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016303 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16304 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016305 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16306 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016307 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16308 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016309 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16310 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016311 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16312 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016313 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16314 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016315 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16316 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016317 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16318 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016319 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16320 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016321 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16322 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016323 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16324 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016325 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16326 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016327 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16328 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016329 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16330 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16331 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16332 msm_routing_put_listen_mixer),
16333 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16334 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16335 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16336 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016337 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16338 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16339 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16340 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016341 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16342 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16343 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16344 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016345};
16346
16347static const struct snd_kcontrol_new lsm2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016348 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16349 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016350 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16351 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016352 SOC_DOUBLE_EXT("SLIMBUS_1_TX",
16353 SND_SOC_NOPM,
16354 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016355 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16356 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016357 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16358 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016359 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16360 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016361 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16362 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016363 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16364 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016365 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16366 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016367 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16368 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016369 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16370 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016371 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16372 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016373 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16374 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016375 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16376 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016377 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16378 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016379 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16380 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016381 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16382 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16383 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16384 msm_routing_put_listen_mixer),
16385 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16386 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16387 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16388 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016389 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16390 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16391 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16392 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016393 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16394 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16395 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16396 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016397};
16398
16399static const struct snd_kcontrol_new lsm3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016400 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16401 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016402 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16403 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016404 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16405 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016406 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16407 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016408 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16409 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016410 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16411 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016412 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16413 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016414 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16415 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016416 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16417 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016418 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16419 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016420 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16421 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016422 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16423 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016424 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16425 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016426 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16427 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016428 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16429 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016430 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16431 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016432 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16433 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16434 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16435 msm_routing_put_listen_mixer),
16436 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16437 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16438 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16439 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016440 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16441 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16442 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16443 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016444 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16445 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16446 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16447 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016448};
16449
16450static const struct snd_kcontrol_new lsm4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016451 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16452 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016453 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16454 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016455 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16456 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016457 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16458 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016459 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16460 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016461 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16462 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016463 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16464 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016465 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16466 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016467 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16468 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016469 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16470 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016471 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16472 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016473 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16474 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016475 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16476 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016477 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16478 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016479 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16480 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016481 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16482 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016483 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16484 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16485 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16486 msm_routing_put_listen_mixer),
16487 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16488 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16489 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16490 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016491 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16492 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16493 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16494 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016495 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16496 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16497 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16498 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016499};
16500
16501static const struct snd_kcontrol_new lsm5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016502 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16503 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016504 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16505 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016506 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16507 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016508 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16509 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016510 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16511 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016512 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16513 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016514 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16515 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016516 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16517 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016518 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16519 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016520 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16521 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016522 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16523 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016524 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16525 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016526 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16527 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016528 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16529 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016530 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16531 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016532 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16533 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016534 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16535 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16536 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16537 msm_routing_put_listen_mixer),
16538 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16539 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16540 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16541 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016542 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16543 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16544 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16545 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016546 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16547 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16548 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16549 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016550};
16551
16552static const struct snd_kcontrol_new lsm6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016553 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16554 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016555 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16556 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016557 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16558 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016559 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16560 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016561 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16562 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016563 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16564 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016565 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16566 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016567 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16568 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016569 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16570 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016571 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16572 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016573 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16574 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016575 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16576 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016577 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16578 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016579 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16580 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016581 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16582 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016583 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16584 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016585 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16586 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16587 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16588 msm_routing_put_listen_mixer),
16589 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16590 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16591 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16592 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016593 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16594 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16595 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16596 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016597 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16598 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16599 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16600 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016601};
16602
16603static const struct snd_kcontrol_new lsm7_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016604 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16605 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016606 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16607 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016608 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16609 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016610 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16611 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016612 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16613 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016614 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16615 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016616 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16617 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016618 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16619 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016620 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16621 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016622 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16623 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016624 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16625 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016626 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16627 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016628 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16629 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016630 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16631 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016632 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16633 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016634 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16635 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016636 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16637 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16638 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16639 msm_routing_put_listen_mixer),
16640 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16641 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16642 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16643 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016644 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16645 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16646 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16647 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016648 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16649 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16650 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16651 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016652};
16653
16654static const struct snd_kcontrol_new lsm8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016655 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16656 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016657 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16658 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016659 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16660 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016661 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16662 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016663 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16664 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016665 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16666 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016667 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16668 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016669 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16670 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016671 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16672 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016673 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16674 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016675 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16676 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016677 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16678 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016679 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16680 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016681 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16682 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016683 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16684 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016685 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16686 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016687 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16688 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16689 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16690 msm_routing_put_listen_mixer),
16691 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16692 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16693 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16694 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016695 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16696 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16697 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16698 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016699 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16700 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16701 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16702 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016703};
16704
16705static const struct snd_kcontrol_new slim_fm_switch_mixer_controls =
16706 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16707 0, 1, 0, msm_routing_get_switch_mixer,
16708 msm_routing_put_switch_mixer);
16709
16710static const struct snd_kcontrol_new slim1_fm_switch_mixer_controls =
16711 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16712 0, 1, 0, msm_routing_get_switch_mixer,
16713 msm_routing_put_switch_mixer);
16714
16715static const struct snd_kcontrol_new slim3_fm_switch_mixer_controls =
16716 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16717 0, 1, 0, msm_routing_get_switch_mixer,
16718 msm_routing_put_switch_mixer);
16719
16720static const struct snd_kcontrol_new slim4_fm_switch_mixer_controls =
16721 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16722 0, 1, 0, msm_routing_get_switch_mixer,
16723 msm_routing_put_switch_mixer);
16724
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053016725static const struct snd_kcontrol_new cdc_dma_wsa_switch_mixer_controls =
16726 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16727 0, 1, 0, msm_routing_get_switch_mixer,
16728 msm_routing_put_switch_mixer);
16729
16730static const struct snd_kcontrol_new cdc_dma_rx_switch_mixer_controls =
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053016731 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16732 0, 1, 0, msm_routing_get_switch_mixer,
16733 msm_routing_put_switch_mixer);
16734
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016735static const struct snd_kcontrol_new slim6_fm_switch_mixer_controls =
16736 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16737 0, 1, 0, msm_routing_get_switch_mixer,
16738 msm_routing_put_switch_mixer);
16739
16740static const struct snd_kcontrol_new pcm_rx_switch_mixer_controls =
16741 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16742 0, 1, 0, msm_routing_get_fm_pcmrx_switch_mixer,
16743 msm_routing_put_fm_pcmrx_switch_mixer);
16744
16745static const struct snd_kcontrol_new int0_mi2s_rx_switch_mixer_controls =
16746 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16747 0, 1, 0, msm_routing_get_int0_mi2s_switch_mixer,
16748 msm_routing_put_int0_mi2s_switch_mixer);
16749
16750static const struct snd_kcontrol_new int4_mi2s_rx_switch_mixer_controls =
16751 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16752 0, 1, 0, msm_routing_get_int4_mi2s_switch_mixer,
16753 msm_routing_put_int4_mi2s_switch_mixer);
16754
16755static const struct snd_kcontrol_new pri_mi2s_rx_switch_mixer_controls =
16756 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16757 0, 1, 0, msm_routing_get_pri_mi2s_switch_mixer,
16758 msm_routing_put_pri_mi2s_switch_mixer);
16759
16760static const struct snd_kcontrol_new sec_mi2s_rx_switch_mixer_controls =
16761 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16762 0, 1, 0, msm_routing_get_sec_mi2s_switch_mixer,
16763 msm_routing_put_sec_mi2s_switch_mixer);
16764
16765static const struct snd_kcontrol_new tert_mi2s_rx_switch_mixer_controls =
16766 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16767 0, 1, 0, msm_routing_get_tert_mi2s_switch_mixer,
16768 msm_routing_put_tert_mi2s_switch_mixer);
16769
16770static const struct snd_kcontrol_new quat_mi2s_rx_switch_mixer_controls =
16771 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16772 0, 1, 0, msm_routing_get_quat_mi2s_switch_mixer,
16773 msm_routing_put_quat_mi2s_switch_mixer);
16774
Rohit Kumara5077932017-09-10 22:05:05 +053016775static const struct snd_kcontrol_new quin_mi2s_rx_switch_mixer_controls =
16776 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16777 0, 1, 0, msm_routing_get_quin_mi2s_switch_mixer,
16778 msm_routing_put_quin_mi2s_switch_mixer);
16779
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016780static const struct snd_kcontrol_new hfp_pri_aux_switch_mixer_controls =
16781 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16782 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16783 msm_routing_put_hfp_switch_mixer);
16784
16785static const struct snd_kcontrol_new hfp_aux_switch_mixer_controls =
16786 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16787 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16788 msm_routing_put_hfp_switch_mixer);
16789
16790static const struct snd_kcontrol_new hfp_int_switch_mixer_controls =
16791 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16792 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16793 msm_routing_put_hfp_switch_mixer);
16794
16795static const struct snd_kcontrol_new hfp_slim7_switch_mixer_controls =
16796 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16797 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16798 msm_routing_put_hfp_switch_mixer);
16799
16800static const struct snd_kcontrol_new usb_switch_mixer_controls =
16801 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16802 0, 1, 0, msm_routing_get_usb_switch_mixer,
16803 msm_routing_put_usb_switch_mixer);
16804
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080016805static const struct snd_kcontrol_new a2dp_slim7_switch_mixer_controls =
16806 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16807 0, 1, 0, msm_routing_a2dp_switch_mixer_get,
16808 msm_routing_a2dp_switch_mixer_put);
16809
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016810static const struct soc_enum lsm_port_enum =
16811 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_port_text), lsm_port_text);
16812
16813static const char * const lsm_func_text[] = {
16814 "None", "AUDIO", "BEACON", "ULTRASOUND", "SWAUDIO",
16815};
16816static const struct soc_enum lsm_func_enum =
16817 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_func_text), lsm_func_text);
16818
16819static const struct snd_kcontrol_new lsm_controls[] = {
16820 /* kcontrol of lsm_function */
16821 SOC_ENUM_EXT(SLIMBUS_0_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16822 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16823 SOC_ENUM_EXT(SLIMBUS_1_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16824 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16825 SOC_ENUM_EXT(SLIMBUS_2_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16826 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16827 SOC_ENUM_EXT(SLIMBUS_3_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16828 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16829 SOC_ENUM_EXT(SLIMBUS_4_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16830 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16831 SOC_ENUM_EXT(SLIMBUS_5_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16832 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16833 SOC_ENUM_EXT(TERT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16834 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16835 SOC_ENUM_EXT(QUAT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16836 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16837 SOC_ENUM_EXT(INT3_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16838 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016839 SOC_ENUM_EXT(TX_CDC_DMA_TX_3_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16840 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016841 SOC_ENUM_EXT(QUIN_TDM_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16842 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016843 /* kcontrol of lsm_port */
16844 SOC_ENUM_EXT("LSM1 Port", lsm_port_enum,
16845 msm_routing_lsm_port_get,
16846 msm_routing_lsm_port_put),
16847 SOC_ENUM_EXT("LSM2 Port", lsm_port_enum,
16848 msm_routing_lsm_port_get,
16849 msm_routing_lsm_port_put),
16850 SOC_ENUM_EXT("LSM3 Port", lsm_port_enum,
16851 msm_routing_lsm_port_get,
16852 msm_routing_lsm_port_put),
16853 SOC_ENUM_EXT("LSM4 Port", lsm_port_enum,
16854 msm_routing_lsm_port_get,
16855 msm_routing_lsm_port_put),
16856 SOC_ENUM_EXT("LSM5 Port", lsm_port_enum,
16857 msm_routing_lsm_port_get,
16858 msm_routing_lsm_port_put),
16859 SOC_ENUM_EXT("LSM6 Port", lsm_port_enum,
16860 msm_routing_lsm_port_get,
16861 msm_routing_lsm_port_put),
16862 SOC_ENUM_EXT("LSM7 Port", lsm_port_enum,
16863 msm_routing_lsm_port_get,
16864 msm_routing_lsm_port_put),
16865 SOC_ENUM_EXT("LSM8 Port", lsm_port_enum,
16866 msm_routing_lsm_port_get,
16867 msm_routing_lsm_port_put),
16868};
16869
16870static const char * const aanc_slim_0_rx_text[] = {
16871 "ZERO", "SLIMBUS_0_TX", "SLIMBUS_1_TX", "SLIMBUS_2_TX", "SLIMBUS_3_TX",
16872 "SLIMBUS_4_TX", "SLIMBUS_5_TX", "SLIMBUS_6_TX"
16873};
16874
16875static const struct soc_enum aanc_slim_0_rx_enum =
16876 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(aanc_slim_0_rx_text),
16877 aanc_slim_0_rx_text);
16878
16879static const struct snd_kcontrol_new aanc_slim_0_rx_mux[] = {
16880 SOC_ENUM_EXT("AANC_SLIM_0_RX MUX", aanc_slim_0_rx_enum,
16881 msm_routing_slim_0_rx_aanc_mux_get,
16882 msm_routing_slim_0_rx_aanc_mux_put)
16883};
16884
Sudheer Papothic07b37a2018-05-04 05:56:47 +053016885static int msm_routing_aanc_noise_level_get(struct snd_kcontrol *kcontrol,
16886 struct snd_ctl_elem_value *ucontrol)
16887{
16888 ucontrol->value.integer.value[0] = aanc_level;
16889
16890 return 0;
16891}
16892
16893static int msm_routing_aanc_noise_level_put(struct snd_kcontrol *kcontrol,
16894 struct snd_ctl_elem_value *ucontrol)
16895{
16896 int ret = 0;
16897
16898 mutex_lock(&routing_lock);
16899 aanc_level = ucontrol->value.integer.value[0];
16900 pr_debug("%s: value: %ld\n",
16901 __func__, ucontrol->value.integer.value[0]);
16902 ret = afe_set_aanc_noise_level(aanc_level);
16903 mutex_unlock(&routing_lock);
16904
16905 return ret;
16906}
16907
16908static const struct snd_kcontrol_new aanc_noise_level[] = {
16909 SOC_SINGLE_EXT("AANC Noise Level", SND_SOC_NOPM, 0, 255,
16910 0, msm_routing_aanc_noise_level_get, msm_routing_aanc_noise_level_put)
16911};
16912
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016913static int msm_routing_get_stereo_to_custom_stereo_control(
16914 struct snd_kcontrol *kcontrol,
16915 struct snd_ctl_elem_value *ucontrol)
16916{
16917 ucontrol->value.integer.value[0] = is_custom_stereo_on;
16918 return 0;
16919}
16920
16921static int msm_routing_put_stereo_to_custom_stereo_control(
16922 struct snd_kcontrol *kcontrol,
16923 struct snd_ctl_elem_value *ucontrol)
16924{
16925 int flag = 0, i = 0, rc = 0, idx = 0;
16926 int be_index = 0, port_id, topo_id;
16927 unsigned int session_id = 0;
16928 uint16_t op_FL_ip_FL_weight = 0;
16929 uint16_t op_FL_ip_FR_weight = 0;
16930 uint16_t op_FR_ip_FL_weight = 0;
16931 uint16_t op_FR_ip_FR_weight = 0;
16932
16933 flag = ucontrol->value.integer.value[0];
16934 pr_debug("%s E flag %d\n", __func__, flag);
16935
16936 if ((is_custom_stereo_on && flag) || (!is_custom_stereo_on && !flag)) {
16937 pr_err("%s: is_custom_stereo_on %d, flag %d\n",
16938 __func__, is_custom_stereo_on, flag);
16939 return 0;
16940 }
16941 is_custom_stereo_on = flag ? true : false;
16942 pr_debug("%s:is_custom_stereo_on %d\n", __func__, is_custom_stereo_on);
16943 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
16944 port_id = msm_bedais[be_index].port_id;
16945 if (!msm_bedais[be_index].active)
16946 continue;
16947 if ((port_id != SLIMBUS_0_RX) &&
16948 (port_id != RT_PROXY_PORT_001_RX) &&
16949 (port_id != AFE_PORT_ID_PRIMARY_MI2S_RX) &&
16950 (port_id != AFE_PORT_ID_INT4_MI2S_RX))
16951 continue;
16952
16953 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
16954 MSM_FRONTEND_DAI_MM_SIZE) {
16955 if (fe_dai_map[i][SESSION_TYPE_RX].perf_mode !=
16956 LEGACY_PCM_MODE)
16957 goto skip_send_custom_stereo;
16958 session_id =
16959 fe_dai_map[i][SESSION_TYPE_RX].strm_id;
16960 if (is_custom_stereo_on) {
16961 op_FL_ip_FL_weight =
16962 Q14_GAIN_ZERO_POINT_FIVE;
16963 op_FL_ip_FR_weight =
16964 Q14_GAIN_ZERO_POINT_FIVE;
16965 op_FR_ip_FL_weight =
16966 Q14_GAIN_ZERO_POINT_FIVE;
16967 op_FR_ip_FR_weight =
16968 Q14_GAIN_ZERO_POINT_FIVE;
16969 } else {
16970 op_FL_ip_FL_weight = Q14_GAIN_UNITY;
16971 op_FL_ip_FR_weight = 0;
16972 op_FR_ip_FL_weight = 0;
16973 op_FR_ip_FR_weight = Q14_GAIN_UNITY;
16974 }
16975 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
16976 unsigned long copp =
16977 session_copp_map[i]
16978 [SESSION_TYPE_RX][be_index];
16979 if (!test_bit(idx, &copp))
16980 goto skip_send_custom_stereo;
16981 topo_id = adm_get_topology_for_port_copp_idx(
16982 msm_bedais[be_index].port_id, idx);
16983 if (topo_id < 0)
16984 pr_debug("%s:Err:custom stereo topo %d",
16985 __func__, topo_id);
16986 pr_debug("idx %d\n", idx);
16987 if (topo_id == DS2_ADM_COPP_TOPOLOGY_ID)
16988 rc = msm_ds2_dap_set_custom_stereo_onoff
16989 (msm_bedais[be_index].port_id,
16990 idx, is_custom_stereo_on);
16991 else if (topo_id == DOLBY_ADM_COPP_TOPOLOGY_ID)
16992 rc = dolby_dap_set_custom_stereo_onoff(
16993 msm_bedais[be_index].port_id,
16994 idx, is_custom_stereo_on);
16995 else
16996 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd
16997 (msm_bedais[be_index].port_id,
16998 idx, session_id,
16999 op_FL_ip_FL_weight,
17000 op_FL_ip_FR_weight,
17001 op_FR_ip_FL_weight,
17002 op_FR_ip_FR_weight);
17003 if (rc < 0)
17004skip_send_custom_stereo:
17005 pr_err("%s: err setting custom stereo\n",
17006 __func__);
17007 }
17008
17009 }
17010 }
17011 return 0;
17012}
17013
17014static const struct snd_kcontrol_new stereo_to_custom_stereo_controls[] = {
17015 SOC_SINGLE_EXT("Set Custom Stereo OnOff", SND_SOC_NOPM, 0,
17016 1, 0, msm_routing_get_stereo_to_custom_stereo_control,
17017 msm_routing_put_stereo_to_custom_stereo_control),
17018};
17019
17020static int msm_routing_get_app_type_cfg_control(struct snd_kcontrol *kcontrol,
17021 struct snd_ctl_elem_value *ucontrol)
17022{
17023 return 0;
17024}
17025
17026static int msm_routing_put_app_type_cfg_control(struct snd_kcontrol *kcontrol,
17027 struct snd_ctl_elem_value *ucontrol)
17028{
17029 int i = 0, j;
17030 int num_app_types = ucontrol->value.integer.value[i++];
17031
17032 pr_debug("%s\n", __func__);
17033
17034 memset(app_type_cfg, 0, MAX_APP_TYPES*
17035 sizeof(struct msm_pcm_routing_app_type_data));
17036 if (num_app_types > MAX_APP_TYPES) {
17037 pr_err("%s: number of app types exceed the max supported\n",
17038 __func__);
17039 return -EINVAL;
17040 }
17041 for (j = 0; j < num_app_types; j++) {
17042 app_type_cfg[j].app_type =
17043 ucontrol->value.integer.value[i++];
17044 app_type_cfg[j].sample_rate =
17045 ucontrol->value.integer.value[i++];
17046 app_type_cfg[j].bit_width =
17047 ucontrol->value.integer.value[i++];
17048 }
17049
17050 return 0;
17051}
17052
17053static int msm_routing_put_app_type_gain_control(struct snd_kcontrol *kcontrol,
17054 struct snd_ctl_elem_value *ucontrol)
17055{
17056 int j, fe_id, be_id, port_type;
17057 int ret = 0;
17058 unsigned long copp;
17059 struct msm_pcm_routing_bdai_data *bedai;
17060 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
17061 SESSION_TYPE_RX;
17062 int app_type = ucontrol->value.integer.value[1];
17063 int gain = (ucontrol->value.integer.value[2] +
17064 ucontrol->value.integer.value[3])/2;
17065
17066 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
17067 MSM_AFE_PORT_TYPE_TX;
17068
17069 mutex_lock(&routing_lock);
17070 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
17071 if (is_be_dai_extproc(be_id))
17072 continue;
17073
17074 bedai = &msm_bedais[be_id];
17075 if (afe_get_port_type(bedai->port_id) != port_type)
17076 continue;
17077
17078 if (!bedai->active)
17079 continue;
17080
17081 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
17082 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
17083 continue;
17084
17085 if (app_type !=
17086 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
17087 continue;
17088
17089 copp = session_copp_map[fe_id][dir][be_id];
17090 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
17091 if (!test_bit(j, &copp))
17092 continue;
17093 ret |= adm_set_volume(bedai->port_id, j, gain);
17094 }
17095 }
17096 }
17097 mutex_unlock(&routing_lock);
17098 return ret ? -EINVAL : 0;
17099}
17100
17101static const struct snd_kcontrol_new app_type_cfg_controls[] = {
17102 SOC_SINGLE_MULTI_EXT("App Type Config", SND_SOC_NOPM, 0,
17103 0xFFFFFFFF, 0, 128, msm_routing_get_app_type_cfg_control,
17104 msm_routing_put_app_type_cfg_control),
17105 SOC_SINGLE_MULTI_EXT("App Type Gain", SND_SOC_NOPM, 0,
17106 0x2000, 0, 4, NULL, msm_routing_put_app_type_gain_control)
17107};
17108
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017109static int msm_routing_put_module_cfg_control(struct snd_kcontrol *kcontrol,
17110 struct snd_ctl_elem_value *ucontrol)
17111{
17112 int copp_idx, fe_id, be_id, port_type;
17113 int ret = 0;
17114 unsigned long copp;
17115 struct msm_pcm_routing_bdai_data *bedai;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017116 u8 *packed_params = NULL;
17117 struct param_hdr_v3 param_hdr;
17118 u32 packed_param_size = (sizeof(struct param_hdr_v3) +
17119 sizeof(uint32_t));
17120
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017121 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
17122 SESSION_TYPE_RX;
17123 int app_type = ucontrol->value.integer.value[1];
17124 int module_id = ucontrol->value.integer.value[2];
17125 int instance_id = ucontrol->value.integer.value[3];
17126 int param_id = ucontrol->value.integer.value[4];
17127 int param_value = ucontrol->value.integer.value[5];
17128
17129 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
17130 MSM_AFE_PORT_TYPE_TX;
17131 pr_debug("%s app_type:%d mod_id:%d instance_id:%d param_id:%d value:%d\n",
17132 __func__, app_type, module_id,
17133 instance_id, param_id, param_value);
17134
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017135 packed_params = kzalloc(packed_param_size, GFP_KERNEL);
17136 if (!packed_params)
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017137 return -ENOMEM;
17138
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017139 memset(&param_hdr, 0, sizeof(param_hdr));
17140 param_hdr.module_id = module_id;
17141 param_hdr.instance_id = instance_id;
17142 param_hdr.param_id = param_id;
17143 param_hdr.param_size = sizeof(uint32_t);
17144
17145 packed_param_size = 0;
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017146
17147 mutex_lock(&routing_lock);
17148 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
17149 if (is_be_dai_extproc(be_id))
17150 continue;
17151
17152 bedai = &msm_bedais[be_id];
17153 if (afe_get_port_type(bedai->port_id) != port_type)
17154 continue;
17155
17156 if (!bedai->active)
17157 continue;
17158
17159 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
17160 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
17161 continue;
17162
17163 if (app_type !=
17164 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
17165 continue;
17166
17167 copp = session_copp_map[fe_id][dir][be_id];
17168 for (copp_idx = 0; copp_idx < MAX_COPPS_PER_PORT;
17169 copp_idx++) {
17170 if (!test_bit(copp_idx, &copp))
17171 continue;
17172
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017173 ret = q6common_pack_pp_params(packed_params,
17174 &param_hdr,
17175 (u8 *) &param_value,
17176 &packed_param_size);
17177 if (ret) {
17178 pr_err("%s: Failed to pack params, error %d\n",
17179 __func__, ret);
17180 goto done;
17181 }
17182
17183 ret = adm_set_pp_params(bedai->port_id,
17184 copp_idx, NULL,
17185 packed_params,
17186 packed_param_size);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017187 if (ret) {
17188 pr_err("%s: Setting param failed with err=%d\n",
17189 __func__, ret);
17190 ret = -EINVAL;
17191 goto done;
17192 }
17193 }
17194 }
17195 }
17196done:
17197 mutex_unlock(&routing_lock);
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017198 kfree(packed_params);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017199 return ret;
17200}
17201
17202static const struct snd_kcontrol_new module_cfg_controls[] = {
17203 SOC_SINGLE_MULTI_EXT("Audio Effect", SND_SOC_NOPM, 0,
17204 0x2000, 0, 6, NULL, msm_routing_put_module_cfg_control)
17205};
17206
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017207static int msm_routing_get_lsm_app_type_cfg_control(
17208 struct snd_kcontrol *kcontrol,
17209 struct snd_ctl_elem_value *ucontrol)
17210{
17211 return 0;
17212}
17213
17214static int msm_routing_put_lsm_app_type_cfg_control(
17215 struct snd_kcontrol *kcontrol,
17216 struct snd_ctl_elem_value *ucontrol)
17217{
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017218 int shift = ((struct soc_multi_mixer_control *)
17219 kcontrol->private_value)->shift;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017220 int i = 0, j;
17221 int num_app_types = ucontrol->value.integer.value[i++];
17222
17223 memset(lsm_app_type_cfg, 0, MAX_APP_TYPES*
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017224 sizeof(struct msm_pcm_routing_app_type_data));
17225
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017226 if (num_app_types > MAX_APP_TYPES) {
17227 pr_err("%s: number of app types exceed the max supported\n",
17228 __func__);
17229 return -EINVAL;
17230 }
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017231
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017232 for (j = 0; j < num_app_types; j++) {
17233 lsm_app_type_cfg[j].app_type =
17234 ucontrol->value.integer.value[i++];
17235 lsm_app_type_cfg[j].sample_rate =
17236 ucontrol->value.integer.value[i++];
17237 lsm_app_type_cfg[j].bit_width =
17238 ucontrol->value.integer.value[i++];
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017239 /* Shift of 1 indicates this is V2 mixer control */
17240 if (shift == 1)
17241 lsm_app_type_cfg[j].num_out_channels =
17242 ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017243 }
17244
17245 return 0;
17246}
17247
17248static const struct snd_kcontrol_new lsm_app_type_cfg_controls[] = {
17249 SOC_SINGLE_MULTI_EXT("Listen App Type Config", SND_SOC_NOPM, 0,
17250 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
17251 msm_routing_put_lsm_app_type_cfg_control),
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017252 SOC_SINGLE_MULTI_EXT("Listen App Type Config V2", SND_SOC_NOPM, 1,
17253 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
17254 msm_routing_put_lsm_app_type_cfg_control),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017255};
17256
17257static int msm_routing_get_use_ds1_or_ds2_control(
17258 struct snd_kcontrol *kcontrol,
17259 struct snd_ctl_elem_value *ucontrol)
17260{
17261 ucontrol->value.integer.value[0] = is_ds2_on;
17262 return 0;
17263}
17264
17265static int msm_routing_put_use_ds1_or_ds2_control(
17266 struct snd_kcontrol *kcontrol,
17267 struct snd_ctl_elem_value *ucontrol)
17268{
17269 is_ds2_on = ucontrol->value.integer.value[0];
17270 return 0;
17271}
17272
17273static const struct snd_kcontrol_new use_ds1_or_ds2_controls[] = {
17274 SOC_SINGLE_EXT("DS2 OnOff", SND_SOC_NOPM, 0,
17275 1, 0, msm_routing_get_use_ds1_or_ds2_control,
17276 msm_routing_put_use_ds1_or_ds2_control),
17277};
17278
17279int msm_routing_get_rms_value_control(struct snd_kcontrol *kcontrol,
17280 struct snd_ctl_elem_value *ucontrol) {
17281 int rc = 0;
17282 int be_idx = 0;
17283 char *param_value;
17284 int *update_param_value;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017285 uint32_t param_size = (RMS_PAYLOAD_LEN + 1) * sizeof(uint32_t);
17286 struct param_hdr_v3 param_hdr;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017287
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017288 param_value = kzalloc(param_size, GFP_KERNEL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017289 if (!param_value)
17290 return -ENOMEM;
17291
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017292 memset(&param_hdr, 0, sizeof(param_hdr));
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017293 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++)
17294 if (msm_bedais[be_idx].port_id == SLIMBUS_0_TX)
17295 break;
17296 if ((be_idx < MSM_BACKEND_DAI_MAX) && msm_bedais[be_idx].active) {
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017297 param_hdr.module_id = RMS_MODULEID_APPI_PASSTHRU;
17298 param_hdr.instance_id = INSTANCE_ID_0;
17299 param_hdr.param_id = RMS_PARAM_FIRST_SAMPLE;
17300 param_hdr.param_size = param_size;
17301 rc = adm_get_pp_params(SLIMBUS_0_TX, 0, ADM_CLIENT_ID_DEFAULT,
17302 NULL, &param_hdr, (u8 *) param_value);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017303 if (rc) {
17304 pr_err("%s: get parameters failed:%d\n", __func__, rc);
17305 kfree(param_value);
17306 return -EINVAL;
17307 }
17308 update_param_value = (int *)param_value;
17309 ucontrol->value.integer.value[0] = update_param_value[0];
17310
17311 pr_debug("%s: FROM DSP value[0] 0x%x\n",
17312 __func__, update_param_value[0]);
17313 }
17314 kfree(param_value);
17315 return 0;
17316}
17317
17318static int msm_voc_session_id_put(struct snd_kcontrol *kcontrol,
17319 struct snd_ctl_elem_value *ucontrol)
17320{
17321 voc_session_id = ucontrol->value.integer.value[0];
17322
17323 pr_debug("%s: voc_session_id=%u\n", __func__, voc_session_id);
17324
17325 return 0;
17326}
17327
17328static int msm_voc_session_id_get(struct snd_kcontrol *kcontrol,
17329 struct snd_ctl_elem_value *ucontrol)
17330{
17331 ucontrol->value.integer.value[0] = voc_session_id;
17332
17333 return 0;
17334}
17335
17336static struct snd_kcontrol_new msm_voc_session_controls[] = {
17337 SOC_SINGLE_MULTI_EXT("Voc VSID", SND_SOC_NOPM, 0,
17338 0xFFFFFFFF, 0, 1, msm_voc_session_id_get,
17339 msm_voc_session_id_put),
17340};
17341
17342static int msm_sound_focus_info(struct snd_kcontrol *kcontrol,
17343 struct snd_ctl_elem_info *uinfo)
17344{
17345 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
17346 uinfo->count = sizeof(struct sound_focus_param);
17347
17348 return 0;
17349}
17350
17351static int msm_voice_sound_focus_put(struct snd_kcontrol *kcontrol,
17352 struct snd_ctl_elem_value *ucontrol)
17353{
17354 int ret = 0;
17355 struct sound_focus_param soundFocusData;
17356
17357 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
17358 sizeof(struct sound_focus_param));
17359 ret = voc_set_sound_focus(soundFocusData);
17360 if (ret) {
17361 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
17362 __func__, ret);
17363
17364 ret = -EINVAL;
17365 }
17366
17367 return ret;
17368}
17369
17370static int msm_voice_sound_focus_get(struct snd_kcontrol *kcontrol,
17371 struct snd_ctl_elem_value *ucontrol)
17372{
17373 int ret = 0;
17374 struct sound_focus_param soundFocusData;
17375
17376 memset(&soundFocusData, 0, sizeof(struct sound_focus_param));
17377
17378 ret = voc_get_sound_focus(&soundFocusData);
17379 if (ret) {
17380 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
17381 __func__, ret);
17382
17383 ret = -EINVAL;
17384 goto done;
17385 }
17386 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
17387 sizeof(struct sound_focus_param));
17388
17389done:
17390 return ret;
17391}
17392
17393static int msm_source_tracking_info(struct snd_kcontrol *kcontrol,
17394 struct snd_ctl_elem_info *uinfo)
17395{
17396 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
17397 uinfo->count = sizeof(struct source_tracking_param);
17398
17399 return 0;
17400}
17401
17402static int msm_voice_source_tracking_get(struct snd_kcontrol *kcontrol,
17403 struct snd_ctl_elem_value *ucontrol)
17404{
Meng Wang92edfde2018-04-24 12:18:37 +080017405 int ret = 0;
17406 struct source_tracking_param sourceTrackingData;
17407
17408 memset(&sourceTrackingData, 0, sizeof(struct source_tracking_param));
17409
17410 ret = voc_get_source_tracking(&sourceTrackingData);
17411 if (ret) {
17412 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
17413 __func__, ret);
17414
17415 ret = -EINVAL;
17416 goto done;
17417 }
17418 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
17419 sizeof(struct source_tracking_param));
17420
17421done:
17422 return ret;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017423}
17424
17425static int msm_audio_get_copp_idx_from_port_id(int port_id, int session_type,
17426 int *copp_idx)
17427{
17428 int i, idx, be_idx;
17429 int ret = 0;
17430 unsigned long copp;
17431
17432 pr_debug("%s: Enter, port_id=%d\n", __func__, port_id);
17433
17434 ret = q6audio_validate_port(port_id);
17435 if (ret < 0) {
17436 pr_err("%s: port validation failed id 0x%x ret %d\n",
17437 __func__, port_id, ret);
17438
17439 ret = -EINVAL;
17440 goto done;
17441 }
17442
17443 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
17444 if (msm_bedais[be_idx].port_id == port_id)
17445 break;
17446 }
17447 if (be_idx >= MSM_BACKEND_DAI_MAX) {
17448 pr_err("%s: Invalid be id %d\n", __func__, be_idx);
17449
17450 ret = -EINVAL;
17451 goto done;
17452 }
17453
17454 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
17455 MSM_FRONTEND_DAI_MM_SIZE) {
17456 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
17457 copp = session_copp_map[i]
17458 [session_type][be_idx];
17459 if (test_bit(idx, &copp))
17460 break;
17461 }
17462 if (idx >= MAX_COPPS_PER_PORT)
17463 continue;
17464 else
17465 break;
17466 }
17467 if (i >= MSM_FRONTEND_DAI_MM_SIZE) {
17468 pr_err("%s: Invalid FE, exiting\n", __func__);
17469
17470 ret = -EINVAL;
17471 goto done;
17472 }
17473 *copp_idx = idx;
17474 pr_debug("%s: copp_idx=%d\n", __func__, *copp_idx);
17475
17476done:
17477 return ret;
17478}
17479
17480static int msm_audio_sound_focus_derive_port_id(struct snd_kcontrol *kcontrol,
17481 const char *prefix, int *port_id)
17482{
17483 int ret = 0;
17484
17485 pr_debug("%s: Enter, prefix:%s\n", __func__, prefix);
17486
17487 /*
17488 * Mixer control name will be like "Sound Focus Audio Tx SLIMBUS_0"
17489 * where the prefix is "Sound Focus Audio Tx ". Skip the prefix
17490 * and compare the string with the backend name to derive the port id.
17491 */
17492 if (!strcmp(kcontrol->id.name + strlen(prefix),
17493 "SLIMBUS_0")) {
17494 *port_id = SLIMBUS_0_TX;
17495 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17496 "TERT_MI2S")) {
17497 *port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
17498 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17499 "INT3_MI2S")) {
17500 *port_id = AFE_PORT_ID_INT3_MI2S_TX;
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053017501 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17502 "VA_CDC_DMA_TX_0")) {
17503 *port_id = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053017504 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17505 "TX_CDC_DMA_TX_3")) {
17506 *port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017507 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17508 "QUIN_TDM_TX_0")) {
17509 *port_id = AFE_PORT_ID_QUINARY_TDM_TX;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017510 } else {
17511 pr_err("%s: mixer ctl name=%s, could not derive valid port id\n",
17512 __func__, kcontrol->id.name);
17513
17514 ret = -EINVAL;
17515 goto done;
17516 }
17517 pr_debug("%s: mixer ctl name=%s, derived port_id=%d\n",
17518 __func__, kcontrol->id.name, *port_id);
17519
17520done:
17521 return ret;
17522}
17523
17524static int msm_audio_sound_focus_put(struct snd_kcontrol *kcontrol,
17525 struct snd_ctl_elem_value *ucontrol)
17526{
17527 int ret = 0;
17528 struct sound_focus_param soundFocusData;
17529 int port_id, copp_idx;
17530
17531 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17532 "Sound Focus Audio Tx ", &port_id);
17533 if (ret != 0) {
17534 pr_err("%s: Error in deriving port id, err=%d\n",
17535 __func__, ret);
17536
17537 ret = -EINVAL;
17538 goto done;
17539 }
17540
17541 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17542 &copp_idx);
17543 if (ret) {
17544 pr_err("%s: Could not get copp idx for port_id=%d\n",
17545 __func__, port_id);
17546
17547 ret = -EINVAL;
17548 goto done;
17549 }
17550
17551 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
17552 sizeof(struct sound_focus_param));
17553
17554 ret = adm_set_sound_focus(port_id, copp_idx, soundFocusData);
17555 if (ret) {
17556 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
17557 __func__, ret);
17558
17559 ret = -EINVAL;
17560 goto done;
17561 }
17562
17563done:
17564 return ret;
17565}
17566
17567static int msm_audio_sound_focus_get(struct snd_kcontrol *kcontrol,
17568 struct snd_ctl_elem_value *ucontrol)
17569{
17570 int ret = 0;
17571 struct sound_focus_param soundFocusData;
17572 int port_id, copp_idx;
17573
17574 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17575 "Sound Focus Audio Tx ", &port_id);
17576 if (ret) {
17577 pr_err("%s: Error in deriving port id, err=%d\n",
17578 __func__, ret);
17579
17580 ret = -EINVAL;
17581 goto done;
17582 }
17583
17584 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17585 &copp_idx);
17586 if (ret) {
17587 pr_err("%s: Could not get copp idx for port_id=%d\n",
17588 __func__, port_id);
17589
17590 ret = -EINVAL;
17591 goto done;
17592 }
17593
17594 ret = adm_get_sound_focus(port_id, copp_idx, &soundFocusData);
17595 if (ret) {
17596 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
17597 __func__, ret);
17598
17599 ret = -EINVAL;
17600 goto done;
17601 }
17602
17603 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
17604 sizeof(struct sound_focus_param));
17605
17606done:
17607 return ret;
17608}
17609
17610static int msm_audio_source_tracking_get(struct snd_kcontrol *kcontrol,
17611 struct snd_ctl_elem_value *ucontrol)
17612{
17613 int ret = 0;
17614 struct source_tracking_param sourceTrackingData;
17615 int port_id, copp_idx;
17616
17617 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17618 "Source Tracking Audio Tx ", &port_id);
17619 if (ret) {
17620 pr_err("%s: Error in deriving port id, err=%d\n",
17621 __func__, ret);
17622
17623 ret = -EINVAL;
17624 goto done;
17625 }
17626
17627 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17628 &copp_idx);
17629 if (ret) {
17630 pr_err("%s: Could not get copp idx for port_id=%d\n",
17631 __func__, port_id);
17632
17633 ret = -EINVAL;
17634 goto done;
17635 }
17636
17637 ret = adm_get_source_tracking(port_id, copp_idx, &sourceTrackingData);
17638 if (ret) {
17639 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
17640 __func__, ret);
17641
17642 ret = -EINVAL;
17643 goto done;
17644 }
17645
17646 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
17647 sizeof(struct source_tracking_param));
17648
17649done:
17650 return ret;
17651}
17652
17653static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
17654 {
17655 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17656 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17657 .name = "Sound Focus Voice Tx SLIMBUS_0",
17658 .info = msm_sound_focus_info,
17659 .get = msm_voice_sound_focus_get,
17660 .put = msm_voice_sound_focus_put,
17661 },
17662 {
17663 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17664 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17665 .name = "Source Tracking Voice Tx SLIMBUS_0",
17666 .info = msm_source_tracking_info,
17667 .get = msm_voice_source_tracking_get,
17668 },
17669 {
17670 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17671 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17672 .name = "Sound Focus Audio Tx SLIMBUS_0",
17673 .info = msm_sound_focus_info,
17674 .get = msm_audio_sound_focus_get,
17675 .put = msm_audio_sound_focus_put,
17676 },
17677 {
17678 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17679 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17680 .name = "Source Tracking Audio Tx SLIMBUS_0",
17681 .info = msm_source_tracking_info,
17682 .get = msm_audio_source_tracking_get,
17683 },
17684 {
17685 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17686 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17687 .name = "Sound Focus Voice Tx TERT_MI2S",
17688 .info = msm_sound_focus_info,
17689 .get = msm_voice_sound_focus_get,
17690 .put = msm_voice_sound_focus_put,
17691 },
17692 {
17693 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17694 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17695 .name = "Source Tracking Voice Tx TERT_MI2S",
17696 .info = msm_source_tracking_info,
17697 .get = msm_voice_source_tracking_get,
17698 },
17699 {
17700 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17701 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17702 .name = "Sound Focus Audio Tx TERT_MI2S",
17703 .info = msm_sound_focus_info,
17704 .get = msm_audio_sound_focus_get,
17705 .put = msm_audio_sound_focus_put,
17706 },
17707 {
17708 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17709 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17710 .name = "Source Tracking Audio Tx TERT_MI2S",
17711 .info = msm_source_tracking_info,
17712 .get = msm_audio_source_tracking_get,
17713 },
17714 {
17715 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17716 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17717 .name = "Sound Focus Voice Tx INT3_MI2S",
17718 .info = msm_sound_focus_info,
17719 .get = msm_voice_sound_focus_get,
17720 .put = msm_voice_sound_focus_put,
17721 },
17722 {
17723 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17724 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17725 .name = "Source Tracking Voice Tx INT3_MI2S",
17726 .info = msm_source_tracking_info,
17727 .get = msm_voice_source_tracking_get,
17728 },
17729 {
17730 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17731 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17732 .name = "Sound Focus Audio Tx INT3_MI2S",
17733 .info = msm_sound_focus_info,
17734 .get = msm_audio_sound_focus_get,
17735 .put = msm_audio_sound_focus_put,
17736 },
17737 {
17738 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17739 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17740 .name = "Source Tracking Audio Tx INT3_MI2S",
17741 .info = msm_source_tracking_info,
17742 .get = msm_audio_source_tracking_get,
17743 },
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053017744 {
17745 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17746 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17747 .name = "Sound Focus Voice Tx VA_CDC_DMA_TX_0",
17748 .info = msm_sound_focus_info,
17749 .get = msm_voice_sound_focus_get,
17750 .put = msm_voice_sound_focus_put,
17751 },
17752 {
17753 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17754 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17755 .name = "Source Tracking Voice Tx VA_CDC_DMA_TX_0",
17756 .info = msm_source_tracking_info,
17757 .get = msm_voice_source_tracking_get,
17758 },
17759 {
17760 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17761 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17762 .name = "Sound Focus Audio Tx VA_CDC_DMA_TX_0",
17763 .info = msm_sound_focus_info,
17764 .get = msm_audio_sound_focus_get,
17765 .put = msm_audio_sound_focus_put,
17766 },
17767 {
17768 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17769 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17770 .name = "Source Tracking Audio Tx VA_CDC_DMA_TX_0",
17771 .info = msm_source_tracking_info,
17772 .get = msm_audio_source_tracking_get,
17773 },
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053017774 {
17775 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17776 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17777 .name = "Sound Focus Voice Tx TX_CDC_DMA_TX_3",
17778 .info = msm_sound_focus_info,
17779 .get = msm_voice_sound_focus_get,
17780 .put = msm_voice_sound_focus_put,
17781 },
17782 {
17783 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17784 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17785 .name = "Source Tracking Voice Tx TX_CDC_DMA_TX_3",
17786 .info = msm_source_tracking_info,
17787 .get = msm_voice_source_tracking_get,
17788 },
17789 {
17790 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17791 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17792 .name = "Sound Focus Audio Tx TX_CDC_DMA_TX_3",
17793 .info = msm_sound_focus_info,
17794 .get = msm_audio_sound_focus_get,
17795 .put = msm_audio_sound_focus_put,
17796 },
17797 {
17798 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17799 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17800 .name = "Source Tracking Audio Tx TX_CDC_DMA_TX_3",
17801 .info = msm_source_tracking_info,
17802 .get = msm_audio_source_tracking_get,
17803 },
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017804 {
17805 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17806 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17807 .name = "Sound Focus Voice Tx QUIN_TDM_TX_0",
17808 .info = msm_sound_focus_info,
17809 .get = msm_voice_sound_focus_get,
17810 .put = msm_voice_sound_focus_put,
17811 },
17812 {
17813 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17814 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17815 .name = "Source Tracking Voice Tx QUIN_TDM_TX_0",
17816 .info = msm_source_tracking_info,
17817 .get = msm_voice_source_tracking_get,
17818 },
17819 {
17820 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17821 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17822 .name = "Sound Focus Audio Tx QUIN_TDM_TX_0",
17823 .info = msm_sound_focus_info,
17824 .get = msm_audio_sound_focus_get,
17825 .put = msm_audio_sound_focus_put,
17826 },
17827 {
17828 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17829 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17830 .name = "Source Tracking Audio Tx QUIN_TDM_TX_0",
17831 .info = msm_source_tracking_info,
17832 .get = msm_audio_source_tracking_get,
17833 },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017834};
17835
17836static int spkr_prot_put_vi_lch_port(struct snd_kcontrol *kcontrol,
17837 struct snd_ctl_elem_value *ucontrol)
17838{
17839 int ret = 0;
17840 int item;
17841 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
17842
17843 pr_debug("%s item is %d\n", __func__,
17844 ucontrol->value.enumerated.item[0]);
17845 mutex_lock(&routing_lock);
17846 item = ucontrol->value.enumerated.item[0];
17847 if (item < e->items) {
17848 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
17849 __func__, e->shift_l, e->values[item]);
17850 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
17851 e->values[item] < MSM_BACKEND_DAI_MAX)
17852 /* Enable feedback TX path */
17853 ret = afe_spk_prot_feed_back_cfg(
17854 msm_bedais[e->values[item]].port_id,
17855 msm_bedais[e->shift_l].port_id, 1, 0, 1);
17856 else {
17857 pr_debug("%s values are out of range item %d\n",
17858 __func__, e->values[item]);
17859 /* Disable feedback TX path */
17860 if (e->values[item] == MSM_BACKEND_DAI_MAX)
17861 ret = afe_spk_prot_feed_back_cfg(0, 0, 0, 0, 0);
17862 else
17863 ret = -EINVAL;
17864 }
17865 } else {
17866 pr_err("%s item value is out of range item\n", __func__);
17867 ret = -EINVAL;
17868 }
17869 mutex_unlock(&routing_lock);
17870 return ret;
17871}
17872
17873static int spkr_prot_put_vi_rch_port(struct snd_kcontrol *kcontrol,
17874 struct snd_ctl_elem_value *ucontrol)
17875{
17876 int ret = 0;
17877 int item;
17878 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
17879
17880 pr_debug("%s item is %d\n", __func__,
17881 ucontrol->value.enumerated.item[0]);
17882 mutex_lock(&routing_lock);
17883 item = ucontrol->value.enumerated.item[0];
17884 if (item < e->items) {
17885 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
17886 __func__, e->shift_l, e->values[item]);
17887 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
17888 e->values[item] < MSM_BACKEND_DAI_MAX)
17889 /* Enable feedback TX path */
17890 ret = afe_spk_prot_feed_back_cfg(
17891 msm_bedais[e->values[item]].port_id,
17892 msm_bedais[e->shift_l].port_id,
17893 1, 1, 1);
17894 else {
17895 pr_debug("%s values are out of range item %d\n",
17896 __func__, e->values[item]);
17897 /* Disable feedback TX path */
17898 if (e->values[item] == MSM_BACKEND_DAI_MAX)
17899 ret = afe_spk_prot_feed_back_cfg(0,
17900 0, 0, 0, 0);
17901 else
17902 ret = -EINVAL;
17903 }
17904 } else {
17905 pr_err("%s item value is out of range item\n", __func__);
17906 ret = -EINVAL;
17907 }
17908 mutex_unlock(&routing_lock);
17909 return ret;
17910}
17911
17912static int spkr_prot_get_vi_lch_port(struct snd_kcontrol *kcontrol,
17913 struct snd_ctl_elem_value *ucontrol)
17914{
17915 pr_debug("%s\n", __func__);
17916 return 0;
17917}
17918
17919static int spkr_prot_get_vi_rch_port(struct snd_kcontrol *kcontrol,
17920 struct snd_ctl_elem_value *ucontrol)
17921{
17922 pr_debug("%s\n", __func__);
17923 ucontrol->value.enumerated.item[0] = 0;
17924 return 0;
17925}
17926
17927static const char * const slim0_rx_vi_fb_tx_lch_mux_text[] = {
17928 "ZERO", "SLIM4_TX"
17929};
17930
17931static const char * const slim0_rx_vi_fb_tx_rch_mux_text[] = {
17932 "ZERO", "SLIM4_TX"
17933};
17934
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017935static const char * const wsa_rx_0_vi_fb_tx_lch_mux_text[] = {
17936 "ZERO", "WSA_CDC_DMA_TX_0"
17937};
17938
17939static const char * const wsa_rx_0_vi_fb_tx_rch_mux_text[] = {
17940 "ZERO", "WSA_CDC_DMA_TX_0"
17941};
17942
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017943static const char * const mi2s_rx_vi_fb_tx_mux_text[] = {
17944 "ZERO", "SENARY_TX"
17945};
17946
17947static const char * const int4_mi2s_rx_vi_fb_tx_mono_mux_text[] = {
17948 "ZERO", "INT5_MI2S_TX"
17949};
17950
17951static const char * const int4_mi2s_rx_vi_fb_tx_stereo_mux_text[] = {
17952 "ZERO", "INT5_MI2S_TX"
17953};
17954
17955static const int const slim0_rx_vi_fb_tx_lch_value[] = {
17956 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
17957};
17958
17959static const int const slim0_rx_vi_fb_tx_rch_value[] = {
17960 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
17961};
17962
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017963static const int const wsa_rx_0_vi_fb_tx_lch_value[] = {
17964 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
17965};
17966
17967static const int const wsa_rx_0_vi_fb_tx_rch_value[] = {
17968 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
17969};
17970
17971
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017972static const int const mi2s_rx_vi_fb_tx_value[] = {
17973 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SENARY_MI2S_TX
17974};
17975
17976static const int const int4_mi2s_rx_vi_fb_tx_mono_ch_value[] = {
17977 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
17978};
17979
17980static const int const int4_mi2s_rx_vi_fb_tx_stereo_ch_value[] = {
17981 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
17982};
17983
17984static const struct soc_enum slim0_rx_vi_fb_lch_mux_enum =
17985 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
17986 ARRAY_SIZE(slim0_rx_vi_fb_tx_lch_mux_text),
17987 slim0_rx_vi_fb_tx_lch_mux_text, slim0_rx_vi_fb_tx_lch_value);
17988
17989static const struct soc_enum slim0_rx_vi_fb_rch_mux_enum =
17990 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
17991 ARRAY_SIZE(slim0_rx_vi_fb_tx_rch_mux_text),
17992 slim0_rx_vi_fb_tx_rch_mux_text, slim0_rx_vi_fb_tx_rch_value);
17993
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017994static const struct soc_enum wsa_rx_0_vi_fb_lch_mux_enum =
17995 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
17996 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_lch_mux_text),
17997 wsa_rx_0_vi_fb_tx_lch_mux_text, wsa_rx_0_vi_fb_tx_lch_value);
17998
17999static const struct soc_enum wsa_rx_0_vi_fb_rch_mux_enum =
18000 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
18001 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_rch_mux_text),
18002 wsa_rx_0_vi_fb_tx_rch_mux_text, wsa_rx_0_vi_fb_tx_rch_value);
18003
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018004static const struct soc_enum mi2s_rx_vi_fb_mux_enum =
18005 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_PRI_MI2S_RX, 0, 0,
18006 ARRAY_SIZE(mi2s_rx_vi_fb_tx_mux_text),
18007 mi2s_rx_vi_fb_tx_mux_text, mi2s_rx_vi_fb_tx_value);
18008
18009static const struct soc_enum int4_mi2s_rx_vi_fb_mono_ch_mux_enum =
18010 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
18011 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_mono_mux_text),
18012 int4_mi2s_rx_vi_fb_tx_mono_mux_text,
18013 int4_mi2s_rx_vi_fb_tx_mono_ch_value);
18014
18015static const struct soc_enum int4_mi2s_rx_vi_fb_stereo_ch_mux_enum =
18016 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
18017 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_stereo_mux_text),
18018 int4_mi2s_rx_vi_fb_tx_stereo_mux_text,
18019 int4_mi2s_rx_vi_fb_tx_stereo_ch_value);
18020
18021static const struct snd_kcontrol_new slim0_rx_vi_fb_lch_mux =
18022 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_LCH_MUX",
18023 slim0_rx_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
18024 spkr_prot_put_vi_lch_port);
18025
18026static const struct snd_kcontrol_new slim0_rx_vi_fb_rch_mux =
18027 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_RCH_MUX",
18028 slim0_rx_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
18029 spkr_prot_put_vi_rch_port);
18030
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018031static const struct snd_kcontrol_new wsa_rx_0_vi_fb_lch_mux =
18032 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_LCH_MUX",
18033 wsa_rx_0_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
18034 spkr_prot_put_vi_lch_port);
18035
18036static const struct snd_kcontrol_new wsa_rx_0_vi_fb_rch_mux =
18037 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_RCH_MUX",
18038 wsa_rx_0_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
18039 spkr_prot_put_vi_rch_port);
18040
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018041static const struct snd_kcontrol_new mi2s_rx_vi_fb_mux =
18042 SOC_DAPM_ENUM_EXT("PRI_MI2S_RX_VI_FB_MUX",
18043 mi2s_rx_vi_fb_mux_enum, spkr_prot_get_vi_lch_port,
18044 spkr_prot_put_vi_lch_port);
18045
18046static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_mono_ch_mux =
18047 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_MONO_CH_MUX",
18048 int4_mi2s_rx_vi_fb_mono_ch_mux_enum, spkr_prot_get_vi_lch_port,
18049 spkr_prot_put_vi_lch_port);
18050
18051static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_stereo_ch_mux =
18052 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX",
18053 int4_mi2s_rx_vi_fb_stereo_ch_mux_enum, spkr_prot_get_vi_rch_port,
18054 spkr_prot_put_vi_rch_port);
18055
18056static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
18057 /* Frontend AIF */
18058 /* Widget name equals to Front-End DAI name<Need confirmation>,
18059 * Stream name must contains substring of front-end dai name
18060 */
18061 SND_SOC_DAPM_AIF_IN("MM_DL1", "MultiMedia1 Playback", 0, 0, 0, 0),
18062 SND_SOC_DAPM_AIF_IN("MM_DL2", "MultiMedia2 Playback", 0, 0, 0, 0),
18063 SND_SOC_DAPM_AIF_IN("MM_DL3", "MultiMedia3 Playback", 0, 0, 0, 0),
18064 SND_SOC_DAPM_AIF_IN("MM_DL4", "MultiMedia4 Playback", 0, 0, 0, 0),
18065 SND_SOC_DAPM_AIF_IN("MM_DL5", "MultiMedia5 Playback", 0, 0, 0, 0),
18066 SND_SOC_DAPM_AIF_IN("MM_DL6", "MultiMedia6 Playback", 0, 0, 0, 0),
18067 SND_SOC_DAPM_AIF_IN("MM_DL7", "MultiMedia7 Playback", 0, 0, 0, 0),
18068 SND_SOC_DAPM_AIF_IN("MM_DL8", "MultiMedia8 Playback", 0, 0, 0, 0),
18069 SND_SOC_DAPM_AIF_IN("MM_DL9", "MultiMedia9 Playback", 0, 0, 0, 0),
18070 SND_SOC_DAPM_AIF_IN("MM_DL10", "MultiMedia10 Playback", 0, 0, 0, 0),
18071 SND_SOC_DAPM_AIF_IN("MM_DL11", "MultiMedia11 Playback", 0, 0, 0, 0),
18072 SND_SOC_DAPM_AIF_IN("MM_DL12", "MultiMedia12 Playback", 0, 0, 0, 0),
18073 SND_SOC_DAPM_AIF_IN("MM_DL13", "MultiMedia13 Playback", 0, 0, 0, 0),
18074 SND_SOC_DAPM_AIF_IN("MM_DL14", "MultiMedia14 Playback", 0, 0, 0, 0),
18075 SND_SOC_DAPM_AIF_IN("MM_DL15", "MultiMedia15 Playback", 0, 0, 0, 0),
18076 SND_SOC_DAPM_AIF_IN("MM_DL16", "MultiMedia16 Playback", 0, 0, 0, 0),
18077 SND_SOC_DAPM_AIF_IN("MM_DL20", "MultiMedia20 Playback", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070018078 SND_SOC_DAPM_AIF_IN("MM_DL21", "MultiMedia21 Playback", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053018079 SND_SOC_DAPM_AIF_IN("MM_DL26", "MultiMedia26 Playback", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018080 SND_SOC_DAPM_AIF_IN("VOIP_DL", "VoIP Playback", 0, 0, 0, 0),
18081 SND_SOC_DAPM_AIF_OUT("MM_UL1", "MultiMedia1 Capture", 0, 0, 0, 0),
18082 SND_SOC_DAPM_AIF_OUT("MM_UL2", "MultiMedia2 Capture", 0, 0, 0, 0),
18083 SND_SOC_DAPM_AIF_OUT("MM_UL3", "MultiMedia3 Capture", 0, 0, 0, 0),
18084 SND_SOC_DAPM_AIF_OUT("MM_UL4", "MultiMedia4 Capture", 0, 0, 0, 0),
18085 SND_SOC_DAPM_AIF_OUT("MM_UL5", "MultiMedia5 Capture", 0, 0, 0, 0),
18086 SND_SOC_DAPM_AIF_OUT("MM_UL6", "MultiMedia6 Capture", 0, 0, 0, 0),
18087 SND_SOC_DAPM_AIF_OUT("MM_UL8", "MultiMedia8 Capture", 0, 0, 0, 0),
18088 SND_SOC_DAPM_AIF_OUT("MM_UL9", "MultiMedia9 Capture", 0, 0, 0, 0),
Laxminath Kasam38070be2017-08-17 18:21:59 +053018089 SND_SOC_DAPM_AIF_OUT("MM_UL10", "MultiMedia10 Capture", 0, 0, 0, 0),
Asish Bhattacharya34504582017-08-08 12:55:01 +053018090 SND_SOC_DAPM_AIF_OUT("MM_UL16", "MultiMedia16 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018091 SND_SOC_DAPM_AIF_OUT("MM_UL17", "MultiMedia17 Capture", 0, 0, 0, 0),
18092 SND_SOC_DAPM_AIF_OUT("MM_UL18", "MultiMedia18 Capture", 0, 0, 0, 0),
18093 SND_SOC_DAPM_AIF_OUT("MM_UL19", "MultiMedia19 Capture", 0, 0, 0, 0),
18094 SND_SOC_DAPM_AIF_OUT("MM_UL20", "MultiMedia20 Capture", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070018095 SND_SOC_DAPM_AIF_OUT("MM_UL21", "MultiMedia21 Capture", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053018096 SND_SOC_DAPM_AIF_OUT("MM_UL27", "MultiMedia27 Capture", 0, 0, 0, 0),
Meng Wang5c4bab72018-04-25 10:40:01 +080018097 SND_SOC_DAPM_AIF_OUT("MM_UL28", "MultiMedia28 Capture", 0, 0, 0, 0),
18098 SND_SOC_DAPM_AIF_OUT("MM_UL29", "MultiMedia29 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018099 SND_SOC_DAPM_AIF_OUT("VOIP_UL", "VoIP Capture", 0, 0, 0, 0),
18100 SND_SOC_DAPM_AIF_IN("VOICEMMODE1_DL",
18101 "VoiceMMode1 Playback", 0, 0, 0, 0),
18102 SND_SOC_DAPM_AIF_OUT("VOICEMMODE1_UL",
18103 "VoiceMMode1 Capture", 0, 0, 0, 0),
18104 SND_SOC_DAPM_AIF_IN("VOICEMMODE2_DL",
18105 "VoiceMMode2 Playback", 0, 0, 0, 0),
18106 SND_SOC_DAPM_AIF_OUT("VOICEMMODE2_UL",
18107 "VoiceMMode2 Capture", 0, 0, 0, 0),
18108 SND_SOC_DAPM_AIF_IN("SLIM0_DL_HL", "SLIMBUS0_HOSTLESS Playback",
18109 0, 0, 0, 0),
18110 SND_SOC_DAPM_AIF_OUT("SLIM0_UL_HL", "SLIMBUS0_HOSTLESS Capture",
18111 0, 0, 0, 0),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053018112 SND_SOC_DAPM_AIF_IN("CDC_DMA_DL_HL", "CDC_DMA_HOSTLESS Playback",
18113 0, 0, 0, 0),
18114 SND_SOC_DAPM_AIF_OUT("CDC_DMA_UL_HL", "CDC_DMA_HOSTLESS Capture",
18115 0, 0, 0, 0),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053018116 SND_SOC_DAPM_AIF_OUT("TX3_CDC_DMA_UL_HL",
18117 "TX3_CDC_DMA_HOSTLESS Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018118 SND_SOC_DAPM_AIF_OUT("CPE_LSM_UL_HL", "CPE LSM capture",
18119 0, 0, 0, 0),
18120 SND_SOC_DAPM_AIF_IN("SLIM1_DL_HL", "SLIMBUS1_HOSTLESS Playback",
18121 0, 0, 0, 0),
18122 SND_SOC_DAPM_AIF_OUT("SLIM1_UL_HL", "SLIMBUS1_HOSTLESS Capture",
18123 0, 0, 0, 0),
18124 SND_SOC_DAPM_AIF_IN("SLIM3_DL_HL", "SLIMBUS3_HOSTLESS Playback",
18125 0, 0, 0, 0),
18126 SND_SOC_DAPM_AIF_OUT("SLIM3_UL_HL", "SLIMBUS3_HOSTLESS Capture",
18127 0, 0, 0, 0),
18128 SND_SOC_DAPM_AIF_IN("SLIM4_DL_HL", "SLIMBUS4_HOSTLESS Playback",
18129 0, 0, 0, 0),
18130 SND_SOC_DAPM_AIF_OUT("SLIM4_UL_HL", "SLIMBUS4_HOSTLESS Capture",
18131 0, 0, 0, 0),
18132 SND_SOC_DAPM_AIF_IN("SLIM6_DL_HL", "SLIMBUS6_HOSTLESS Playback",
18133 0, 0, 0, 0),
18134 SND_SOC_DAPM_AIF_OUT("SLIM6_UL_HL", "SLIMBUS6_HOSTLESS Capture",
18135 0, 0, 0, 0),
18136 SND_SOC_DAPM_AIF_IN("SLIM7_DL_HL", "SLIMBUS7_HOSTLESS Playback",
18137 0, 0, 0, 0),
18138 SND_SOC_DAPM_AIF_OUT("SLIM7_UL_HL", "SLIMBUS7_HOSTLESS Capture",
18139 0, 0, 0, 0),
18140 SND_SOC_DAPM_AIF_IN("SLIM8_DL_HL", "SLIMBUS8_HOSTLESS Playback",
18141 0, 0, 0, 0),
18142 SND_SOC_DAPM_AIF_OUT("SLIM8_UL_HL", "SLIMBUS8_HOSTLESS Capture",
18143 0, 0, 0, 0),
18144 SND_SOC_DAPM_AIF_IN("INTFM_DL_HL", "INT_FM_HOSTLESS Playback",
18145 0, 0, 0, 0),
18146 SND_SOC_DAPM_AIF_OUT("INTFM_UL_HL", "INT_FM_HOSTLESS Capture",
18147 0, 0, 0, 0),
18148 SND_SOC_DAPM_AIF_IN("INTHFP_DL_HL", "INT_HFP_BT_HOSTLESS Playback",
18149 0, 0, 0, 0),
18150 SND_SOC_DAPM_AIF_OUT("INTHFP_UL_HL", "INT_HFP_BT_HOSTLESS Capture",
18151 0, 0, 0, 0),
18152 SND_SOC_DAPM_AIF_IN("USBAUDIO_DL_HL", "USBAUDIO_HOSTLESS Playback",
18153 0, 0, 0, 0),
18154 SND_SOC_DAPM_AIF_OUT("USBAUDIO_UL_HL", "USBAUDIO_HOSTLESS Capture",
18155 0, 0, 0, 0),
18156 SND_SOC_DAPM_AIF_IN("HDMI_DL_HL", "HDMI_HOSTLESS Playback", 0, 0, 0, 0),
18157 SND_SOC_DAPM_AIF_IN("SEC_I2S_DL_HL", "SEC_I2S_RX_HOSTLESS Playback",
18158 0, 0, 0, 0),
18159 SND_SOC_DAPM_AIF_IN("INT0_MI2S_DL_HL",
18160 "INT0 MI2S_RX Hostless Playback",
18161 0, 0, 0, 0),
18162 SND_SOC_DAPM_AIF_IN("INT4_MI2S_DL_HL",
18163 "INT4 MI2S_RX Hostless Playback",
18164 0, 0, 0, 0),
18165 SND_SOC_DAPM_AIF_IN("PRI_MI2S_DL_HL",
18166 "Primary MI2S_RX Hostless Playback",
18167 0, 0, 0, 0),
18168 SND_SOC_DAPM_AIF_IN("SEC_MI2S_DL_HL",
18169 "Secondary MI2S_RX Hostless Playback",
18170 0, 0, 0, 0),
18171 SND_SOC_DAPM_AIF_IN("TERT_MI2S_DL_HL",
18172 "Tertiary MI2S_RX Hostless Playback",
18173 0, 0, 0, 0),
18174 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_DL_HL",
18175 "Quaternary MI2S_RX Hostless Playback",
18176 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018177 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_DL_HL",
18178 "Quinary MI2S_RX Hostless Playback",
18179 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018180
18181 SND_SOC_DAPM_AIF_IN("AUXPCM_DL_HL", "AUXPCM_HOSTLESS Playback",
18182 0, 0, 0, 0),
18183 SND_SOC_DAPM_AIF_OUT("AUXPCM_UL_HL", "AUXPCM_HOSTLESS Capture",
18184 0, 0, 0, 0),
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080018185 SND_SOC_DAPM_AIF_IN("SEC_AUXPCM_DL_HL", "SEC_AUXPCM_HOSTLESS Playback",
18186 0, 0, 0, 0),
18187 SND_SOC_DAPM_AIF_OUT("SEC_AUXPCM_UL_HL", "SEC_AUXPCM_HOSTLESS Capture",
18188 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018189 SND_SOC_DAPM_AIF_OUT("MI2S_UL_HL", "MI2S_TX_HOSTLESS Capture",
18190 0, 0, 0, 0),
18191 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_UL_HL",
18192 "INT3 MI2S_TX Hostless Capture",
18193 0, 0, 0, 0),
18194 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_UL_HL",
18195 "Tertiary MI2S_TX Hostless Capture",
18196 0, 0, 0, 0),
18197 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_UL_HL",
18198 "Secondary MI2S_TX Hostless Capture",
18199 0, 0, 0, 0),
18200 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_UL_HL",
18201 "Primary MI2S_TX Hostless Capture",
18202 0, 0, 0, 0),
18203 SND_SOC_DAPM_AIF_OUT("MI2S_DL_HL", "MI2S_RX_HOSTLESS Playback",
18204 0, 0, 0, 0),
18205 SND_SOC_DAPM_AIF_IN("DTMF_DL_HL", "DTMF_RX_HOSTLESS Playback",
18206 0, 0, 0, 0),
18207 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_UL_HL",
18208 "Quaternary MI2S_TX Hostless Capture",
18209 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018210 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_UL_HL",
18211 "Quinary MI2S_TX Hostless Capture",
18212 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018213
18214 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_0_DL_HL",
18215 "Primary TDM0 Hostless Playback",
18216 0, 0, 0, 0),
18217 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_0_UL_HL",
18218 "Primary TDM0 Hostless Capture",
18219 0, 0, 0, 0),
18220 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_1_DL_HL",
18221 "Primary TDM1 Hostless Playback",
18222 0, 0, 0, 0),
18223 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_1_UL_HL",
18224 "Primary TDM1 Hostless Capture",
18225 0, 0, 0, 0),
18226 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_2_DL_HL",
18227 "Primary TDM2 Hostless Playback",
18228 0, 0, 0, 0),
18229 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_2_UL_HL",
18230 "Primary TDM2 Hostless Capture",
18231 0, 0, 0, 0),
18232 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_3_DL_HL",
18233 "Primary TDM3 Hostless Playback",
18234 0, 0, 0, 0),
18235 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_3_UL_HL",
18236 "Primary TDM3 Hostless Capture",
18237 0, 0, 0, 0),
18238 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_4_DL_HL",
18239 "Primary TDM4 Hostless Playback",
18240 0, 0, 0, 0),
18241 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_4_UL_HL",
18242 "Primary TDM4 Hostless Capture",
18243 0, 0, 0, 0),
18244 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_5_DL_HL",
18245 "Primary TDM5 Hostless Playback",
18246 0, 0, 0, 0),
18247 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_5_UL_HL",
18248 "Primary TDM5 Hostless Capture",
18249 0, 0, 0, 0),
18250 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_6_DL_HL",
18251 "Primary TDM6 Hostless Playback",
18252 0, 0, 0, 0),
18253 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_6_UL_HL",
18254 "Primary TDM6 Hostless Capture",
18255 0, 0, 0, 0),
18256 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_7_DL_HL",
18257 "Primary TDM7 Hostless Playback",
18258 0, 0, 0, 0),
18259 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_7_UL_HL",
18260 "Primary TDM7 Hostless Capture",
18261 0, 0, 0, 0),
18262 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_0_DL_HL",
18263 "Secondary TDM0 Hostless Playback",
18264 0, 0, 0, 0),
18265 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_0_UL_HL",
18266 "Secondary TDM0 Hostless Capture",
18267 0, 0, 0, 0),
18268 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_1_DL_HL",
18269 "Secondary TDM1 Hostless Playback",
18270 0, 0, 0, 0),
18271 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_1_UL_HL",
18272 "Secondary TDM1 Hostless Capture",
18273 0, 0, 0, 0),
18274 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_2_DL_HL",
18275 "Secondary TDM2 Hostless Playback",
18276 0, 0, 0, 0),
18277 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_2_UL_HL",
18278 "Secondary TDM2 Hostless Capture",
18279 0, 0, 0, 0),
18280 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_3_DL_HL",
18281 "Secondary TDM3 Hostless Playback",
18282 0, 0, 0, 0),
18283 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_3_UL_HL",
18284 "Secondary TDM3 Hostless Capture",
18285 0, 0, 0, 0),
18286 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_4_DL_HL",
18287 "Secondary TDM4 Hostless Playback",
18288 0, 0, 0, 0),
18289 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_4_UL_HL",
18290 "Secondary TDM4 Hostless Capture",
18291 0, 0, 0, 0),
18292 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_5_DL_HL",
18293 "Secondary TDM5 Hostless Playback",
18294 0, 0, 0, 0),
18295 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_5_UL_HL",
18296 "Secondary TDM5 Hostless Capture",
18297 0, 0, 0, 0),
18298 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_6_DL_HL",
18299 "Secondary TDM6 Hostless Playback",
18300 0, 0, 0, 0),
18301 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_6_UL_HL",
18302 "Secondary TDM6 Hostless Capture",
18303 0, 0, 0, 0),
18304 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_7_DL_HL",
18305 "Secondary TDM7 Hostless Playback",
18306 0, 0, 0, 0),
18307 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_7_UL_HL",
18308 "Secondary TDM7 Hostless Capture",
18309 0, 0, 0, 0),
18310 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_0_DL_HL",
18311 "Tertiary TDM0 Hostless Playback",
18312 0, 0, 0, 0),
18313 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_0_UL_HL",
18314 "Tertiary TDM0 Hostless Capture",
18315 0, 0, 0, 0),
18316 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_1_DL_HL",
18317 "Tertiary TDM1 Hostless Playback",
18318 0, 0, 0, 0),
18319 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_1_UL_HL",
18320 "Tertiary TDM1 Hostless Capture",
18321 0, 0, 0, 0),
18322 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_2_DL_HL",
18323 "Tertiary TDM2 Hostless Playback",
18324 0, 0, 0, 0),
18325 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_2_UL_HL",
18326 "Tertiary TDM2 Hostless Capture",
18327 0, 0, 0, 0),
18328 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_3_DL_HL",
18329 "Tertiary TDM3 Hostless Playback",
18330 0, 0, 0, 0),
18331 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_3_UL_HL",
18332 "Tertiary TDM3 Hostless Capture",
18333 0, 0, 0, 0),
18334 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_4_DL_HL",
18335 "Tertiary TDM4 Hostless Playback",
18336 0, 0, 0, 0),
18337 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_4_UL_HL",
18338 "Tertiary TDM4 Hostless Capture",
18339 0, 0, 0, 0),
18340 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_5_DL_HL",
18341 "Tertiary TDM5 Hostless Playback",
18342 0, 0, 0, 0),
18343 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_5_UL_HL",
18344 "Tertiary TDM5 Hostless Capture",
18345 0, 0, 0, 0),
18346 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_6_DL_HL",
18347 "Tertiary TDM6 Hostless Playback",
18348 0, 0, 0, 0),
18349 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_6_UL_HL",
18350 "Tertiary TDM6 Hostless Capture",
18351 0, 0, 0, 0),
18352 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_7_DL_HL",
18353 "Tertiary TDM7 Hostless Playback",
18354 0, 0, 0, 0),
18355 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_7_UL_HL",
18356 "Tertiary TDM7 Hostless Capture",
18357 0, 0, 0, 0),
18358 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_0_DL_HL",
18359 "Quaternary TDM0 Hostless Playback",
18360 0, 0, 0, 0),
18361 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_0_UL_HL",
18362 "Quaternary TDM0 Hostless Capture",
18363 0, 0, 0, 0),
18364 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_1_DL_HL",
18365 "Quaternary TDM1 Hostless Playback",
18366 0, 0, 0, 0),
18367 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_1_UL_HL",
18368 "Quaternary TDM1 Hostless Capture",
18369 0, 0, 0, 0),
18370 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_2_DL_HL",
18371 "Quaternary TDM2 Hostless Playback",
18372 0, 0, 0, 0),
18373 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_2_UL_HL",
18374 "Quaternary TDM2 Hostless Capture",
18375 0, 0, 0, 0),
18376 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_3_DL_HL",
18377 "Quaternary TDM3 Hostless Playback",
18378 0, 0, 0, 0),
18379 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_3_UL_HL",
18380 "Quaternary TDM3 Hostless Capture",
18381 0, 0, 0, 0),
18382 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_4_DL_HL",
18383 "Quaternary TDM4 Hostless Playback",
18384 0, 0, 0, 0),
18385 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_4_UL_HL",
18386 "Quaternary TDM4 Hostless Capture",
18387 0, 0, 0, 0),
18388 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_5_DL_HL",
18389 "Quaternary TDM5 Hostless Playback",
18390 0, 0, 0, 0),
18391 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_5_UL_HL",
18392 "Quaternary TDM5 Hostless Capture",
18393 0, 0, 0, 0),
18394 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_6_DL_HL",
18395 "Quaternary TDM6 Hostless Playback",
18396 0, 0, 0, 0),
18397 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_6_UL_HL",
18398 "Quaternary TDM6 Hostless Capture",
18399 0, 0, 0, 0),
18400 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_7_DL_HL",
18401 "Quaternary TDM7 Hostless Playback",
18402 0, 0, 0, 0),
18403 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_7_UL_HL",
18404 "Quaternary TDM7 Hostless Capture",
18405 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018406 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_0_DL_HL",
18407 "Quinary TDM0 Hostless Playback",
18408 0, 0, 0, 0),
18409 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_0_UL_HL",
18410 "Quinary TDM0 Hostless Capture",
18411 0, 0, 0, 0),
18412 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_1_DL_HL",
18413 "Quinary TDM1 Hostless Playback",
18414 0, 0, 0, 0),
18415 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_1_UL_HL",
18416 "Quinary TDM1 Hostless Capture",
18417 0, 0, 0, 0),
18418 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_2_DL_HL",
18419 "Quinary TDM2 Hostless Playback",
18420 0, 0, 0, 0),
18421 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_2_UL_HL",
18422 "Quinary TDM2 Hostless Capture",
18423 0, 0, 0, 0),
18424 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_3_DL_HL",
18425 "Quinary TDM3 Hostless Playback",
18426 0, 0, 0, 0),
18427 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_3_UL_HL",
18428 "Quinary TDM3 Hostless Capture",
18429 0, 0, 0, 0),
18430 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_4_DL_HL",
18431 "Quinary TDM4 Hostless Playback",
18432 0, 0, 0, 0),
18433 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_4_UL_HL",
18434 "Quinary TDM4 Hostless Capture",
18435 0, 0, 0, 0),
18436 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_5_DL_HL",
18437 "Quinary TDM5 Hostless Playback",
18438 0, 0, 0, 0),
18439 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_5_UL_HL",
18440 "Quinary TDM5 Hostless Capture",
18441 0, 0, 0, 0),
18442 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_6_DL_HL",
18443 "Quinary TDM6 Hostless Playback",
18444 0, 0, 0, 0),
18445 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_6_UL_HL",
18446 "Quinary TDM6 Hostless Capture",
18447 0, 0, 0, 0),
18448 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_7_DL_HL",
18449 "Quinary TDM7 Hostless Playback",
18450 0, 0, 0, 0),
18451 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_7_UL_HL",
18452 "Quinary TDM7 Hostless Capture",
18453 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018454
18455 /* LSM */
18456 SND_SOC_DAPM_AIF_OUT("LSM1_UL_HL", "Listen 1 Audio Service Capture",
18457 0, 0, 0, 0),
18458 SND_SOC_DAPM_AIF_OUT("LSM2_UL_HL", "Listen 2 Audio Service Capture",
18459 0, 0, 0, 0),
18460 SND_SOC_DAPM_AIF_OUT("LSM3_UL_HL", "Listen 3 Audio Service Capture",
18461 0, 0, 0, 0),
18462 SND_SOC_DAPM_AIF_OUT("LSM4_UL_HL", "Listen 4 Audio Service Capture",
18463 0, 0, 0, 0),
18464 SND_SOC_DAPM_AIF_OUT("LSM5_UL_HL", "Listen 5 Audio Service Capture",
18465 0, 0, 0, 0),
18466 SND_SOC_DAPM_AIF_OUT("LSM6_UL_HL", "Listen 6 Audio Service Capture",
18467 0, 0, 0, 0),
18468 SND_SOC_DAPM_AIF_OUT("LSM7_UL_HL", "Listen 7 Audio Service Capture",
18469 0, 0, 0, 0),
18470 SND_SOC_DAPM_AIF_OUT("LSM8_UL_HL", "Listen 8 Audio Service Capture",
18471 0, 0, 0, 0),
18472 SND_SOC_DAPM_AIF_IN("QCHAT_DL", "QCHAT Playback", 0, 0, 0, 0),
18473 SND_SOC_DAPM_AIF_OUT("QCHAT_UL", "QCHAT Capture", 0, 0, 0, 0),
18474 /* Backend AIF */
18475 /* Stream name equals to backend dai link stream name */
18476 SND_SOC_DAPM_AIF_OUT("PRI_I2S_RX", "Primary I2S Playback", 0, 0, 0, 0),
18477 SND_SOC_DAPM_AIF_OUT("SEC_I2S_RX", "Secondary I2S Playback",
18478 0, 0, 0, 0),
Ralf Herzc8701f72018-06-20 11:37:35 +020018479 SND_SOC_DAPM_AIF_OUT("PRI_SPDIF_RX", "Primary SPDIF Playback",
18480 0, 0, 0, 0),
18481 SND_SOC_DAPM_AIF_IN("PRI_SPDIF_TX", "Primary SPDIF Capture",
18482 0, 0, 0, 0),
18483 SND_SOC_DAPM_AIF_OUT("SEC_SPDIF_RX", "Secondary SPDIF Playback",
18484 0, 0, 0, 0),
18485 SND_SOC_DAPM_AIF_IN("SEC_SPDIF_TX", "Secondary SPDIF Capture",
18486 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018487 SND_SOC_DAPM_AIF_OUT("SLIMBUS_0_RX", "Slimbus Playback", 0, 0, 0, 0),
18488 SND_SOC_DAPM_AIF_OUT("SLIMBUS_2_RX", "Slimbus2 Playback", 0, 0, 0, 0),
18489 SND_SOC_DAPM_AIF_OUT("SLIMBUS_5_RX", "Slimbus5 Playback", 0, 0, 0, 0),
18490 SND_SOC_DAPM_AIF_OUT("HDMI", "HDMI Playback", 0, 0, 0, 0),
18491 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT", "Display Port Playback",
18492 0, 0, 0, 0),
Karthikeyan Mani57550082018-05-03 18:43:58 -070018493 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT1", "Display Port1 Playback",
18494 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018495 SND_SOC_DAPM_AIF_OUT("MI2S_RX", "MI2S Playback", 0, 0, 0, 0),
18496 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_RX", "Quaternary MI2S Playback",
18497 0, 0, 0, 0),
18498 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_RX", "Tertiary MI2S Playback",
18499 0, 0, 0, 0),
18500 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX", "Secondary MI2S Playback",
18501 0, 0, 0, 0),
18502 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX_SD1",
18503 "Secondary MI2S Playback SD1",
18504 0, 0, 0, 0),
18505 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_RX", "Primary MI2S Playback",
18506 0, 0, 0, 0),
18507 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_RX", "INT0 MI2S Playback",
18508 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053018509 SND_SOC_DAPM_AIF_OUT("INT2_MI2S_RX", "INT2 MI2S Playback",
18510 0, 0, 0, 0),
18511 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_RX", "INT3 MI2S Playback",
18512 0, 0, 0, 0),
18513 SND_SOC_DAPM_AIF_OUT("INT5_MI2S_RX", "INT5 MI2S Playback",
18514 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018515 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_RX", "INT4 MI2S Playback",
18516 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053018517 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_TX", "INT4 MI2S Capture",
18518 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018519 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_RX", "Quinary MI2S Playback",
18520 0, 0, 0, 0),
18521 SND_SOC_DAPM_AIF_IN("PRI_I2S_TX", "Primary I2S Capture", 0, 0, 0, 0),
18522 SND_SOC_DAPM_AIF_IN("MI2S_TX", "MI2S Capture", 0, 0, 0, 0),
18523 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_TX", "Quaternary MI2S Capture",
18524 0, 0, 0, 0),
18525 SND_SOC_DAPM_AIF_IN("PRI_MI2S_TX", "Primary MI2S Capture",
18526 0, 0, 0, 0),
18527 SND_SOC_DAPM_AIF_IN("TERT_MI2S_TX", "Tertiary MI2S Capture",
18528 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053018529 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_TX", "INT0 MI2S Capture",
18530 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018531 SND_SOC_DAPM_AIF_IN("INT2_MI2S_TX", "INT2 MI2S Capture",
18532 0, 0, 0, 0),
18533 SND_SOC_DAPM_AIF_IN("INT3_MI2S_TX", "INT3 MI2S Capture",
18534 0, 0, 0, 0),
18535 SND_SOC_DAPM_AIF_IN("SEC_MI2S_TX", "Secondary MI2S Capture",
18536 0, 0, 0, 0),
18537 SND_SOC_DAPM_AIF_IN("SLIMBUS_0_TX", "Slimbus Capture", 0, 0, 0, 0),
18538 SND_SOC_DAPM_AIF_IN("SLIMBUS_2_TX", "Slimbus2 Capture", 0, 0, 0, 0),
18539 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_TX", "Quinary MI2S Capture",
18540 0, 0, 0, 0),
18541 SND_SOC_DAPM_AIF_IN("SENARY_MI2S_TX", "Senary MI2S Capture",
18542 0, 0, 0, 0),
18543 SND_SOC_DAPM_AIF_OUT("INT_BT_SCO_RX", "Internal BT-SCO Playback",
18544 0, 0, 0, 0),
18545 SND_SOC_DAPM_AIF_IN("INT_BT_SCO_TX", "Internal BT-SCO Capture",
18546 0, 0, 0, 0),
18547 SND_SOC_DAPM_AIF_OUT("INT_BT_A2DP_RX", "Internal BT-A2DP Playback",
18548 0, 0, 0, 0),
18549 SND_SOC_DAPM_AIF_OUT("INT_FM_RX", "Internal FM Playback",
18550 0, 0, 0, 0),
18551 SND_SOC_DAPM_AIF_IN("INT_FM_TX", "Internal FM Capture",
18552 0, 0, 0, 0),
18553 SND_SOC_DAPM_AIF_OUT("PCM_RX", "AFE Playback",
18554 0, 0, 0, 0),
18555 SND_SOC_DAPM_AIF_IN("PCM_TX", "AFE Capture",
18556 0, 0, 0, 0),
18557 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_0", "Primary TDM0 Playback",
18558 0, 0, 0, 0),
18559 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_0", "Primary TDM0 Capture",
18560 0, 0, 0, 0),
18561 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_1", "Primary TDM1 Playback",
18562 0, 0, 0, 0),
18563 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_1", "Primary TDM1 Capture",
18564 0, 0, 0, 0),
18565 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_2", "Primary TDM2 Playback",
18566 0, 0, 0, 0),
18567 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_2", "Primary TDM2 Capture",
18568 0, 0, 0, 0),
18569 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_3", "Primary TDM3 Playback",
18570 0, 0, 0, 0),
18571 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_3", "Primary TDM3 Capture",
18572 0, 0, 0, 0),
18573 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_4", "Primary TDM4 Playback",
18574 0, 0, 0, 0),
18575 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_4", "Primary TDM4 Capture",
18576 0, 0, 0, 0),
18577 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_5", "Primary TDM5 Playback",
18578 0, 0, 0, 0),
18579 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_5", "Primary TDM5 Capture",
18580 0, 0, 0, 0),
18581 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_6", "Primary TDM6 Playback",
18582 0, 0, 0, 0),
18583 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_6", "Primary TDM6 Capture",
18584 0, 0, 0, 0),
18585 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_7", "Primary TDM7 Playback",
18586 0, 0, 0, 0),
18587 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_7", "Primary TDM7 Capture",
18588 0, 0, 0, 0),
18589 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_0", "Secondary TDM0 Playback",
18590 0, 0, 0, 0),
18591 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_0", "Secondary TDM0 Capture",
18592 0, 0, 0, 0),
18593 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_1", "Secondary TDM1 Playback",
18594 0, 0, 0, 0),
18595 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_1", "Secondary TDM1 Capture",
18596 0, 0, 0, 0),
18597 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_2", "Secondary TDM2 Playback",
18598 0, 0, 0, 0),
18599 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_2", "Secondary TDM2 Capture",
18600 0, 0, 0, 0),
18601 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_3", "Secondary TDM3 Playback",
18602 0, 0, 0, 0),
18603 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_3", "Secondary TDM3 Capture",
18604 0, 0, 0, 0),
18605 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_4", "Secondary TDM4 Playback",
18606 0, 0, 0, 0),
18607 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_4", "Secondary TDM4 Capture",
18608 0, 0, 0, 0),
18609 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_5", "Secondary TDM5 Playback",
18610 0, 0, 0, 0),
18611 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_5", "Secondary TDM5 Capture",
18612 0, 0, 0, 0),
18613 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_6", "Secondary TDM6 Playback",
18614 0, 0, 0, 0),
18615 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_6", "Secondary TDM6 Capture",
18616 0, 0, 0, 0),
18617 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_7", "Secondary TDM7 Playback",
18618 0, 0, 0, 0),
18619 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_7", "Secondary TDM7 Capture",
18620 0, 0, 0, 0),
18621 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_0", "Tertiary TDM0 Playback",
18622 0, 0, 0, 0),
18623 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_0", "Tertiary TDM0 Capture",
18624 0, 0, 0, 0),
18625 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_1", "Tertiary TDM1 Playback",
18626 0, 0, 0, 0),
18627 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_1", "Tertiary TDM1 Capture",
18628 0, 0, 0, 0),
18629 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_2", "Tertiary TDM2 Playback",
18630 0, 0, 0, 0),
18631 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_2", "Tertiary TDM2 Capture",
18632 0, 0, 0, 0),
18633 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_3", "Tertiary TDM3 Playback",
18634 0, 0, 0, 0),
18635 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_3", "Tertiary TDM3 Capture",
18636 0, 0, 0, 0),
18637 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_4", "Tertiary TDM4 Playback",
18638 0, 0, 0, 0),
18639 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_4", "Tertiary TDM4 Capture",
18640 0, 0, 0, 0),
18641 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_5", "Tertiary TDM5 Playback",
18642 0, 0, 0, 0),
18643 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_5", "Tertiary TDM5 Capture",
18644 0, 0, 0, 0),
18645 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_6", "Tertiary TDM6 Playback",
18646 0, 0, 0, 0),
18647 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_6", "Tertiary TDM6 Capture",
18648 0, 0, 0, 0),
18649 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_7", "Tertiary TDM7 Playback",
18650 0, 0, 0, 0),
18651 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_7", "Tertiary TDM7 Capture",
18652 0, 0, 0, 0),
18653 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_0", "Quaternary TDM0 Playback",
18654 0, 0, 0, 0),
18655 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_0", "Quaternary TDM0 Capture",
18656 0, 0, 0, 0),
18657 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_1", "Quaternary TDM1 Playback",
18658 0, 0, 0, 0),
18659 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_1", "Quaternary TDM1 Capture",
18660 0, 0, 0, 0),
18661 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_2", "Quaternary TDM2 Playback",
18662 0, 0, 0, 0),
18663 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_2", "Quaternary TDM2 Capture",
18664 0, 0, 0, 0),
18665 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_3", "Quaternary TDM3 Playback",
18666 0, 0, 0, 0),
18667 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_3", "Quaternary TDM3 Capture",
18668 0, 0, 0, 0),
18669 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_4", "Quaternary TDM4 Playback",
18670 0, 0, 0, 0),
18671 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_4", "Quaternary TDM4 Capture",
18672 0, 0, 0, 0),
18673 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_5", "Quaternary TDM5 Playback",
18674 0, 0, 0, 0),
18675 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_5", "Quaternary TDM5 Capture",
18676 0, 0, 0, 0),
18677 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_6", "Quaternary TDM6 Playback",
18678 0, 0, 0, 0),
18679 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_6", "Quaternary TDM6 Capture",
18680 0, 0, 0, 0),
18681 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_7", "Quaternary TDM7 Playback",
18682 0, 0, 0, 0),
18683 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_7", "Quaternary TDM7 Capture",
18684 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018685 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_0", "Quinary TDM0 Playback",
18686 0, 0, 0, 0),
18687 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_0", "Quinary TDM0 Capture",
18688 0, 0, 0, 0),
18689 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_1", "Quinary TDM1 Playback",
18690 0, 0, 0, 0),
18691 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_1", "Quinary TDM1 Capture",
18692 0, 0, 0, 0),
18693 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_2", "Quinary TDM2 Playback",
18694 0, 0, 0, 0),
18695 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_2", "Quinary TDM2 Capture",
18696 0, 0, 0, 0),
18697 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_3", "Quinary TDM3 Playback",
18698 0, 0, 0, 0),
18699 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_3", "Quinary TDM3 Capture",
18700 0, 0, 0, 0),
18701 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_4", "Quinary TDM4 Playback",
18702 0, 0, 0, 0),
18703 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_4", "Quinary TDM4 Capture",
18704 0, 0, 0, 0),
18705 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_5", "Quinary TDM5 Playback",
18706 0, 0, 0, 0),
18707 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_5", "Quinary TDM5 Capture",
18708 0, 0, 0, 0),
18709 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_6", "Quinary TDM6 Playback",
18710 0, 0, 0, 0),
18711 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_6", "Quinary TDM6 Capture",
18712 0, 0, 0, 0),
18713 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_7", "Quinary TDM7 Playback",
18714 0, 0, 0, 0),
18715 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_7", "Quinary TDM7 Capture",
18716 0, 0, 0, 0),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018717 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_0", "WSA CDC DMA0 Playback",
18718 0, 0, 0, 0),
18719 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_0", "WSA CDC DMA0 Capture",
18720 0, 0, 0, 0),
18721 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_1", "WSA CDC DMA1 Playback",
18722 0, 0, 0, 0),
18723 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_1", "WSA CDC DMA1 Capture",
18724 0, 0, 0, 0),
18725 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_2", "WSA CDC DMA2 Capture",
18726 0, 0, 0, 0),
18727 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_0", "VA CDC DMA0 Capture",
18728 0, 0, 0, 0),
18729 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_1", "VA CDC DMA1 Capture",
18730 0, 0, 0, 0),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053018731 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_0", "RX CDC DMA0 Playback",
18732 0, 0, 0, 0),
18733 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_0", "TX CDC DMA0 Capture",
18734 0, 0, 0, 0),
18735 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_1", "RX CDC DMA1 Playback",
18736 0, 0, 0, 0),
18737 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_1", "TX CDC DMA1 Capture",
18738 0, 0, 0, 0),
18739 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_2", "RX CDC DMA2 Playback",
18740 0, 0, 0, 0),
18741 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_2", "TX CDC DMA2 Capture",
18742 0, 0, 0, 0),
18743 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_3", "RX CDC DMA3 Playback",
18744 0, 0, 0, 0),
18745 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_3", "TX CDC DMA3 Capture",
18746 0, 0, 0, 0),
18747 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_4", "RX CDC DMA4 Playback",
18748 0, 0, 0, 0),
18749 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_4", "TX CDC DMA4 Capture",
18750 0, 0, 0, 0),
18751 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_5", "RX CDC DMA5 Playback",
18752 0, 0, 0, 0),
18753 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_5", "TX CDC DMA5 Capture",
18754 0, 0, 0, 0),
18755 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_6", "RX CDC DMA6 Playback",
18756 0, 0, 0, 0),
18757 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_7", "RX CDC DMA7 Playback",
18758 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018759 /* incall */
18760 SND_SOC_DAPM_AIF_OUT("VOICE_PLAYBACK_TX", "Voice Farend Playback",
18761 0, 0, 0, 0),
18762 SND_SOC_DAPM_AIF_OUT("VOICE2_PLAYBACK_TX", "Voice2 Farend Playback",
18763 0, 0, 0, 0),
18764 SND_SOC_DAPM_AIF_OUT("SLIMBUS_4_RX", "Slimbus4 Playback",
18765 0, 0, 0, 0),
18766 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_TX", "Voice Uplink Capture",
18767 0, 0, 0, 0),
18768 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_RX", "Voice Downlink Capture",
18769 0, 0, 0, 0),
18770 SND_SOC_DAPM_AIF_IN("SLIMBUS_4_TX", "Slimbus4 Capture",
18771 0, 0, 0, 0),
18772 SND_SOC_DAPM_AIF_IN("SENARY_TX", "Senary_mi2s Capture",
18773 0, 0, 0, 0),
18774 SND_SOC_DAPM_AIF_IN("INT5_MI2S_TX", "INT5 MI2S Capture",
18775 0, 0, 0, 0),
18776 SND_SOC_DAPM_AIF_IN("SLIMBUS_5_TX", "Slimbus5 Capture", 0, 0, 0, 0),
18777
18778 SND_SOC_DAPM_AIF_OUT("AUX_PCM_RX", "AUX PCM Playback", 0, 0, 0, 0),
18779 SND_SOC_DAPM_AIF_IN("AUX_PCM_TX", "AUX PCM Capture", 0, 0, 0, 0),
18780 SND_SOC_DAPM_AIF_OUT("SEC_AUX_PCM_RX", "Sec AUX PCM Playback",
18781 0, 0, 0, 0),
18782 SND_SOC_DAPM_AIF_IN("SEC_AUX_PCM_TX", "Sec AUX PCM Capture",
18783 0, 0, 0, 0),
18784 SND_SOC_DAPM_AIF_OUT("TERT_AUX_PCM_RX", "Tert AUX PCM Playback",
18785 0, 0, 0, 0),
18786 SND_SOC_DAPM_AIF_IN("TERT_AUX_PCM_TX", "Tert AUX PCM Capture",
18787 0, 0, 0, 0),
18788 SND_SOC_DAPM_AIF_OUT("QUAT_AUX_PCM_RX", "Quat AUX PCM Playback",
18789 0, 0, 0, 0),
18790 SND_SOC_DAPM_AIF_IN("QUAT_AUX_PCM_TX", "Quat AUX PCM Capture",
18791 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018792 SND_SOC_DAPM_AIF_OUT("QUIN_AUX_PCM_RX", "Quin AUX PCM Playback",
18793 0, 0, 0, 0),
18794 SND_SOC_DAPM_AIF_IN("QUIN_AUX_PCM_TX", "Quin AUX PCM Capture",
18795 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018796 SND_SOC_DAPM_AIF_IN("VOICE_STUB_DL", "VOICE_STUB Playback", 0, 0, 0, 0),
18797 SND_SOC_DAPM_AIF_OUT("VOICE_STUB_UL", "VOICE_STUB Capture", 0, 0, 0, 0),
18798 SND_SOC_DAPM_AIF_IN("VOICE2_STUB_DL", "VOICE2_STUB Playback",
18799 0, 0, 0, 0),
18800 SND_SOC_DAPM_AIF_OUT("VOICE2_STUB_UL", "VOICE2_STUB Capture",
18801 0, 0, 0, 0),
18802 SND_SOC_DAPM_AIF_IN("VOLTE_STUB_DL", "VOLTE_STUB Playback", 0, 0, 0, 0),
18803 SND_SOC_DAPM_AIF_OUT("VOLTE_STUB_UL", "VOLTE_STUB Capture", 0, 0, 0, 0),
18804 SND_SOC_DAPM_AIF_OUT("STUB_RX", "Stub Playback", 0, 0, 0, 0),
18805 SND_SOC_DAPM_AIF_IN("STUB_TX", "Stub Capture", 0, 0, 0, 0),
18806 SND_SOC_DAPM_AIF_OUT("SLIMBUS_1_RX", "Slimbus1 Playback", 0, 0, 0, 0),
18807 SND_SOC_DAPM_AIF_IN("SLIMBUS_1_TX", "Slimbus1 Capture", 0, 0, 0, 0),
18808 SND_SOC_DAPM_AIF_IN("STUB_1_TX", "Stub1 Capture", 0, 0, 0, 0),
18809 SND_SOC_DAPM_AIF_OUT("SLIMBUS_3_RX", "Slimbus3 Playback", 0, 0, 0, 0),
18810 SND_SOC_DAPM_AIF_IN("SLIMBUS_3_TX", "Slimbus3 Capture", 0, 0, 0, 0),
18811 /* In- call recording */
18812 SND_SOC_DAPM_AIF_OUT("SLIMBUS_6_RX", "Slimbus6 Playback", 0, 0, 0, 0),
18813 SND_SOC_DAPM_AIF_IN("SLIMBUS_6_TX", "Slimbus6 Capture", 0, 0, 0, 0),
18814
18815 SND_SOC_DAPM_AIF_OUT("SLIMBUS_7_RX", "Slimbus7 Playback", 0, 0, 0, 0),
18816 SND_SOC_DAPM_AIF_IN("SLIMBUS_7_TX", "Slimbus7 Capture", 0, 0, 0, 0),
18817
18818 SND_SOC_DAPM_AIF_OUT("SLIMBUS_8_RX", "Slimbus8 Playback", 0, 0, 0, 0),
18819 SND_SOC_DAPM_AIF_IN("SLIMBUS_8_TX", "Slimbus8 Capture", 0, 0, 0, 0),
Surendar Karka3ef3d812018-09-28 18:52:35 +053018820 SND_SOC_DAPM_AIF_OUT("SLIMBUS_9_RX", "Slimbus9 Playback", 0, 0, 0, 0),
18821 SND_SOC_DAPM_AIF_IN("SLIMBUS_9_TX", "Slimbus9 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018822 SND_SOC_DAPM_AIF_OUT("USB_AUDIO_RX", "USB Audio Playback", 0, 0, 0, 0),
18823 SND_SOC_DAPM_AIF_IN("USB_AUDIO_TX", "USB Audio Capture", 0, 0, 0, 0),
18824
18825 /* Switch Definitions */
18826 SND_SOC_DAPM_SWITCH("SLIMBUS_DL_HL", SND_SOC_NOPM, 0, 0,
18827 &slim_fm_switch_mixer_controls),
18828 SND_SOC_DAPM_SWITCH("SLIMBUS1_DL_HL", SND_SOC_NOPM, 0, 0,
18829 &slim1_fm_switch_mixer_controls),
18830 SND_SOC_DAPM_SWITCH("SLIMBUS3_DL_HL", SND_SOC_NOPM, 0, 0,
18831 &slim3_fm_switch_mixer_controls),
18832 SND_SOC_DAPM_SWITCH("SLIMBUS4_DL_HL", SND_SOC_NOPM, 0, 0,
18833 &slim4_fm_switch_mixer_controls),
18834 SND_SOC_DAPM_SWITCH("SLIMBUS6_DL_HL", SND_SOC_NOPM, 0, 0,
18835 &slim6_fm_switch_mixer_controls),
18836 SND_SOC_DAPM_SWITCH("PCM_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18837 &pcm_rx_switch_mixer_controls),
18838 SND_SOC_DAPM_SWITCH("INT0_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18839 &int0_mi2s_rx_switch_mixer_controls),
18840 SND_SOC_DAPM_SWITCH("INT4_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18841 &int4_mi2s_rx_switch_mixer_controls),
18842 SND_SOC_DAPM_SWITCH("PRI_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18843 &pri_mi2s_rx_switch_mixer_controls),
18844 SND_SOC_DAPM_SWITCH("SEC_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18845 &sec_mi2s_rx_switch_mixer_controls),
18846 SND_SOC_DAPM_SWITCH("TERT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18847 &tert_mi2s_rx_switch_mixer_controls),
18848 SND_SOC_DAPM_SWITCH("QUAT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18849 &quat_mi2s_rx_switch_mixer_controls),
Rohit Kumara5077932017-09-10 22:05:05 +053018850 SND_SOC_DAPM_SWITCH("QUIN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18851 &quin_mi2s_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018852 SND_SOC_DAPM_SWITCH("HFP_PRI_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
18853 &hfp_pri_aux_switch_mixer_controls),
18854 SND_SOC_DAPM_SWITCH("HFP_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
18855 &hfp_aux_switch_mixer_controls),
18856 SND_SOC_DAPM_SWITCH("HFP_INT_UL_HL", SND_SOC_NOPM, 0, 0,
18857 &hfp_int_switch_mixer_controls),
18858 SND_SOC_DAPM_SWITCH("HFP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
18859 &hfp_slim7_switch_mixer_controls),
18860 SND_SOC_DAPM_SWITCH("USB_DL_HL", SND_SOC_NOPM, 0, 0,
18861 &usb_switch_mixer_controls),
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080018862 SND_SOC_DAPM_SWITCH("A2DP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
18863 &a2dp_slim7_switch_mixer_controls),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053018864 SND_SOC_DAPM_SWITCH("WSA_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053018865 &cdc_dma_wsa_switch_mixer_controls),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053018866 SND_SOC_DAPM_SWITCH("RX_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053018867 &cdc_dma_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018868
18869 /* Mixer definitions */
18870 SND_SOC_DAPM_MIXER("PRI_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18871 pri_i2s_rx_mixer_controls, ARRAY_SIZE(pri_i2s_rx_mixer_controls)),
18872 SND_SOC_DAPM_MIXER("SEC_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18873 sec_i2s_rx_mixer_controls, ARRAY_SIZE(sec_i2s_rx_mixer_controls)),
18874 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18875 slimbus_rx_mixer_controls, ARRAY_SIZE(slimbus_rx_mixer_controls)),
18876 SND_SOC_DAPM_MIXER("SLIMBUS_2_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18877 slimbus_2_rx_mixer_controls, ARRAY_SIZE(slimbus_2_rx_mixer_controls)),
18878 SND_SOC_DAPM_MIXER("SLIMBUS_5_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18879 slimbus_5_rx_mixer_controls, ARRAY_SIZE(slimbus_5_rx_mixer_controls)),
18880 SND_SOC_DAPM_MIXER("SLIMBUS_7_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18881 slimbus_7_rx_mixer_controls, ARRAY_SIZE(slimbus_7_rx_mixer_controls)),
Surendar Karka3ef3d812018-09-28 18:52:35 +053018882 SND_SOC_DAPM_MIXER("SLIMBUS_9_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18883 slimbus_9_rx_mixer_controls, ARRAY_SIZE(slimbus_9_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018884 SND_SOC_DAPM_MIXER("HDMI Mixer", SND_SOC_NOPM, 0, 0,
18885 hdmi_mixer_controls, ARRAY_SIZE(hdmi_mixer_controls)),
18886 SND_SOC_DAPM_MIXER("DISPLAY_PORT Mixer", SND_SOC_NOPM, 0, 0,
18887 display_port_mixer_controls, ARRAY_SIZE(display_port_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070018888 SND_SOC_DAPM_MIXER("DISPLAY_PORT1 Mixer", SND_SOC_NOPM, 0, 0,
18889 display_port1_mixer_controls, ARRAY_SIZE(display_port1_mixer_controls)),
Ralf Herzc8701f72018-06-20 11:37:35 +020018890 SND_SOC_DAPM_MIXER("PRI_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18891 pri_spdif_rx_mixer_controls, ARRAY_SIZE(pri_spdif_rx_mixer_controls)),
18892 SND_SOC_DAPM_MIXER("SEC_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18893 sec_spdif_rx_mixer_controls, ARRAY_SIZE(sec_spdif_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018894 SND_SOC_DAPM_MIXER("MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18895 mi2s_rx_mixer_controls, ARRAY_SIZE(mi2s_rx_mixer_controls)),
18896 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18897 quaternary_mi2s_rx_mixer_controls,
18898 ARRAY_SIZE(quaternary_mi2s_rx_mixer_controls)),
18899 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18900 tertiary_mi2s_rx_mixer_controls,
18901 ARRAY_SIZE(tertiary_mi2s_rx_mixer_controls)),
18902 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18903 secondary_mi2s_rx_mixer_controls,
18904 ARRAY_SIZE(secondary_mi2s_rx_mixer_controls)),
18905 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_SD1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18906 secondary_mi2s_rx2_mixer_controls,
18907 ARRAY_SIZE(secondary_mi2s_rx2_mixer_controls)),
18908 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18909 primary_mi2s_rx_mixer_controls,
18910 ARRAY_SIZE(primary_mi2s_rx_mixer_controls)),
18911 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18912 int0_mi2s_rx_mixer_controls,
18913 ARRAY_SIZE(int0_mi2s_rx_mixer_controls)),
18914 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18915 int4_mi2s_rx_mixer_controls,
18916 ARRAY_SIZE(int4_mi2s_rx_mixer_controls)),
18917 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18918 quinary_mi2s_rx_mixer_controls,
18919 ARRAY_SIZE(quinary_mi2s_rx_mixer_controls)),
18920 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18921 pri_tdm_rx_0_mixer_controls,
18922 ARRAY_SIZE(pri_tdm_rx_0_mixer_controls)),
18923 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18924 pri_tdm_rx_1_mixer_controls,
18925 ARRAY_SIZE(pri_tdm_rx_1_mixer_controls)),
18926 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18927 pri_tdm_rx_2_mixer_controls,
18928 ARRAY_SIZE(pri_tdm_rx_2_mixer_controls)),
18929 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18930 pri_tdm_rx_3_mixer_controls,
18931 ARRAY_SIZE(pri_tdm_rx_3_mixer_controls)),
18932 SND_SOC_DAPM_MIXER("PRI_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18933 pri_tdm_tx_0_mixer_controls,
18934 ARRAY_SIZE(pri_tdm_tx_0_mixer_controls)),
18935 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18936 sec_tdm_rx_0_mixer_controls,
18937 ARRAY_SIZE(sec_tdm_rx_0_mixer_controls)),
18938 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18939 sec_tdm_rx_1_mixer_controls,
18940 ARRAY_SIZE(sec_tdm_rx_1_mixer_controls)),
18941 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18942 sec_tdm_rx_2_mixer_controls,
18943 ARRAY_SIZE(sec_tdm_rx_2_mixer_controls)),
18944 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18945 sec_tdm_rx_3_mixer_controls,
18946 ARRAY_SIZE(sec_tdm_rx_3_mixer_controls)),
18947 SND_SOC_DAPM_MIXER("SEC_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18948 sec_tdm_tx_0_mixer_controls,
18949 ARRAY_SIZE(sec_tdm_tx_0_mixer_controls)),
18950 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18951 tert_tdm_rx_0_mixer_controls,
18952 ARRAY_SIZE(tert_tdm_rx_0_mixer_controls)),
18953 SND_SOC_DAPM_MIXER("TERT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18954 tert_tdm_tx_0_mixer_controls,
18955 ARRAY_SIZE(tert_tdm_tx_0_mixer_controls)),
18956 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18957 tert_tdm_rx_1_mixer_controls,
18958 ARRAY_SIZE(tert_tdm_rx_1_mixer_controls)),
18959 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18960 tert_tdm_rx_2_mixer_controls,
18961 ARRAY_SIZE(tert_tdm_rx_2_mixer_controls)),
18962 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18963 tert_tdm_rx_3_mixer_controls,
18964 ARRAY_SIZE(tert_tdm_rx_3_mixer_controls)),
18965 SND_SOC_DAPM_MIXER("TERT_TDM_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
18966 tert_tdm_rx_4_mixer_controls,
18967 ARRAY_SIZE(tert_tdm_rx_4_mixer_controls)),
18968 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18969 quat_tdm_rx_0_mixer_controls,
18970 ARRAY_SIZE(quat_tdm_rx_0_mixer_controls)),
18971 SND_SOC_DAPM_MIXER("QUAT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18972 quat_tdm_tx_0_mixer_controls,
18973 ARRAY_SIZE(quat_tdm_tx_0_mixer_controls)),
18974 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18975 quat_tdm_rx_1_mixer_controls,
18976 ARRAY_SIZE(quat_tdm_rx_1_mixer_controls)),
18977 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18978 quat_tdm_rx_2_mixer_controls,
18979 ARRAY_SIZE(quat_tdm_rx_2_mixer_controls)),
18980 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18981 quat_tdm_rx_3_mixer_controls,
18982 ARRAY_SIZE(quat_tdm_rx_3_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053018983 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18984 quin_tdm_rx_0_mixer_controls,
18985 ARRAY_SIZE(quin_tdm_rx_0_mixer_controls)),
18986 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18987 quin_tdm_tx_0_mixer_controls,
18988 ARRAY_SIZE(quin_tdm_tx_0_mixer_controls)),
18989 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18990 quin_tdm_rx_1_mixer_controls,
18991 ARRAY_SIZE(quin_tdm_rx_1_mixer_controls)),
18992 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18993 quin_tdm_rx_2_mixer_controls,
18994 ARRAY_SIZE(quin_tdm_rx_2_mixer_controls)),
18995 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18996 quin_tdm_rx_3_mixer_controls,
18997 ARRAY_SIZE(quin_tdm_rx_3_mixer_controls)),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018998 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18999 wsa_cdc_dma_rx_0_mixer_controls,
19000 ARRAY_SIZE(wsa_cdc_dma_rx_0_mixer_controls)),
19001 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19002 wsa_cdc_dma_rx_1_mixer_controls,
19003 ARRAY_SIZE(wsa_cdc_dma_rx_1_mixer_controls)),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019004 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19005 rx_cdc_dma_rx_0_mixer_controls,
19006 ARRAY_SIZE(rx_cdc_dma_rx_0_mixer_controls)),
19007 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19008 rx_cdc_dma_rx_1_mixer_controls,
19009 ARRAY_SIZE(rx_cdc_dma_rx_1_mixer_controls)),
19010 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19011 rx_cdc_dma_rx_2_mixer_controls,
19012 ARRAY_SIZE(rx_cdc_dma_rx_2_mixer_controls)),
19013 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19014 rx_cdc_dma_rx_3_mixer_controls,
19015 ARRAY_SIZE(rx_cdc_dma_rx_3_mixer_controls)),
19016 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
19017 rx_cdc_dma_rx_4_mixer_controls,
19018 ARRAY_SIZE(rx_cdc_dma_rx_4_mixer_controls)),
19019 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_5 Audio Mixer", SND_SOC_NOPM, 0, 0,
19020 rx_cdc_dma_rx_5_mixer_controls,
19021 ARRAY_SIZE(rx_cdc_dma_rx_5_mixer_controls)),
19022 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_6 Audio Mixer", SND_SOC_NOPM, 0, 0,
19023 rx_cdc_dma_rx_6_mixer_controls,
19024 ARRAY_SIZE(rx_cdc_dma_rx_6_mixer_controls)),
19025 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_7 Audio Mixer", SND_SOC_NOPM, 0, 0,
19026 rx_cdc_dma_rx_7_mixer_controls,
19027 ARRAY_SIZE(rx_cdc_dma_rx_7_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019028 SND_SOC_DAPM_MIXER("MultiMedia1 Mixer", SND_SOC_NOPM, 0, 0,
19029 mmul1_mixer_controls, ARRAY_SIZE(mmul1_mixer_controls)),
19030 SND_SOC_DAPM_MIXER("MultiMedia2 Mixer", SND_SOC_NOPM, 0, 0,
19031 mmul2_mixer_controls, ARRAY_SIZE(mmul2_mixer_controls)),
19032 SND_SOC_DAPM_MIXER("MultiMedia3 Mixer", SND_SOC_NOPM, 0, 0,
19033 mmul3_mixer_controls, ARRAY_SIZE(mmul3_mixer_controls)),
19034 SND_SOC_DAPM_MIXER("MultiMedia4 Mixer", SND_SOC_NOPM, 0, 0,
19035 mmul4_mixer_controls, ARRAY_SIZE(mmul4_mixer_controls)),
19036 SND_SOC_DAPM_MIXER("MultiMedia5 Mixer", SND_SOC_NOPM, 0, 0,
19037 mmul5_mixer_controls, ARRAY_SIZE(mmul5_mixer_controls)),
19038 SND_SOC_DAPM_MIXER("MultiMedia6 Mixer", SND_SOC_NOPM, 0, 0,
19039 mmul6_mixer_controls, ARRAY_SIZE(mmul6_mixer_controls)),
19040 SND_SOC_DAPM_MIXER("MultiMedia8 Mixer", SND_SOC_NOPM, 0, 0,
19041 mmul8_mixer_controls, ARRAY_SIZE(mmul8_mixer_controls)),
19042 SND_SOC_DAPM_MIXER("MultiMedia9 Mixer", SND_SOC_NOPM, 0, 0,
19043 mmul9_mixer_controls, ARRAY_SIZE(mmul9_mixer_controls)),
Laxminath Kasam38070be2017-08-17 18:21:59 +053019044 SND_SOC_DAPM_MIXER("MultiMedia10 Mixer", SND_SOC_NOPM, 0, 0,
19045 mmul10_mixer_controls, ARRAY_SIZE(mmul10_mixer_controls)),
Asish Bhattacharya34504582017-08-08 12:55:01 +053019046 SND_SOC_DAPM_MIXER("MultiMedia16 Mixer", SND_SOC_NOPM, 0, 0,
19047 mmul16_mixer_controls, ARRAY_SIZE(mmul16_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019048 SND_SOC_DAPM_MIXER("MultiMedia17 Mixer", SND_SOC_NOPM, 0, 0,
19049 mmul17_mixer_controls, ARRAY_SIZE(mmul17_mixer_controls)),
19050 SND_SOC_DAPM_MIXER("MultiMedia18 Mixer", SND_SOC_NOPM, 0, 0,
19051 mmul18_mixer_controls, ARRAY_SIZE(mmul18_mixer_controls)),
19052 SND_SOC_DAPM_MIXER("MultiMedia19 Mixer", SND_SOC_NOPM, 0, 0,
19053 mmul19_mixer_controls, ARRAY_SIZE(mmul19_mixer_controls)),
19054 SND_SOC_DAPM_MIXER("MultiMedia20 Mixer", SND_SOC_NOPM, 0, 0,
19055 mmul20_mixer_controls, ARRAY_SIZE(mmul20_mixer_controls)),
Derek Chen07c6d1c2018-07-05 10:39:25 -070019056 SND_SOC_DAPM_MIXER("MultiMedia21 Mixer", SND_SOC_NOPM, 0, 0,
19057 mmul21_mixer_controls, ARRAY_SIZE(mmul21_mixer_controls)),
Surendar Karkac1cde372018-08-14 18:56:24 +053019058 SND_SOC_DAPM_MIXER("MultiMedia27 Mixer", SND_SOC_NOPM, 0, 0,
19059 mmul27_mixer_controls, ARRAY_SIZE(mmul27_mixer_controls)),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019060 SND_SOC_DAPM_MIXER("MultiMedia28 Mixer", SND_SOC_NOPM, 0, 0,
19061 mmul28_mixer_controls, ARRAY_SIZE(mmul28_mixer_controls)),
19062 SND_SOC_DAPM_MIXER("MultiMedia29 Mixer", SND_SOC_NOPM, 0, 0,
19063 mmul29_mixer_controls, ARRAY_SIZE(mmul29_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019064 SND_SOC_DAPM_MIXER("AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19065 auxpcm_rx_mixer_controls, ARRAY_SIZE(auxpcm_rx_mixer_controls)),
19066 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19067 sec_auxpcm_rx_mixer_controls, ARRAY_SIZE(sec_auxpcm_rx_mixer_controls)),
19068 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19069 tert_auxpcm_rx_mixer_controls,
19070 ARRAY_SIZE(tert_auxpcm_rx_mixer_controls)),
19071 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19072 quat_auxpcm_rx_mixer_controls,
19073 ARRAY_SIZE(quat_auxpcm_rx_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019074 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19075 quin_auxpcm_rx_mixer_controls,
19076 ARRAY_SIZE(quin_auxpcm_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019077 /* incall */
19078 SND_SOC_DAPM_MIXER("Incall_Music Audio Mixer", SND_SOC_NOPM, 0, 0,
19079 incall_music_delivery_mixer_controls,
19080 ARRAY_SIZE(incall_music_delivery_mixer_controls)),
19081 SND_SOC_DAPM_MIXER("Incall_Music_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19082 incall_music2_delivery_mixer_controls,
19083 ARRAY_SIZE(incall_music2_delivery_mixer_controls)),
19084 SND_SOC_DAPM_MIXER("SLIMBUS_4_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19085 slimbus_4_rx_mixer_controls,
19086 ARRAY_SIZE(slimbus_4_rx_mixer_controls)),
19087 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19088 slimbus_6_rx_mixer_controls,
19089 ARRAY_SIZE(slimbus_6_rx_mixer_controls)),
19090 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19091 usb_audio_rx_mixer_controls,
19092 ARRAY_SIZE(usb_audio_rx_mixer_controls)),
19093 /* Voice Mixer */
19094 SND_SOC_DAPM_MIXER("PRI_RX_Voice Mixer",
19095 SND_SOC_NOPM, 0, 0, pri_rx_voice_mixer_controls,
19096 ARRAY_SIZE(pri_rx_voice_mixer_controls)),
19097 SND_SOC_DAPM_MIXER("SEC_RX_Voice Mixer",
19098 SND_SOC_NOPM, 0, 0,
19099 sec_i2s_rx_voice_mixer_controls,
19100 ARRAY_SIZE(sec_i2s_rx_voice_mixer_controls)),
19101 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_Voice Mixer",
19102 SND_SOC_NOPM, 0, 0,
19103 sec_mi2s_rx_voice_mixer_controls,
19104 ARRAY_SIZE(sec_mi2s_rx_voice_mixer_controls)),
19105 SND_SOC_DAPM_MIXER("SLIM_0_RX_Voice Mixer",
19106 SND_SOC_NOPM, 0, 0,
19107 slimbus_rx_voice_mixer_controls,
19108 ARRAY_SIZE(slimbus_rx_voice_mixer_controls)),
19109 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX_Voice Mixer",
19110 SND_SOC_NOPM, 0, 0,
19111 bt_sco_rx_voice_mixer_controls,
19112 ARRAY_SIZE(bt_sco_rx_voice_mixer_controls)),
19113 SND_SOC_DAPM_MIXER("AFE_PCM_RX_Voice Mixer",
19114 SND_SOC_NOPM, 0, 0,
19115 afe_pcm_rx_voice_mixer_controls,
19116 ARRAY_SIZE(afe_pcm_rx_voice_mixer_controls)),
19117 SND_SOC_DAPM_MIXER("AUX_PCM_RX_Voice Mixer",
19118 SND_SOC_NOPM, 0, 0,
19119 aux_pcm_rx_voice_mixer_controls,
19120 ARRAY_SIZE(aux_pcm_rx_voice_mixer_controls)),
19121 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX_Voice Mixer",
19122 SND_SOC_NOPM, 0, 0,
19123 sec_aux_pcm_rx_voice_mixer_controls,
19124 ARRAY_SIZE(sec_aux_pcm_rx_voice_mixer_controls)),
19125 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX_Voice Mixer",
19126 SND_SOC_NOPM, 0, 0,
19127 tert_aux_pcm_rx_voice_mixer_controls,
19128 ARRAY_SIZE(tert_aux_pcm_rx_voice_mixer_controls)),
19129 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX_Voice Mixer",
19130 SND_SOC_NOPM, 0, 0,
19131 quat_aux_pcm_rx_voice_mixer_controls,
19132 ARRAY_SIZE(quat_aux_pcm_rx_voice_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019133 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX_Voice Mixer",
19134 SND_SOC_NOPM, 0, 0,
19135 quin_aux_pcm_rx_voice_mixer_controls,
19136 ARRAY_SIZE(quin_aux_pcm_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019137 SND_SOC_DAPM_MIXER("HDMI_RX_Voice Mixer",
19138 SND_SOC_NOPM, 0, 0,
19139 hdmi_rx_voice_mixer_controls,
19140 ARRAY_SIZE(hdmi_rx_voice_mixer_controls)),
19141 SND_SOC_DAPM_MIXER("MI2S_RX_Voice Mixer",
19142 SND_SOC_NOPM, 0, 0,
19143 mi2s_rx_voice_mixer_controls,
19144 ARRAY_SIZE(mi2s_rx_voice_mixer_controls)),
19145 SND_SOC_DAPM_MIXER("PRI_MI2S_RX_Voice Mixer",
19146 SND_SOC_NOPM, 0, 0,
19147 pri_mi2s_rx_voice_mixer_controls,
19148 ARRAY_SIZE(pri_mi2s_rx_voice_mixer_controls)),
19149 SND_SOC_DAPM_MIXER("INT0_MI2S_RX_Voice Mixer",
19150 SND_SOC_NOPM, 0, 0,
19151 int0_mi2s_rx_voice_mixer_controls,
19152 ARRAY_SIZE(int0_mi2s_rx_voice_mixer_controls)),
19153 SND_SOC_DAPM_MIXER("INT4_MI2S_RX_Voice Mixer",
19154 SND_SOC_NOPM, 0, 0,
19155 int4_mi2s_rx_voice_mixer_controls,
19156 ARRAY_SIZE(int4_mi2s_rx_voice_mixer_controls)),
19157 SND_SOC_DAPM_MIXER("TERT_MI2S_RX_Voice Mixer",
19158 SND_SOC_NOPM, 0, 0,
19159 tert_mi2s_rx_voice_mixer_controls,
19160 ARRAY_SIZE(tert_mi2s_rx_voice_mixer_controls)),
19161 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX_Voice Mixer",
19162 SND_SOC_NOPM, 0, 0,
19163 quat_mi2s_rx_voice_mixer_controls,
19164 ARRAY_SIZE(quat_mi2s_rx_voice_mixer_controls)),
19165 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX_Voice Mixer",
19166 SND_SOC_NOPM, 0, 0,
19167 quin_mi2s_rx_voice_mixer_controls,
19168 ARRAY_SIZE(quin_mi2s_rx_voice_mixer_controls)),
19169 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2_Voice Mixer",
19170 SND_SOC_NOPM, 0, 0,
19171 quat_tdm_rx_2_voice_mixer_controls,
19172 ARRAY_SIZE(quat_tdm_rx_2_voice_mixer_controls)),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053019173 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0_Voice Mixer",
19174 SND_SOC_NOPM, 0, 0,
19175 wsa_cdc_dma_rx_0_voice_mixer_controls,
19176 ARRAY_SIZE(wsa_cdc_dma_rx_0_voice_mixer_controls)),
19177 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0_Voice Mixer",
19178 SND_SOC_NOPM, 0, 0,
19179 rx_cdc_dma_rx_0_voice_mixer_controls,
19180 ARRAY_SIZE(rx_cdc_dma_rx_0_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019181 SND_SOC_DAPM_MIXER("Voip_Tx Mixer",
19182 SND_SOC_NOPM, 0, 0, tx_voip_mixer_controls,
19183 ARRAY_SIZE(tx_voip_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019184 SND_SOC_DAPM_MIXER("VoiceMMode1_Tx Mixer",
19185 SND_SOC_NOPM, 0, 0, tx_voicemmode1_mixer_controls,
19186 ARRAY_SIZE(tx_voicemmode1_mixer_controls)),
19187 SND_SOC_DAPM_MIXER("VoiceMMode2_Tx Mixer",
19188 SND_SOC_NOPM, 0, 0, tx_voicemmode2_mixer_controls,
19189 ARRAY_SIZE(tx_voicemmode2_mixer_controls)),
19190 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19191 int_bt_sco_rx_mixer_controls, ARRAY_SIZE(int_bt_sco_rx_mixer_controls)),
19192 SND_SOC_DAPM_MIXER("INTERNAL_A2DP_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19193 int_bt_a2dp_rx_mixer_controls,
19194 ARRAY_SIZE(int_bt_a2dp_rx_mixer_controls)),
19195 SND_SOC_DAPM_MIXER("INTERNAL_FM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19196 int_fm_rx_mixer_controls, ARRAY_SIZE(int_fm_rx_mixer_controls)),
19197 SND_SOC_DAPM_MIXER("AFE_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19198 afe_pcm_rx_mixer_controls, ARRAY_SIZE(afe_pcm_rx_mixer_controls)),
19199 SND_SOC_DAPM_MIXER("Voice Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
19200 tx_voice_stub_mixer_controls, ARRAY_SIZE(tx_voice_stub_mixer_controls)),
19201 SND_SOC_DAPM_MIXER("Voice2 Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
19202 tx_voice2_stub_mixer_controls,
19203 ARRAY_SIZE(tx_voice2_stub_mixer_controls)),
19204 SND_SOC_DAPM_MIXER("VoLTE Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
19205 tx_volte_stub_mixer_controls, ARRAY_SIZE(tx_volte_stub_mixer_controls)),
19206 SND_SOC_DAPM_MIXER("STUB_RX Mixer", SND_SOC_NOPM, 0, 0,
19207 stub_rx_mixer_controls, ARRAY_SIZE(stub_rx_mixer_controls)),
19208 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Mixer", SND_SOC_NOPM, 0, 0,
19209 slimbus_1_rx_mixer_controls, ARRAY_SIZE(slimbus_1_rx_mixer_controls)),
19210 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
19211 slimbus_3_rx_mixer_controls, ARRAY_SIZE(slimbus_3_rx_mixer_controls)),
19212 SND_SOC_DAPM_MIXER("SLIM_6_RX_Voice Mixer",
19213 SND_SOC_NOPM, 0, 0,
19214 slimbus_6_rx_voice_mixer_controls,
19215 ARRAY_SIZE(slimbus_6_rx_voice_mixer_controls)),
19216 SND_SOC_DAPM_MIXER("SLIM_7_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
19217 slimbus_7_rx_voice_mixer_controls,
19218 ARRAY_SIZE(slimbus_7_rx_voice_mixer_controls)),
19219 SND_SOC_DAPM_MIXER("SLIM_8_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
19220 slimbus_8_rx_voice_mixer_controls,
19221 ARRAY_SIZE(slimbus_8_rx_voice_mixer_controls)),
19222 /* port mixer */
19223 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Port Mixer",
19224 SND_SOC_NOPM, 0, 0, sbus_0_rx_port_mixer_controls,
19225 ARRAY_SIZE(sbus_0_rx_port_mixer_controls)),
19226 SND_SOC_DAPM_MIXER("AUX_PCM_RX Port Mixer",
19227 SND_SOC_NOPM, 0, 0, aux_pcm_rx_port_mixer_controls,
19228 ARRAY_SIZE(aux_pcm_rx_port_mixer_controls)),
19229 SND_SOC_DAPM_MIXER("SEC_AUXPCM_RX Port Mixer",
19230 SND_SOC_NOPM, 0, 0, sec_auxpcm_rx_port_mixer_controls,
19231 ARRAY_SIZE(sec_auxpcm_rx_port_mixer_controls)),
19232 SND_SOC_DAPM_MIXER("TERT_AUXPCM_RX Port Mixer",
19233 SND_SOC_NOPM, 0, 0, tert_auxpcm_rx_port_mixer_controls,
19234 ARRAY_SIZE(tert_auxpcm_rx_port_mixer_controls)),
19235 SND_SOC_DAPM_MIXER("QUAT_AUXPCM_RX Port Mixer",
19236 SND_SOC_NOPM, 0, 0, quat_auxpcm_rx_port_mixer_controls,
19237 ARRAY_SIZE(quat_auxpcm_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019238 SND_SOC_DAPM_MIXER("QUIN_AUXPCM_RX Port Mixer",
19239 SND_SOC_NOPM, 0, 0, quin_auxpcm_rx_port_mixer_controls,
19240 ARRAY_SIZE(quin_auxpcm_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019241 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19242 sbus_1_rx_port_mixer_controls,
19243 ARRAY_SIZE(sbus_1_rx_port_mixer_controls)),
19244 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19245 bt_sco_rx_port_mixer_controls,
19246 ARRAY_SIZE(bt_sco_rx_port_mixer_controls)),
19247 SND_SOC_DAPM_MIXER("AFE_PCM_RX Port Mixer",
19248 SND_SOC_NOPM, 0, 0, afe_pcm_rx_port_mixer_controls,
19249 ARRAY_SIZE(afe_pcm_rx_port_mixer_controls)),
19250 SND_SOC_DAPM_MIXER("HDMI_RX Port Mixer",
19251 SND_SOC_NOPM, 0, 0, hdmi_rx_port_mixer_controls,
19252 ARRAY_SIZE(hdmi_rx_port_mixer_controls)),
19253 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX Port Mixer",
19254 SND_SOC_NOPM, 0, 0, display_port_rx_port_mixer_controls,
19255 ARRAY_SIZE(display_port_rx_port_mixer_controls)),
Karthikeyan Manifbea92f2018-06-14 16:38:15 -070019256 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1 Port Mixer",
Karthikeyan Mani57550082018-05-03 18:43:58 -070019257 SND_SOC_NOPM, 0, 0, display_port_rx1_port_mixer_controls,
19258 ARRAY_SIZE(display_port_rx1_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019259 SND_SOC_DAPM_MIXER("SEC_I2S_RX Port Mixer",
19260 SND_SOC_NOPM, 0, 0, sec_i2s_rx_port_mixer_controls,
19261 ARRAY_SIZE(sec_i2s_rx_port_mixer_controls)),
19262 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX Port Mixer",
19263 SND_SOC_NOPM, 0, 0, sbus_3_rx_port_mixer_controls,
19264 ARRAY_SIZE(sbus_3_rx_port_mixer_controls)),
19265 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Port Mixer",
19266 SND_SOC_NOPM, 0, 0, sbus_6_rx_port_mixer_controls,
19267 ARRAY_SIZE(sbus_6_rx_port_mixer_controls)),
19268 SND_SOC_DAPM_MIXER("MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19269 mi2s_rx_port_mixer_controls, ARRAY_SIZE(mi2s_rx_port_mixer_controls)),
19270 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19271 primary_mi2s_rx_port_mixer_controls,
19272 ARRAY_SIZE(primary_mi2s_rx_port_mixer_controls)),
19273 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19274 sec_mi2s_rx_port_mixer_controls,
19275 ARRAY_SIZE(sec_mi2s_rx_port_mixer_controls)),
19276 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19277 tert_mi2s_rx_port_mixer_controls,
19278 ARRAY_SIZE(tert_mi2s_rx_port_mixer_controls)),
19279 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19280 quat_mi2s_rx_port_mixer_controls,
19281 ARRAY_SIZE(quat_mi2s_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019282 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19283 quin_mi2s_rx_port_mixer_controls,
19284 ARRAY_SIZE(quin_mi2s_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019285 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19286 pri_tdm_rx_0_port_mixer_controls,
19287 ARRAY_SIZE(pri_tdm_rx_0_port_mixer_controls)),
19288 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19289 pri_tdm_rx_1_port_mixer_controls,
19290 ARRAY_SIZE(pri_tdm_rx_1_port_mixer_controls)),
19291 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19292 pri_tdm_rx_2_port_mixer_controls,
19293 ARRAY_SIZE(pri_tdm_rx_2_port_mixer_controls)),
19294 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19295 pri_tdm_rx_3_port_mixer_controls,
19296 ARRAY_SIZE(pri_tdm_rx_3_port_mixer_controls)),
19297 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19298 sec_tdm_rx_0_port_mixer_controls,
19299 ARRAY_SIZE(sec_tdm_rx_0_port_mixer_controls)),
19300 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19301 sec_tdm_rx_1_port_mixer_controls,
19302 ARRAY_SIZE(sec_tdm_rx_1_port_mixer_controls)),
19303 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19304 sec_tdm_rx_2_port_mixer_controls,
19305 ARRAY_SIZE(sec_tdm_rx_2_port_mixer_controls)),
19306 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19307 sec_tdm_rx_3_port_mixer_controls,
19308 ARRAY_SIZE(sec_tdm_rx_3_port_mixer_controls)),
19309 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19310 tert_tdm_rx_0_port_mixer_controls,
19311 ARRAY_SIZE(tert_tdm_rx_0_port_mixer_controls)),
19312 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19313 tert_tdm_rx_1_port_mixer_controls,
19314 ARRAY_SIZE(tert_tdm_rx_1_port_mixer_controls)),
19315 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19316 tert_tdm_rx_2_port_mixer_controls,
19317 ARRAY_SIZE(tert_tdm_rx_2_port_mixer_controls)),
19318 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19319 tert_tdm_rx_3_port_mixer_controls,
19320 ARRAY_SIZE(tert_tdm_rx_3_port_mixer_controls)),
19321 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19322 quat_tdm_rx_0_port_mixer_controls,
19323 ARRAY_SIZE(quat_tdm_rx_0_port_mixer_controls)),
19324 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19325 quat_tdm_rx_1_port_mixer_controls,
19326 ARRAY_SIZE(quat_tdm_rx_1_port_mixer_controls)),
19327 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19328 quat_tdm_rx_2_port_mixer_controls,
19329 ARRAY_SIZE(quat_tdm_rx_2_port_mixer_controls)),
19330 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19331 quat_tdm_rx_3_port_mixer_controls,
19332 ARRAY_SIZE(quat_tdm_rx_3_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019333 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19334 quin_tdm_rx_0_port_mixer_controls,
19335 ARRAY_SIZE(quin_tdm_rx_0_port_mixer_controls)),
19336 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19337 quin_tdm_rx_1_port_mixer_controls,
19338 ARRAY_SIZE(quin_tdm_rx_1_port_mixer_controls)),
19339 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19340 quin_tdm_rx_2_port_mixer_controls,
19341 ARRAY_SIZE(quin_tdm_rx_2_port_mixer_controls)),
19342 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19343 quin_tdm_rx_3_port_mixer_controls,
19344 ARRAY_SIZE(quin_tdm_rx_3_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019345 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19346 int0_mi2s_rx_port_mixer_controls,
19347 ARRAY_SIZE(int0_mi2s_rx_port_mixer_controls)),
19348 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19349 int4_mi2s_rx_port_mixer_controls,
19350 ARRAY_SIZE(int4_mi2s_rx_port_mixer_controls)),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053019351 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19352 wsa_cdc_dma_rx_0_port_mixer_controls,
19353 ARRAY_SIZE(wsa_cdc_dma_rx_0_port_mixer_controls)),
19354 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19355 rx_cdc_dma_rx_0_port_mixer_controls,
19356 ARRAY_SIZE(rx_cdc_dma_rx_0_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019357 SND_SOC_DAPM_MIXER("QCHAT_Tx Mixer",
19358 SND_SOC_NOPM, 0, 0, tx_qchat_mixer_controls,
19359 ARRAY_SIZE(tx_qchat_mixer_controls)),
19360 SND_SOC_DAPM_MIXER("USB_AUDIO_RX_Voice Mixer",
19361 SND_SOC_NOPM, 0, 0, usb_audio_rx_voice_mixer_controls,
19362 ARRAY_SIZE(usb_audio_rx_voice_mixer_controls)),
19363 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Port Mixer",
19364 SND_SOC_NOPM, 0, 0, usb_rx_port_mixer_controls,
19365 ARRAY_SIZE(usb_rx_port_mixer_controls)),
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080019366 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX_Voice Mixer",
19367 SND_SOC_NOPM, 0, 0, display_port_rx_voice_mixer_controls,
19368 ARRAY_SIZE(display_port_rx_voice_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070019369 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1_Voice Mixer",
19370 SND_SOC_NOPM, 0, 0, display_port_rx1_voice_mixer_controls,
19371 ARRAY_SIZE(display_port_rx1_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019372 /* lsm mixer definitions */
19373 SND_SOC_DAPM_MIXER("LSM1 Mixer", SND_SOC_NOPM, 0, 0,
19374 lsm1_mixer_controls, ARRAY_SIZE(lsm1_mixer_controls)),
19375 SND_SOC_DAPM_MIXER("LSM2 Mixer", SND_SOC_NOPM, 0, 0,
19376 lsm2_mixer_controls, ARRAY_SIZE(lsm2_mixer_controls)),
19377 SND_SOC_DAPM_MIXER("LSM3 Mixer", SND_SOC_NOPM, 0, 0,
19378 lsm3_mixer_controls, ARRAY_SIZE(lsm3_mixer_controls)),
19379 SND_SOC_DAPM_MIXER("LSM4 Mixer", SND_SOC_NOPM, 0, 0,
19380 lsm4_mixer_controls, ARRAY_SIZE(lsm4_mixer_controls)),
19381 SND_SOC_DAPM_MIXER("LSM5 Mixer", SND_SOC_NOPM, 0, 0,
19382 lsm5_mixer_controls, ARRAY_SIZE(lsm5_mixer_controls)),
19383 SND_SOC_DAPM_MIXER("LSM6 Mixer", SND_SOC_NOPM, 0, 0,
19384 lsm6_mixer_controls, ARRAY_SIZE(lsm6_mixer_controls)),
19385 SND_SOC_DAPM_MIXER("LSM7 Mixer", SND_SOC_NOPM, 0, 0,
19386 lsm7_mixer_controls, ARRAY_SIZE(lsm7_mixer_controls)),
19387 SND_SOC_DAPM_MIXER("LSM8 Mixer", SND_SOC_NOPM, 0, 0,
19388 lsm8_mixer_controls, ARRAY_SIZE(lsm8_mixer_controls)),
19389 /* Virtual Pins to force backends ON atm */
19390 SND_SOC_DAPM_OUTPUT("BE_OUT"),
19391 SND_SOC_DAPM_INPUT("BE_IN"),
19392
19393 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
19394 &slim0_rx_vi_fb_lch_mux),
19395 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
19396 &slim0_rx_vi_fb_rch_mux),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019397 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
19398 &wsa_rx_0_vi_fb_lch_mux),
19399 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
19400 &wsa_rx_0_vi_fb_rch_mux),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019401 SND_SOC_DAPM_MUX("PRI_MI2S_RX_VI_FB_MUX", SND_SOC_NOPM, 0, 0,
19402 &mi2s_rx_vi_fb_mux),
19403 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_MONO_CH_MUX", SND_SOC_NOPM, 0, 0,
19404 &int4_mi2s_rx_vi_fb_mono_ch_mux),
19405 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", SND_SOC_NOPM, 0, 0,
19406 &int4_mi2s_rx_vi_fb_stereo_ch_mux),
19407
19408 SND_SOC_DAPM_MUX("VOC_EXT_EC MUX", SND_SOC_NOPM, 0, 0,
19409 &voc_ext_ec_mux),
19410 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL1 MUX", SND_SOC_NOPM, 0, 0,
19411 &ext_ec_ref_mux_ul1),
19412 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL2 MUX", SND_SOC_NOPM, 0, 0,
19413 &ext_ec_ref_mux_ul2),
19414 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL3 MUX", SND_SOC_NOPM, 0, 0,
19415 &ext_ec_ref_mux_ul3),
19416 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL4 MUX", SND_SOC_NOPM, 0, 0,
19417 &ext_ec_ref_mux_ul4),
19418 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL5 MUX", SND_SOC_NOPM, 0, 0,
19419 &ext_ec_ref_mux_ul5),
19420 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL6 MUX", SND_SOC_NOPM, 0, 0,
19421 &ext_ec_ref_mux_ul6),
19422 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL8 MUX", SND_SOC_NOPM, 0, 0,
19423 &ext_ec_ref_mux_ul8),
19424 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL9 MUX", SND_SOC_NOPM, 0, 0,
19425 &ext_ec_ref_mux_ul9),
Laxminath Kasam38070be2017-08-17 18:21:59 +053019426 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL10 MUX", SND_SOC_NOPM, 0, 0,
19427 &ext_ec_ref_mux_ul10),
Asish Bhattacharya34504582017-08-08 12:55:01 +053019428 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL16 MUX", SND_SOC_NOPM, 0, 0,
19429 &ext_ec_ref_mux_ul16),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019430 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL17 MUX", SND_SOC_NOPM, 0, 0,
19431 &ext_ec_ref_mux_ul17),
19432 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL18 MUX", SND_SOC_NOPM, 0, 0,
19433 &ext_ec_ref_mux_ul18),
19434 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL19 MUX", SND_SOC_NOPM, 0, 0,
19435 &ext_ec_ref_mux_ul19),
Meng Wang5c4bab72018-04-25 10:40:01 +080019436 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL28 MUX", SND_SOC_NOPM, 0, 0,
19437 &ext_ec_ref_mux_ul28),
19438 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL29 MUX", SND_SOC_NOPM, 0, 0,
19439 &ext_ec_ref_mux_ul29),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019440};
19441
19442static const struct snd_soc_dapm_route intercon[] = {
19443 {"PRI_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19444 {"PRI_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19445 {"PRI_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19446 {"PRI_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19447 {"PRI_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19448 {"PRI_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19449 {"PRI_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19450 {"PRI_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19451 {"PRI_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19452 {"PRI_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19453 {"PRI_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19454 {"PRI_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19455 {"PRI_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19456 {"PRI_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19457 {"PRI_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19458 {"PRI_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019459 {"PRI_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019460 {"PRI_I2S_RX", NULL, "PRI_RX Audio Mixer"},
19461
19462 {"SEC_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19463 {"SEC_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19464 {"SEC_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19465 {"SEC_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19466 {"SEC_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19467 {"SEC_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19468 {"SEC_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19469 {"SEC_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19470 {"SEC_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19471 {"SEC_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19472 {"SEC_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19473 {"SEC_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19474 {"SEC_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19475 {"SEC_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19476 {"SEC_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19477 {"SEC_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019478 {"SEC_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019479 {"SEC_I2S_RX", NULL, "SEC_RX Audio Mixer"},
19480
19481 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19482 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19483 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19484 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19485 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19486 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19487 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19488 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19489 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19490 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19491 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19492 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19493 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19494 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19495 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19496 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019497 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019498 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Audio Mixer"},
19499
19500 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19501 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19502 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19503 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19504 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19505 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19506 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19507 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19508 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19509 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19510 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19511 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19512 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19513 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19514 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19515 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019516 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019517 {"SLIMBUS_2_RX", NULL, "SLIMBUS_2_RX Audio Mixer"},
19518
19519 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19520 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19521 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19522 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19523 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19524 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19525 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19526 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19527 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19528 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19529 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19530 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19531 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19532 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19533 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19534 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019535 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019536 {"SLIMBUS_5_RX", NULL, "SLIMBUS_5_RX Audio Mixer"},
19537
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019538 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19539 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19540 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19541 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19542 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19543 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19544 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19545 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19546 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19547 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19548 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19549 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19550 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19551 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19552 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19553 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019554 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019555 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Audio Mixer"},
19556
19557 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19558 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19559 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19560 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19561 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19562 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19563 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19564 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19565 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19566 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19567 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19568 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19569 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19570 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19571 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19572 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019573 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019574 {"WSA_CDC_DMA_RX_1", NULL, "WSA_CDC_DMA_RX_1 Audio Mixer"},
19575
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019576 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19577 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19578 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19579 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19580 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19581 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19582 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19583 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19584 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19585 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19586 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19587 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19588 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19589 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19590 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19591 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019592 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019593 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Audio Mixer"},
19594
19595 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19596 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19597 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19598 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19599 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19600 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19601 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19602 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19603 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19604 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19605 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19606 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19607 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19608 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19609 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19610 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019611 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019612 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_1 Audio Mixer"},
19613
19614 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19615 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19616 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
19617 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
19618 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19619 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
19620 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
19621 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
19622 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19623 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
19624 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
19625 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
19626 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
19627 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
19628 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
19629 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019630 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019631 {"RX_CDC_DMA_RX_2", NULL, "RX_CDC_DMA_RX_2 Audio Mixer"},
19632
19633 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
19634 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
19635 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
19636 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
19637 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
19638 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
19639 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
19640 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
19641 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
19642 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
19643 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
19644 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
19645 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
19646 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
19647 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
19648 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019649 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019650 {"RX_CDC_DMA_RX_3", NULL, "RX_CDC_DMA_RX_3 Audio Mixer"},
19651
19652 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
19653 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
19654 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
19655 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
19656 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
19657 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
19658 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
19659 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
19660 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
19661 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
19662 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
19663 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
19664 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
19665 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
19666 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
19667 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019668 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019669 {"RX_CDC_DMA_RX_4", NULL, "RX_CDC_DMA_RX_4 Audio Mixer"},
19670
19671 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia1", "MM_DL1"},
19672 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia2", "MM_DL2"},
19673 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia3", "MM_DL3"},
19674 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia4", "MM_DL4"},
19675 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia5", "MM_DL5"},
19676 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia6", "MM_DL6"},
19677 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia7", "MM_DL7"},
19678 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia8", "MM_DL8"},
19679 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia9", "MM_DL9"},
19680 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia10", "MM_DL10"},
19681 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia11", "MM_DL11"},
19682 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia12", "MM_DL12"},
19683 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia13", "MM_DL13"},
19684 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia14", "MM_DL14"},
19685 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia15", "MM_DL15"},
19686 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019687 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019688 {"RX_CDC_DMA_RX_5", NULL, "RX_CDC_DMA_RX_5 Audio Mixer"},
19689
19690 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia1", "MM_DL1"},
19691 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia2", "MM_DL2"},
19692 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia3", "MM_DL3"},
19693 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia4", "MM_DL4"},
19694 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia5", "MM_DL5"},
19695 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia6", "MM_DL6"},
19696 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia7", "MM_DL7"},
19697 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia8", "MM_DL8"},
19698 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia9", "MM_DL9"},
19699 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia10", "MM_DL10"},
19700 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia11", "MM_DL11"},
19701 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia12", "MM_DL12"},
19702 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia13", "MM_DL13"},
19703 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia14", "MM_DL14"},
19704 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia15", "MM_DL15"},
19705 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019706 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019707 {"RX_CDC_DMA_RX_6", NULL, "RX_CDC_DMA_RX_6 Audio Mixer"},
19708
19709 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia1", "MM_DL1"},
19710 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia2", "MM_DL2"},
19711 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia3", "MM_DL3"},
19712 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia4", "MM_DL4"},
19713 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia5", "MM_DL5"},
19714 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia6", "MM_DL6"},
19715 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia7", "MM_DL7"},
19716 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia8", "MM_DL8"},
19717 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia9", "MM_DL9"},
19718 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia10", "MM_DL10"},
19719 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia11", "MM_DL11"},
19720 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia12", "MM_DL12"},
19721 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia13", "MM_DL13"},
19722 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia14", "MM_DL14"},
19723 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia15", "MM_DL15"},
19724 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019725 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019726 {"RX_CDC_DMA_RX_7", NULL, "RX_CDC_DMA_RX_7 Audio Mixer"},
19727
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019728 {"HDMI Mixer", "MultiMedia1", "MM_DL1"},
19729 {"HDMI Mixer", "MultiMedia2", "MM_DL2"},
19730 {"HDMI Mixer", "MultiMedia3", "MM_DL3"},
19731 {"HDMI Mixer", "MultiMedia4", "MM_DL4"},
19732 {"HDMI Mixer", "MultiMedia5", "MM_DL5"},
19733 {"HDMI Mixer", "MultiMedia6", "MM_DL6"},
19734 {"HDMI Mixer", "MultiMedia7", "MM_DL7"},
19735 {"HDMI Mixer", "MultiMedia8", "MM_DL8"},
19736 {"HDMI Mixer", "MultiMedia9", "MM_DL9"},
19737 {"HDMI Mixer", "MultiMedia10", "MM_DL10"},
19738 {"HDMI Mixer", "MultiMedia11", "MM_DL11"},
19739 {"HDMI Mixer", "MultiMedia12", "MM_DL12"},
19740 {"HDMI Mixer", "MultiMedia13", "MM_DL13"},
19741 {"HDMI Mixer", "MultiMedia14", "MM_DL14"},
19742 {"HDMI Mixer", "MultiMedia15", "MM_DL15"},
19743 {"HDMI Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019744 {"HDMI Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019745 {"HDMI", NULL, "HDMI Mixer"},
19746
19747 {"DISPLAY_PORT Mixer", "MultiMedia1", "MM_DL1"},
19748 {"DISPLAY_PORT Mixer", "MultiMedia2", "MM_DL2"},
19749 {"DISPLAY_PORT Mixer", "MultiMedia3", "MM_DL3"},
19750 {"DISPLAY_PORT Mixer", "MultiMedia4", "MM_DL4"},
19751 {"DISPLAY_PORT Mixer", "MultiMedia5", "MM_DL5"},
19752 {"DISPLAY_PORT Mixer", "MultiMedia6", "MM_DL6"},
19753 {"DISPLAY_PORT Mixer", "MultiMedia7", "MM_DL7"},
19754 {"DISPLAY_PORT Mixer", "MultiMedia8", "MM_DL8"},
19755 {"DISPLAY_PORT Mixer", "MultiMedia9", "MM_DL9"},
19756 {"DISPLAY_PORT Mixer", "MultiMedia10", "MM_DL10"},
19757 {"DISPLAY_PORT Mixer", "MultiMedia11", "MM_DL11"},
19758 {"DISPLAY_PORT Mixer", "MultiMedia12", "MM_DL12"},
19759 {"DISPLAY_PORT Mixer", "MultiMedia13", "MM_DL13"},
19760 {"DISPLAY_PORT Mixer", "MultiMedia14", "MM_DL14"},
19761 {"DISPLAY_PORT Mixer", "MultiMedia15", "MM_DL15"},
19762 {"DISPLAY_PORT Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019763 {"DISPLAY_PORT Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019764 {"DISPLAY_PORT", NULL, "DISPLAY_PORT Mixer"},
19765
Karthikeyan Mani57550082018-05-03 18:43:58 -070019766 {"DISPLAY_PORT1 Mixer", "MultiMedia1", "MM_DL1"},
19767 {"DISPLAY_PORT1 Mixer", "MultiMedia2", "MM_DL2"},
19768 {"DISPLAY_PORT1 Mixer", "MultiMedia3", "MM_DL3"},
19769 {"DISPLAY_PORT1 Mixer", "MultiMedia4", "MM_DL4"},
19770 {"DISPLAY_PORT1 Mixer", "MultiMedia5", "MM_DL5"},
19771 {"DISPLAY_PORT1 Mixer", "MultiMedia6", "MM_DL6"},
19772 {"DISPLAY_PORT1 Mixer", "MultiMedia7", "MM_DL7"},
19773 {"DISPLAY_PORT1 Mixer", "MultiMedia8", "MM_DL8"},
19774 {"DISPLAY_PORT1 Mixer", "MultiMedia9", "MM_DL9"},
19775 {"DISPLAY_PORT1 Mixer", "MultiMedia10", "MM_DL10"},
19776 {"DISPLAY_PORT1 Mixer", "MultiMedia11", "MM_DL11"},
19777 {"DISPLAY_PORT1 Mixer", "MultiMedia12", "MM_DL12"},
19778 {"DISPLAY_PORT1 Mixer", "MultiMedia13", "MM_DL13"},
19779 {"DISPLAY_PORT1 Mixer", "MultiMedia14", "MM_DL14"},
19780 {"DISPLAY_PORT1 Mixer", "MultiMedia15", "MM_DL15"},
19781 {"DISPLAY_PORT1 Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019782 {"DISPLAY_PORT1 Mixer", "MultiMedia26", "MM_DL26"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070019783 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT1 Mixer"},
19784
Ralf Herzc8701f72018-06-20 11:37:35 +020019785 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19786 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19787 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19788 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19789 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19790 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19791 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19792 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19793 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19794 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19795 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19796 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19797 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19798 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19799 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19800 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019801 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020019802 {"PRI_SPDIF_RX", NULL, "PRI_SPDIF_RX Audio Mixer"},
19803
19804 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19805 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19806 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19807 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19808 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19809 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19810 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19811 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19812 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19813 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19814 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19815 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19816 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19817 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19818 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19819 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019820 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020019821 {"SEC_SPDIF_RX", NULL, "SEC_SPDIF_RX Audio Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019822
19823 /* incall */
19824 {"Incall_Music Audio Mixer", "MultiMedia1", "MM_DL1"},
19825 {"Incall_Music Audio Mixer", "MultiMedia2", "MM_DL2"},
19826 {"Incall_Music Audio Mixer", "MultiMedia5", "MM_DL5"},
19827 {"Incall_Music Audio Mixer", "MultiMedia9", "MM_DL9"},
19828 {"VOICE_PLAYBACK_TX", NULL, "Incall_Music Audio Mixer"},
19829 {"Incall_Music_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19830 {"Incall_Music_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19831 {"Incall_Music_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19832 {"Incall_Music_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19833 {"VOICE2_PLAYBACK_TX", NULL, "Incall_Music_2 Audio Mixer"},
19834 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19835 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19836 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19837 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19838 {"SLIMBUS_4_RX", NULL, "SLIMBUS_4_RX Audio Mixer"},
19839
19840 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19841 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19842 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19843 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19844 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19845 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19846 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19847 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19848 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19849 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19850 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19851 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19852 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19853 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19854 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19855 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019856 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019857 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Audio Mixer"},
19858
19859 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19860 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19861 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19862 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19863 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19864 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19865 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19866 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19867 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19868 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19869 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19870 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19871 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19872 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19873 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19874 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019875 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019876 {"SLIMBUS_7_RX", NULL, "SLIMBUS_7_RX Audio Mixer"},
19877
Surendar Karka3ef3d812018-09-28 18:52:35 +053019878 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19879 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19880 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19881 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19882 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19883 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19884 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19885 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19886 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19887 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19888 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19889 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19890 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19891 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19892 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19893 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19894 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
19895 {"SLIMBUS_9_RX", NULL, "SLIMBUS_9_RX Audio Mixer"},
19896
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019897 {"USB_AUDIO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19898 {"USB_AUDIO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19899 {"USB_AUDIO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19900 {"USB_AUDIO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19901 {"USB_AUDIO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19902 {"USB_AUDIO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19903 {"USB_AUDIO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19904 {"USB_AUDIO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19905 {"USB_AUDIO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19906 {"USB_AUDIO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19907 {"USB_AUDIO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19908 {"USB_AUDIO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19909 {"USB_AUDIO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19910 {"USB_AUDIO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19911 {"USB_AUDIO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19912 {"USB_AUDIO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019913 {"USB_AUDIO_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019914 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Audio Mixer"},
19915
19916 {"MultiMedia1 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
19917 {"MultiMedia4 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
19918 {"MultiMedia8 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
19919 {"MultiMedia1 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
19920 {"MultiMedia4 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
19921 {"MultiMedia8 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
19922 {"MultiMedia1 Mixer", "SLIM_4_TX", "SLIMBUS_4_TX"},
19923 {"MultiMedia1 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
19924 {"MultiMedia1 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
19925 {"MultiMedia1 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053019926 {"MultiMedia1 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019927 {"MultiMedia8 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
19928 {"MultiMedia8 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053019929 {"MultiMedia8 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019930 {"MultiMedia4 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19931 {"MultiMedia17 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19932 {"MultiMedia18 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19933 {"MultiMedia19 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019934 {"MultiMedia28 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19935 {"MultiMedia29 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019936 {"MultiMedia8 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19937 {"MultiMedia2 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19938 {"MultiMedia4 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19939 {"MultiMedia17 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19940 {"MultiMedia18 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19941 {"MultiMedia19 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019942 {"MultiMedia28 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19943 {"MultiMedia29 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019944 {"MultiMedia8 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020019945 {"MultiMedia18 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019946 {"MultiMedia17 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19947 {"MultiMedia18 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19948 {"MultiMedia19 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19949 {"MultiMedia28 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19950 {"MultiMedia29 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19951 {"MultiMedia17 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019952 {"MultiMedia18 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019953 {"MultiMedia19 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
19954 {"MultiMedia28 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
19955 {"MultiMedia29 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019956 {"MultiMedia8 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
19957 {"MultiMedia3 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19958 {"MultiMedia5 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053019959 {"MultiMedia10 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053019960 {"MultiMedia16 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019961 {"MultiMedia5 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
19962 {"MultiMedia5 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053019963 {"MultiMedia5 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053019964 {"MultiMedia10 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053019965 {"MultiMedia10 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020019966 {"MultiMedia18 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
19967 {"MultiMedia18 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
19968
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019969 {"MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19970 {"MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19971 {"MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19972 {"MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19973 {"MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19974 {"MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19975 {"MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19976 {"MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19977 {"MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19978 {"MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19979 {"MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19980 {"MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19981 {"MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19982 {"MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19983 {"MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19984 {"MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019985 {"MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019986 {"MI2S_RX", NULL, "MI2S_RX Audio Mixer"},
19987
19988 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19989 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19990 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19991 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19992 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19993 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19994 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19995 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19996 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19997 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19998 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19999 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20000 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20001 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20002 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020003 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020004 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Audio Mixer"},
20005
20006 {"TERT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20007 {"TERT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20008 {"TERT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20009 {"TERT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20010 {"TERT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20011 {"TERT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20012 {"TERT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20013 {"TERT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20014 {"TERT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20015 {"TERT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20016 {"TERT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20017 {"TERT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20018 {"TERT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20019 {"TERT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020020 {"TERT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020021 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Audio Mixer"},
20022
20023 {"SEC_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20024 {"SEC_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20025 {"SEC_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20026 {"SEC_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20027 {"SEC_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20028 {"SEC_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20029 {"SEC_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20030 {"SEC_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20031 {"SEC_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20032 {"SEC_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20033 {"SEC_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20034 {"SEC_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20035 {"SEC_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20036 {"SEC_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020037 {"SEC_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020038 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Audio Mixer"},
20039
20040 {"SEC_MI2S_RX_SD1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20041 {"SEC_MI2S_RX_SD1", NULL, "SEC_MI2S_RX_SD1 Audio Mixer"},
20042
20043 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20044 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20045
20046 {"PRI_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20047 {"PRI_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20048 {"PRI_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20049 {"PRI_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20050 {"PRI_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20051 {"PRI_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20052 {"PRI_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20053 {"PRI_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20054 {"PRI_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20055 {"PRI_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20056 {"PRI_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20057 {"PRI_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20058 {"PRI_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20059 {"PRI_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20060 {"PRI_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020061 {"PRI_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020062 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Audio Mixer"},
20063
20064 {"INT0_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20065 {"INT0_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20066 {"INT0_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20067 {"INT0_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20068 {"INT0_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20069 {"INT0_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20070 {"INT0_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20071 {"INT0_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20072 {"INT0_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20073 {"INT0_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20074 {"INT0_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20075 {"INT0_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20076 {"INT0_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20077 {"INT0_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20078 {"INT0_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20079 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Audio Mixer"},
20080
20081 {"INT4_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20082 {"INT4_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20083 {"INT4_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20084 {"INT4_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20085 {"INT4_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20086 {"INT4_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20087 {"INT4_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20088 {"INT4_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20089 {"INT4_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20090 {"INT4_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20091 {"INT4_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20092 {"INT4_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20093 {"INT4_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20094 {"INT4_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20095 {"INT4_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20096 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Audio Mixer"},
20097
20098 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20099 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20100 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20101 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20102 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20103 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20104 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20105 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20106 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20107 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20108 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20109 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20110 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20111 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20112 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20113 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20114 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20115 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Audio Mixer"},
20116
20117 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20118 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20119 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20120 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20121 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20122 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20123 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20124 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20125 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20126 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20127 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20128 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20129 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20130 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20131 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20132 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020133 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020134 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Audio Mixer"},
20135
20136 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20137 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20138 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20139 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20140 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20141 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20142 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20143 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20144 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20145 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20146 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20147 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20148 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20149 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20150 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20151 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020152 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020153 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Audio Mixer"},
20154
20155 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20156 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20157 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20158 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20159 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20160 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20161 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20162 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20163 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20164 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20165 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20166 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20167 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20168 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20169 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20170 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020171 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020172 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Audio Mixer"},
20173
20174 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20175 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20176 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20177 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20178 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20179 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20180 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20181 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20182 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20183 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20184 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20185 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20186 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20187 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20188 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20189 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020190 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020191 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Audio Mixer"},
20192
20193 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20194 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20195 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20196 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20197 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20198 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20199 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20200 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20201 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20202 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20203 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20204 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20205 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20206 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20207 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20208 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20209 {"PRI_TDM_TX_0", NULL, "PRI_TDM_TX_0 Audio Mixer"},
20210
20211 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20212 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20213 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20214 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20215 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20216 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20217 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20218 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20219 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20220 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20221 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20222 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20223 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20224 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20225 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20226 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020227 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020228 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Audio Mixer"},
20229
20230 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20231 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20232 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20233 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20234 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20235 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20236 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20237 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20238 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20239 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20240 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20241 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20242 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20243 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20244 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20245 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020246 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020247 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Audio Mixer"},
20248
20249 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20250 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20251 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20252 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20253 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20254 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20255 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20256 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20257 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20258 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20259 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20260 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20261 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20262 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20263 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20264 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020265 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020266 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Audio Mixer"},
20267
20268 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20269 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20270 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20271 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20272 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20273 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20274 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20275 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20276 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20277 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20278 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20279 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20280 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20281 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20282 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20283 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020284 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020285 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Audio Mixer"},
20286
20287 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20288 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20289 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20290 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20291 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20292 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20293 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20294 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20295 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20296 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20297 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20298 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20299 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20300 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20301 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20302 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20303 {"SEC_TDM_TX_0", NULL, "SEC_TDM_TX_0 Audio Mixer"},
20304
20305 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20306 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20307 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20308 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20309 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20310 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20311 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20312 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20313 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20314 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20315 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20316 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20317 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20318 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20319 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20320 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020321 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020322 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Audio Mixer"},
20323
20324 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20325 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20326 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20327 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20328 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20329 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20330 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20331 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20332 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20333 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20334 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20335 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20336 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20337 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20338 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20339 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20340 {"TERT_TDM_TX_0", NULL, "TERT_TDM_TX_0 Audio Mixer"},
20341
20342 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20343 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20344 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20345 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20346 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20347 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20348 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20349 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20350 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20351 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20352 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20353 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20354 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20355 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20356 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20357 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020358 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020359 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Audio Mixer"},
20360
20361 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20362 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20363 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20364 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20365 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20366 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20367 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20368 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20369 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20370 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20371 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20372 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20373 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20374 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20375 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20376 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020377 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020378 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Audio Mixer"},
20379
20380 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20381 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20382 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20383 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20384 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20385 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20386 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20387 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20388 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20389 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20390 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20391 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20392 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20393 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20394 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20395 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020396 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020397 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Audio Mixer"},
20398
20399 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
20400 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
20401 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
20402 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
20403 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
20404 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
20405 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
20406 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
20407 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
20408 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
20409 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
20410 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
20411 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
20412 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
20413 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
20414 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020415 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020416 {"TERT_TDM_RX_4", NULL, "TERT_TDM_RX_4 Audio Mixer"},
20417
20418 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20419 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20420 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20421 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20422 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20423 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20424 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20425 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20426 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20427 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20428 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20429 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20430 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20431 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20432 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20433 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20434 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020435 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020436 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Audio Mixer"},
20437
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020438 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20439 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20440 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20441 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20442 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20443 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20444 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20445 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20446 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20447 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20448 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20449 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20450 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20451 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20452 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20453 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20454 {"QUAT_TDM_TX_0", NULL, "QUAT_TDM_TX_0 Audio Mixer"},
20455
20456 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20457 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20458 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20459 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20460 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20461 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20462 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20463 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20464 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20465 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20466 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20467 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20468 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20469 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20470 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20471 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
20472 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020473 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020474 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Audio Mixer"},
20475
20476 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20477 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20478 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20479 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20480 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20481 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20482 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20483 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20484 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20485 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20486 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20487 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20488 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20489 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20490 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20491 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
20492 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020493 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020494 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Audio Mixer"},
20495
20496 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20497 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20498 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20499 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20500 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20501 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20502 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20503 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20504 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20505 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20506 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20507 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20508 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20509 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20510 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20511 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
20512 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020513 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020514 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Audio Mixer"},
20515
Rohit Kumara5077932017-09-10 22:05:05 +053020516 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20517 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20518 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20519 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20520 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20521 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20522 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20523 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20524 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20525 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20526 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20527 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20528 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20529 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20530 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20531 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20532 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020533 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053020534 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Audio Mixer"},
20535
20536 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20537 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20538 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20539 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20540 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20541 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20542 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20543 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20544 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20545 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20546 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20547 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20548 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20549 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20550 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20551 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20552 {"QUIN_TDM_TX_0", NULL, "QUIN_TDM_TX_0 Audio Mixer"},
20553
20554 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20555 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20556 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20557 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20558 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20559 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20560 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20561 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20562 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20563 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20564 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20565 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20566 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20567 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20568 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20569 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
20570 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020571 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053020572 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Audio Mixer"},
20573
20574 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20575 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20576 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20577 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20578 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20579 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20580 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20581 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20582 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20583 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20584 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20585 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20586 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20587 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20588 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20589 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
20590 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020591 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053020592 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Audio Mixer"},
20593
20594 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20595 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20596 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20597 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20598 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20599 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20600 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20601 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20602 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20603 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20604 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20605 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20606 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20607 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20608 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20609 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
20610 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020611 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053020612 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Audio Mixer"},
20613
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020614 {"MultiMedia1 Mixer", "PRI_TX", "PRI_I2S_TX"},
20615 {"MultiMedia1 Mixer", "MI2S_TX", "MI2S_TX"},
20616 {"MultiMedia2 Mixer", "MI2S_TX", "MI2S_TX"},
20617 {"MultiMedia3 Mixer", "MI2S_TX", "MI2S_TX"},
20618 {"MultiMedia5 Mixer", "MI2S_TX", "MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020619 {"MultiMedia10 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020620 {"MultiMedia16 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020621 {"MultiMedia1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20622 {"MultiMedia2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20623 {"MultiMedia6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20624 {"MultiMedia1 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
20625 {"MultiMedia2 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
20626 {"MultiMedia1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20627 {"MultiMedia2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20628 {"MultiMedia1 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20629 {"MultiMedia2 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20630 {"MultiMedia1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20631 {"MultiMedia2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20632 {"MultiMedia1 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20633 {"MultiMedia1 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
20634 {"MultiMedia3 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
20635 {"MultiMedia5 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020636 {"MultiMedia10 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020637 {"MultiMedia1 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
20638 {"MultiMedia3 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
20639 {"MultiMedia5 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020640 {"MultiMedia10 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020641 {"MultiMedia16 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
20642 {"MultiMedia16 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020643 {"MultiMedia1 Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
20644 {"MultiMedia3 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
20645 {"MultiMedia5 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020646 {"MultiMedia10 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020647 {"MultiMedia1 Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
20648 {"MultiMedia3 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
20649 {"MultiMedia5 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020650 {"MultiMedia10 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020651 {"MultiMedia16 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020652 {"MultiMedia1 Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
20653 {"MultiMedia3 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
20654 {"MultiMedia5 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020655 {"MultiMedia2 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20656 {"MultiMedia2 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
20657 {"MultiMedia2 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
20658 {"MultiMedia2 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
20659 {"MultiMedia1 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20660 {"MultiMedia1 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20661 {"MultiMedia2 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20662 {"MultiMedia6 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20663 {"MultiMedia6 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20664 {"MultiMedia3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20665 {"MultiMedia5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020666 {"MultiMedia10 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020667 {"MultiMedia6 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20668 {"MultiMedia3 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20669 {"MultiMedia5 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020670 {"MultiMedia10 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020671 {"MultiMedia16 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020672 {"MultiMedia6 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20673 {"MultiMedia3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20674 {"MultiMedia5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020675 {"MultiMedia10 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020676 {"MultiMedia16 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020677 {"MultiMedia17 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20678 {"MultiMedia18 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20679 {"MultiMedia19 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20680 {"MultiMedia28 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20681 {"MultiMedia29 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020682 {"MultiMedia6 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20683 {"MultiMedia6 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
20684 {"MultiMedia6 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
20685 {"MultiMedia6 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020686 {"MultiMedia6 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020687
20688 {"MultiMedia1 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20689 {"MultiMedia1 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20690 {"MultiMedia1 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20691 {"MultiMedia1 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20692 {"MultiMedia1 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20693 {"MultiMedia1 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20694 {"MultiMedia1 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20695 {"MultiMedia1 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20696 {"MultiMedia1 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20697 {"MultiMedia1 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20698 {"MultiMedia1 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20699 {"MultiMedia1 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20700 {"MultiMedia1 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20701 {"MultiMedia1 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20702 {"MultiMedia1 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20703 {"MultiMedia1 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020704 {"MultiMedia1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20705 {"MultiMedia1 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20706 {"MultiMedia1 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20707 {"MultiMedia1 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020708 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20709 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20710 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20711 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20712 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020713 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20714 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20715 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20716 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20717 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20718 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020719 {"MultiMedia1 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20720 {"MultiMedia1 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020721
20722 {"MultiMedia2 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20723 {"MultiMedia2 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20724 {"MultiMedia2 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20725 {"MultiMedia2 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20726 {"MultiMedia2 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20727 {"MultiMedia2 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20728 {"MultiMedia2 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20729 {"MultiMedia2 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20730 {"MultiMedia2 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20731 {"MultiMedia2 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20732 {"MultiMedia2 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20733 {"MultiMedia2 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20734 {"MultiMedia2 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20735 {"MultiMedia2 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20736 {"MultiMedia2 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20737 {"MultiMedia2 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020738 {"MultiMedia2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20739 {"MultiMedia2 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20740 {"MultiMedia2 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20741 {"MultiMedia2 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020742 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20743 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20744 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20745 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20746 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020747 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20748 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20749 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20750 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20751 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20752 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020753 {"MultiMedia2 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20754 {"MultiMedia2 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020755
20756 {"MultiMedia3 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20757 {"MultiMedia3 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20758 {"MultiMedia3 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20759 {"MultiMedia3 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20760 {"MultiMedia3 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20761 {"MultiMedia3 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20762 {"MultiMedia3 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20763 {"MultiMedia3 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20764 {"MultiMedia3 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20765 {"MultiMedia3 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20766 {"MultiMedia3 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20767 {"MultiMedia3 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20768 {"MultiMedia3 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20769 {"MultiMedia3 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20770 {"MultiMedia3 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20771 {"MultiMedia3 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020772 {"MultiMedia3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20773 {"MultiMedia3 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20774 {"MultiMedia3 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20775 {"MultiMedia3 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020776 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20777 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20778 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20779 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20780 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020781 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20782 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20783 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20784 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20785 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20786 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020787 {"MultiMedia3 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20788 {"MultiMedia3 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020789
20790 {"MultiMedia4 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20791 {"MultiMedia4 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20792 {"MultiMedia4 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20793 {"MultiMedia4 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20794 {"MultiMedia4 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20795 {"MultiMedia4 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20796 {"MultiMedia4 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20797 {"MultiMedia4 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20798 {"MultiMedia4 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20799 {"MultiMedia4 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20800 {"MultiMedia4 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20801 {"MultiMedia4 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20802 {"MultiMedia4 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20803 {"MultiMedia4 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20804 {"MultiMedia4 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20805 {"MultiMedia4 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020806 {"MultiMedia4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20807 {"MultiMedia4 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20808 {"MultiMedia4 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20809 {"MultiMedia4 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020810 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20811 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20812 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20813 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20814 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020815 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20816 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20817 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20818 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20819 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20820 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020821 {"MultiMedia4 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20822 {"MultiMedia4 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020823
20824 {"MultiMedia5 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20825 {"MultiMedia5 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20826 {"MultiMedia5 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20827 {"MultiMedia5 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20828 {"MultiMedia5 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20829 {"MultiMedia5 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20830 {"MultiMedia5 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20831 {"MultiMedia5 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20832 {"MultiMedia5 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20833 {"MultiMedia5 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20834 {"MultiMedia5 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20835 {"MultiMedia5 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20836 {"MultiMedia5 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20837 {"MultiMedia5 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20838 {"MultiMedia5 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20839 {"MultiMedia5 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020840 {"MultiMedia5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20841 {"MultiMedia5 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20842 {"MultiMedia5 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20843 {"MultiMedia5 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020844 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20845 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20846 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20847 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20848 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020849 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20850 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20851 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20852 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20853 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20854 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020855 {"MultiMedia5 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20856 {"MultiMedia5 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020857
20858 {"MultiMedia6 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20859 {"MultiMedia6 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20860 {"MultiMedia6 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20861 {"MultiMedia6 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20862 {"MultiMedia6 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20863 {"MultiMedia6 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20864 {"MultiMedia6 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20865 {"MultiMedia6 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20866 {"MultiMedia6 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20867 {"MultiMedia6 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20868 {"MultiMedia6 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20869 {"MultiMedia6 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20870 {"MultiMedia6 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20871 {"MultiMedia6 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20872 {"MultiMedia6 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20873 {"MultiMedia6 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020874 {"MultiMedia6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20875 {"MultiMedia6 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20876 {"MultiMedia6 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20877 {"MultiMedia6 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020878 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20879 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20880 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20881 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20882 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020883 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20884 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20885 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20886 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20887 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20888 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020889 {"MultiMedia6 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20890 {"MultiMedia6 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020891
20892 {"MultiMedia8 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20893 {"MultiMedia8 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20894 {"MultiMedia8 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20895 {"MultiMedia8 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20896 {"MultiMedia8 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20897 {"MultiMedia8 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20898 {"MultiMedia8 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20899 {"MultiMedia8 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20900 {"MultiMedia8 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20901 {"MultiMedia8 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20902 {"MultiMedia8 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20903 {"MultiMedia8 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20904 {"MultiMedia8 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20905 {"MultiMedia8 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20906 {"MultiMedia8 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20907 {"MultiMedia8 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020908 {"MultiMedia8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20909 {"MultiMedia8 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20910 {"MultiMedia8 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20911 {"MultiMedia8 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020912 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20913 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20914 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20915 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20916 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020917 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20918 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20919 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20920 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20921 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20922 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020923 {"MultiMedia8 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20924 {"MultiMedia8 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020925
20926 {"MultiMedia9 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20927 {"MultiMedia9 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20928 {"MultiMedia9 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20929 {"MultiMedia9 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20930 {"MultiMedia9 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20931 {"MultiMedia9 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20932 {"MultiMedia9 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20933 {"MultiMedia9 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020934 {"MultiMedia9 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20935 {"MultiMedia9 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20936 {"MultiMedia9 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20937 {"MultiMedia9 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020938 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20939 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20940 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20941 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20942 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020943 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20944 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20945 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20946 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20947 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20948 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020949 {"MultiMedia9 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20950 {"MultiMedia9 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020951
Laxminath Kasam38070be2017-08-17 18:21:59 +053020952 {"MultiMedia10 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20953 {"MultiMedia10 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20954 {"MultiMedia10 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20955 {"MultiMedia10 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20956 {"MultiMedia10 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20957 {"MultiMedia10 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20958 {"MultiMedia10 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20959 {"MultiMedia10 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020960 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20961 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20962 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20963 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20964 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20965 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
20966
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020967 {"MultiMedia20 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20968 {"MultiMedia20 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20969 {"MultiMedia20 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20970 {"MultiMedia20 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020971 {"MultiMedia20 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020972 {"MultiMedia20 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20973 {"MultiMedia20 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20974 {"MultiMedia20 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20975 {"MultiMedia20 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20976 {"MultiMedia20 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20977 {"MultiMedia20 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20978 {"MultiMedia20 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20979 {"MultiMedia20 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20980 {"MultiMedia20 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20981 {"MultiMedia20 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20982 {"MultiMedia20 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20983 {"MultiMedia20 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20984 {"MultiMedia20 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20985 {"MultiMedia20 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20986 {"MultiMedia20 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20987 {"MultiMedia20 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020988 {"MultiMedia20 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20989 {"MultiMedia20 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20990 {"MultiMedia20 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20991 {"MultiMedia20 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020992 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20993 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20994 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20995 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20996 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020997 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20998 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20999 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21000 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21001 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21002 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021003 {"MultiMedia20 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21004 {"MultiMedia20 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021005
Derek Chen07c6d1c2018-07-05 10:39:25 -070021006 {"MultiMedia21 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21007 {"MultiMedia21 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21008 {"MultiMedia21 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21009 {"MultiMedia21 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21010 {"MultiMedia21 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21011 {"MultiMedia21 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21012 {"MultiMedia21 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21013 {"MultiMedia21 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21014 {"MultiMedia21 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21015 {"MultiMedia21 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21016 {"MultiMedia21 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21017 {"MultiMedia21 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21018 {"MultiMedia21 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21019 {"MultiMedia21 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21020 {"MultiMedia21 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21021 {"MultiMedia21 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21022 {"MultiMedia21 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21023 {"MultiMedia21 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21024 {"MultiMedia21 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21025 {"MultiMedia21 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21026 {"MultiMedia21 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21027 {"MultiMedia21 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053021028 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21029 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21030 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21031 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21032 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
21033 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21034 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21035 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21036 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21037 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21038 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
21039 {"MultiMedia21 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21040 {"MultiMedia21 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021041
Surendar Karkac1cde372018-08-14 18:56:24 +053021042 {"MultiMedia27 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21043 {"MultiMedia27 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
21044 {"MultiMedia27 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053021045 {"MultiMedia27 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021046 {"MultiMedia27 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21047 {"MultiMedia27 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21048 {"MultiMedia27 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21049 {"MultiMedia27 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21050 {"MultiMedia27 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
21051 {"MultiMedia27 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21052 {"MultiMedia27 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
21053
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021054 {"MultiMedia1 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21055 {"MultiMedia2 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21056 {"MultiMedia4 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21057 {"MultiMedia5 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21058 {"MultiMedia6 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21059 {"MultiMedia8 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021060 {"MultiMedia10 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021061
Asish Bhattacharya34504582017-08-08 12:55:01 +053021062 {"MultiMedia16 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21063 {"MultiMedia16 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21064 {"MultiMedia16 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21065 {"MultiMedia16 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21066 {"MultiMedia16 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21067 {"MultiMedia16 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21068 {"MultiMedia16 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21069 {"MultiMedia16 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21070 {"MultiMedia16 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21071 {"MultiMedia16 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21072 {"MultiMedia16 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21073 {"MultiMedia16 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21074 {"MultiMedia16 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21075 {"MultiMedia16 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21076 {"MultiMedia16 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21077 {"MultiMedia16 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21078 {"MultiMedia16 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021079 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21080 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21081 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21082 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21083 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021084 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21085 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21086 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21087 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21088 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21089 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021090 {"MultiMedia16 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21091 {"MultiMedia16 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021092
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021093 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21094 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21095 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21096 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21097 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21098 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
21099
21100 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21101 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21102 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21103 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21104 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21105 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
21106
21107 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21108 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21109 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21110 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21111 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21112 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
21113
21114 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21115 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21116 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21117 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21118 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21119 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
21120
21121 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21122 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21123 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21124 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21125 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21126 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
21127
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021128 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21129 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21130 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21131 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21132 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21133 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21134 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21135 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21136 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21137 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21138 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21139 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21140 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21141 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21142 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21143 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21144 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
21145 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Audio Mixer"},
21146
21147 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21148 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21149 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21150 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21151 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21152 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21153 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21154 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21155 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21156 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21157 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21158 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21159 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21160 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21161 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21162 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21163 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
21164 {"INT_BT_A2DP_RX", NULL, "INTERNAL_A2DP_RX Audio Mixer"},
21165
21166 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21167 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21168 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21169 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21170 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21171 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21172 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21173 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21174 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21175 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21176 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21177 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21178 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21179 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21180 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21181 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21182 {"INT_FM_RX", NULL, "INTERNAL_FM_RX Audio Mixer"},
21183
21184 {"AFE_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21185 {"AFE_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21186 {"AFE_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21187 {"AFE_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21188 {"AFE_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21189 {"AFE_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21190 {"AFE_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21191 {"AFE_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21192 {"AFE_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21193 {"AFE_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21194 {"AFE_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21195 {"AFE_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21196 {"AFE_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21197 {"AFE_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21198 {"AFE_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21199 {"AFE_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21200 {"PCM_RX", NULL, "AFE_PCM_RX Audio Mixer"},
21201
21202 {"MultiMedia1 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21203 {"MultiMedia3 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21204 {"MultiMedia4 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021205 {"MultiMedia10 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021206 {"MultiMedia17 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21207 {"MultiMedia18 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21208 {"MultiMedia19 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021209 {"MultiMedia28 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21210 {"MultiMedia29 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021211 {"MultiMedia5 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21212 {"MultiMedia8 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021213 {"MultiMedia16 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021214 {"MultiMedia1 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21215 {"MultiMedia4 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021216 {"MultiMedia16 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021217 {"MultiMedia17 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21218 {"MultiMedia18 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21219 {"MultiMedia19 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021220 {"MultiMedia28 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21221 {"MultiMedia29 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021222 {"MultiMedia5 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21223 {"MultiMedia6 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21224 {"MultiMedia8 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21225
21226 {"MultiMedia1 Mixer", "AFE_PCM_TX", "PCM_TX"},
21227 {"MultiMedia3 Mixer", "AFE_PCM_TX", "PCM_TX"},
21228 {"MultiMedia4 Mixer", "AFE_PCM_TX", "PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021229 {"MultiMedia10 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021230 {"MultiMedia17 Mixer", "AFE_PCM_TX", "PCM_TX"},
21231 {"MultiMedia18 Mixer", "AFE_PCM_TX", "PCM_TX"},
21232 {"MultiMedia19 Mixer", "AFE_PCM_TX", "PCM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021233 {"MultiMedia28 Mixer", "AFE_PCM_TX", "PCM_TX"},
21234 {"MultiMedia29 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021235 {"MultiMedia5 Mixer", "AFE_PCM_TX", "PCM_TX"},
21236 {"MultiMedia8 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021237 {"MultiMedia16 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021238 {"MM_UL1", NULL, "MultiMedia1 Mixer"},
21239 {"MultiMedia2 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21240 {"MM_UL2", NULL, "MultiMedia2 Mixer"},
21241 {"MM_UL3", NULL, "MultiMedia3 Mixer"},
21242 {"MM_UL4", NULL, "MultiMedia4 Mixer"},
21243 {"MM_UL5", NULL, "MultiMedia5 Mixer"},
21244 {"MM_UL6", NULL, "MultiMedia6 Mixer"},
21245 {"MM_UL8", NULL, "MultiMedia8 Mixer"},
21246 {"MM_UL9", NULL, "MultiMedia9 Mixer"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021247 {"MM_UL10", NULL, "MultiMedia10 Mixer"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021248 {"MM_UL16", NULL, "MultiMedia16 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021249 {"MM_UL17", NULL, "MultiMedia17 Mixer"},
21250 {"MM_UL18", NULL, "MultiMedia18 Mixer"},
21251 {"MM_UL19", NULL, "MultiMedia19 Mixer"},
21252 {"MM_UL20", NULL, "MultiMedia20 Mixer"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021253 {"MM_UL21", NULL, "MultiMedia21 Mixer"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021254 {"MM_UL27", NULL, "MultiMedia27 Mixer"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021255 {"MM_UL28", NULL, "MultiMedia28 Mixer"},
21256 {"MM_UL29", NULL, "MultiMedia29 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021257
21258 {"AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21259 {"AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21260 {"AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21261 {"AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21262 {"AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21263 {"AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21264 {"AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21265 {"AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21266 {"AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21267 {"AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21268 {"AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21269 {"AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21270 {"AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21271 {"AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21272 {"AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21273 {"AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021274 {"AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021275 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Audio Mixer"},
21276
21277 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21278 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21279 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21280 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21281 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21282 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21283 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21284 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21285 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21286 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21287 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21288 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21289 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21290 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21291 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21292 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021293 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021294 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX Audio Mixer"},
21295
21296 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21297 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21298 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21299 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21300 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21301 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21302 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21303 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21304 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21305 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21306 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21307 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21308 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21309 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21310 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21311 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21312 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX Audio Mixer"},
21313
21314 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21315 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21316 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21317 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21318 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21319 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21320 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21321 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21322 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21323 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21324 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21325 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21326 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21327 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21328 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21329 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21330 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX Audio Mixer"},
21331
Rohit Kumara5077932017-09-10 22:05:05 +053021332 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21333 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21334 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21335 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21336 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21337 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21338 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21339 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21340 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21341 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21342 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21343 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21344 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21345 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21346 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21347 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21348 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX Audio Mixer"},
21349
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021350 {"PRI_RX_Voice Mixer", "Voip", "VOIP_DL"},
21351 {"PRI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21352 {"PRI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21353 {"PRI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21354 {"PRI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21355 {"PRI_I2S_RX", NULL, "PRI_RX_Voice Mixer"},
21356
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021357 {"SEC_RX_Voice Mixer", "Voip", "VOIP_DL"},
21358 {"SEC_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21359 {"SEC_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21360 {"SEC_I2S_RX", NULL, "SEC_RX_Voice Mixer"},
21361
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021362 {"SEC_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
21363 {"SEC_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21364 {"SEC_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21365 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21366 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21367 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_Voice Mixer"},
21368
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021369 {"SLIM_0_RX_Voice Mixer", "Voip", "VOIP_DL"},
21370 {"SLIM_0_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021371 {"SLIM_0_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21372 {"SLIM_0_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21373 {"SLIM_0_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21374 {"SLIMBUS_0_RX", NULL, "SLIM_0_RX_Voice Mixer"},
21375
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021376 {"SLIM_6_RX_Voice Mixer", "Voip", "VOIP_DL"},
21377 {"SLIM_6_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021378 {"SLIM_6_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21379 {"SLIM_6_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21380 {"SLIM_6_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21381 {"SLIMBUS_6_RX", NULL, "SLIM_6_RX_Voice Mixer"},
21382
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021383 {"USB_AUDIO_RX_Voice Mixer", "Voip", "VOIP_DL"},
21384 {"USB_AUDIO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021385 {"USB_AUDIO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21386 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21387 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21388 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX_Voice Mixer"},
21389
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080021390 {"DISPLAY_PORT_RX_Voice Mixer", "Voip", "VOIP_DL"},
21391 {"DISPLAY_PORT_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080021392 {"DISPLAY_PORT_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21393 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21394 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21395 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX_Voice Mixer"},
21396
Karthikeyan Mani57550082018-05-03 18:43:58 -070021397 {"DISPLAY_PORT_RX1_Voice Mixer", "Voip", "VOIP_DL"},
21398 {"DISPLAY_PORT_RX1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21399 {"DISPLAY_PORT_RX1_Voice Mixer", "QCHAT", "QCHAT_DL"},
21400 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21401 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21402 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1_Voice Mixer"},
21403
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021404 {"INTERNAL_BT_SCO_RX_Voice Mixer", "Voip", "VOIP_DL"},
21405 {"INTERNAL_BT_SCO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21406 {"INTERNAL_BT_SCO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21407 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21408 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021409 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX_Voice Mixer"},
21410
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021411 {"AFE_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21412 {"AFE_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21413 {"AFE_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21414 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21415 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21416 {"PCM_RX", NULL, "AFE_PCM_RX_Voice Mixer"},
21417
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021418 {"AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21419 {"AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021420 {"AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21421 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21422 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21423 {"AUX_PCM_RX", NULL, "AUX_PCM_RX_Voice Mixer"},
21424
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021425 {"SEC_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21426 {"SEC_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021427 {"SEC_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21428 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21429 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21430 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX_Voice Mixer"},
21431
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021432 {"TERT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21433 {"TERT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021434 {"TERT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21435 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21436 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21437 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX_Voice Mixer"},
21438
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021439 {"QUAT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21440 {"QUAT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021441 {"QUAT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21442 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21443 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21444 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX_Voice Mixer"},
21445
Rohit Kumara5077932017-09-10 22:05:05 +053021446 {"QUIN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21447 {"QUIN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053021448 {"QUIN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21449 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21450 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21451 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX_Voice Mixer"},
21452
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021453 {"HDMI_RX_Voice Mixer", "Voip", "VOIP_DL"},
21454 {"HDMI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21455 {"HDMI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21456 {"HDMI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21457 {"HDMI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21458 {"HDMI", NULL, "HDMI_RX_Voice Mixer"},
21459 {"HDMI", NULL, "HDMI_DL_HL"},
21460
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021461 {"MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021462 {"MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21463 {"MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21464 {"MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
kunleiz8a60b822017-10-11 15:04:02 +080021465 {"MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021466 {"MI2S_RX", NULL, "MI2S_RX_Voice Mixer"},
21467
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021468 {"PRI_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021469 {"PRI_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21470 {"PRI_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21471 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21472 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21473 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_Voice Mixer"},
21474
21475 {"INT0_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
21476 {"INT0_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21477 {"INT0_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21478 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21479 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21480 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_Voice Mixer"},
21481
21482 {"INT4_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
21483 {"INT4_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21484 {"INT4_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21485 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21486 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21487 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_Voice Mixer"},
21488
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021489 {"TERT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021490 {"TERT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21491 {"TERT_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21492 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21493 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21494 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_Voice Mixer"},
21495
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021496 {"QUAT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021497 {"QUAT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21498 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21499 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21500 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_Voice Mixer"},
21501
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021502 {"QUIN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021503 {"QUIN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21504 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21505 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21506 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_Voice Mixer"},
21507
21508 {"QUAT_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21509 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_Voice Mixer"},
21510
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053021511 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21512 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21513 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_Voice Mixer"},
21514
21515 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21516 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21517 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_Voice Mixer"},
21518
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021519 {"VOC_EXT_EC MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21520 {"VOC_EXT_EC MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21521 {"VOC_EXT_EC MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21522 {"VOC_EXT_EC MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021523 {"VOC_EXT_EC MUX", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021524 {"VOC_EXT_EC MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
Karthikeyan Mania1eb9382018-07-25 10:52:58 -070021525 {"VOC_EXT_EC MUX", "SEC_TDM_TX", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021526 {"VOIP_UL", NULL, "VOC_EXT_EC MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021527 {"VOICEMMODE1_UL", NULL, "VOC_EXT_EC MUX"},
21528 {"VOICEMMODE2_UL", NULL, "VOC_EXT_EC MUX"},
21529
21530 {"AUDIO_REF_EC_UL1 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21531 {"AUDIO_REF_EC_UL1 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21532 {"AUDIO_REF_EC_UL1 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21533 {"AUDIO_REF_EC_UL1 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21534 {"AUDIO_REF_EC_UL1 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
21535 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21536 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
21537 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
21538 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
21539 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21540
21541 {"AUDIO_REF_EC_UL2 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21542 {"AUDIO_REF_EC_UL2 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21543 {"AUDIO_REF_EC_UL2 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21544 {"AUDIO_REF_EC_UL2 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21545
21546 {"AUDIO_REF_EC_UL3 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21547 {"AUDIO_REF_EC_UL3 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21548 {"AUDIO_REF_EC_UL3 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21549 {"AUDIO_REF_EC_UL3 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21550
21551 {"AUDIO_REF_EC_UL4 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21552 {"AUDIO_REF_EC_UL4 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21553 {"AUDIO_REF_EC_UL4 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21554 {"AUDIO_REF_EC_UL4 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21555
21556 {"AUDIO_REF_EC_UL5 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21557 {"AUDIO_REF_EC_UL5 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21558 {"AUDIO_REF_EC_UL5 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21559 {"AUDIO_REF_EC_UL5 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21560
21561 {"AUDIO_REF_EC_UL6 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21562 {"AUDIO_REF_EC_UL6 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21563 {"AUDIO_REF_EC_UL6 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21564 {"AUDIO_REF_EC_UL6 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21565
21566 {"AUDIO_REF_EC_UL8 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21567 {"AUDIO_REF_EC_UL8 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21568 {"AUDIO_REF_EC_UL8 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21569 {"AUDIO_REF_EC_UL8 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21570
21571 {"AUDIO_REF_EC_UL9 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21572 {"AUDIO_REF_EC_UL9 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21573 {"AUDIO_REF_EC_UL9 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21574 {"AUDIO_REF_EC_UL9 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21575
Laxminath Kasam38070be2017-08-17 18:21:59 +053021576 {"AUDIO_REF_EC_UL10 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21577 {"AUDIO_REF_EC_UL10 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21578 {"AUDIO_REF_EC_UL10 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21579 {"AUDIO_REF_EC_UL10 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21580 {"AUDIO_REF_EC_UL10 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
21581 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21582 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
21583 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
21584 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
21585 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Vikram Panduranga016c49f2017-09-11 15:15:56 -070021586
21587 {"AUDIO_REF_EC_UL16 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21588 {"AUDIO_REF_EC_UL16 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21589 {"AUDIO_REF_EC_UL16 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21590 {"AUDIO_REF_EC_UL16 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21591
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021592 {"AUDIO_REF_EC_UL17 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21593 {"AUDIO_REF_EC_UL17 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21594 {"AUDIO_REF_EC_UL17 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21595 {"AUDIO_REF_EC_UL17 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21596
21597 {"AUDIO_REF_EC_UL18 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21598 {"AUDIO_REF_EC_UL18 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21599 {"AUDIO_REF_EC_UL18 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21600 {"AUDIO_REF_EC_UL18 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21601
21602 {"AUDIO_REF_EC_UL19 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21603 {"AUDIO_REF_EC_UL19 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21604 {"AUDIO_REF_EC_UL19 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21605 {"AUDIO_REF_EC_UL19 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21606
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021607 {"AUDIO_REF_EC_UL28 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21608 {"AUDIO_REF_EC_UL28 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21609 {"AUDIO_REF_EC_UL28 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21610 {"AUDIO_REF_EC_UL28 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21611
21612 {"AUDIO_REF_EC_UL29 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21613 {"AUDIO_REF_EC_UL29 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21614 {"AUDIO_REF_EC_UL29 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21615 {"AUDIO_REF_EC_UL29 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Yunfei Zhang3efc4a22017-11-07 16:30:13 +080021616
21617 {"LSM1_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21618 {"LSM2_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21619 {"LSM3_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21620 {"LSM4_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21621 {"LSM5_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21622 {"LSM6_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21623 {"LSM7_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21624 {"LSM8_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21625
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021626 {"MM_UL1", NULL, "AUDIO_REF_EC_UL1 MUX"},
21627 {"MM_UL2", NULL, "AUDIO_REF_EC_UL2 MUX"},
21628 {"MM_UL3", NULL, "AUDIO_REF_EC_UL3 MUX"},
21629 {"MM_UL4", NULL, "AUDIO_REF_EC_UL4 MUX"},
21630 {"MM_UL5", NULL, "AUDIO_REF_EC_UL5 MUX"},
21631 {"MM_UL6", NULL, "AUDIO_REF_EC_UL6 MUX"},
21632 {"MM_UL8", NULL, "AUDIO_REF_EC_UL8 MUX"},
21633 {"MM_UL9", NULL, "AUDIO_REF_EC_UL9 MUX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021634 {"MM_UL10", NULL, "AUDIO_REF_EC_UL10 MUX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021635 {"MM_UL16", NULL, "AUDIO_REF_EC_UL16 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021636 {"MM_UL17", NULL, "AUDIO_REF_EC_UL17 MUX"},
21637 {"MM_UL18", NULL, "AUDIO_REF_EC_UL18 MUX"},
21638 {"MM_UL19", NULL, "AUDIO_REF_EC_UL19 MUX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021639 {"MM_UL28", NULL, "AUDIO_REF_EC_UL28 MUX"},
21640 {"MM_UL29", NULL, "AUDIO_REF_EC_UL29 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021641
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021642 {"VoiceMMode1_Tx Mixer", "PRI_TX_MMode1", "PRI_I2S_TX"},
21643 {"VoiceMMode1_Tx Mixer", "PRI_MI2S_TX_MMode1", "PRI_MI2S_TX"},
21644 {"VoiceMMode1_Tx Mixer", "MI2S_TX_MMode1", "MI2S_TX"},
21645 {"VoiceMMode1_Tx Mixer", "TERT_MI2S_TX_MMode1", "TERT_MI2S_TX"},
21646 {"VoiceMMode1_Tx Mixer", "INT3_MI2S_TX_MMode1", "INT3_MI2S_TX"},
21647 {"VoiceMMode1_Tx Mixer", "SLIM_0_TX_MMode1", "SLIMBUS_0_TX"},
21648 {"VoiceMMode1_Tx Mixer", "SLIM_7_TX_MMode1", "SLIMBUS_7_TX"},
21649 {"VoiceMMode1_Tx Mixer", "SLIM_8_TX_MMode1", "SLIMBUS_8_TX"},
21650 {"VoiceMMode1_Tx Mixer", "USB_AUDIO_TX_MMode1", "USB_AUDIO_TX"},
21651 {"VoiceMMode1_Tx Mixer", "INT_BT_SCO_TX_MMode1", "INT_BT_SCO_TX"},
21652 {"VoiceMMode1_Tx Mixer", "AFE_PCM_TX_MMode1", "PCM_TX"},
21653 {"VoiceMMode1_Tx Mixer", "AUX_PCM_TX_MMode1", "AUX_PCM_TX"},
21654 {"VoiceMMode1_Tx Mixer", "SEC_AUX_PCM_TX_MMode1", "SEC_AUX_PCM_TX"},
21655 {"VoiceMMode1_Tx Mixer", "TERT_AUX_PCM_TX_MMode1", "TERT_AUX_PCM_TX"},
21656 {"VoiceMMode1_Tx Mixer", "QUAT_AUX_PCM_TX_MMode1", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021657 {"VoiceMMode1_Tx Mixer", "QUIN_AUX_PCM_TX_MMode1", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021658 {"VoiceMMode1_Tx Mixer", "QUAT_TDM_TX_0_MMode1", "QUAT_TDM_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053021659 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_0_MMode1", "TX_CDC_DMA_TX_0"},
21660 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_1_MMode1", "TX_CDC_DMA_TX_1"},
21661 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_2_MMode1", "TX_CDC_DMA_TX_2"},
21662 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_3_MMode1", "TX_CDC_DMA_TX_3"},
21663 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_4_MMode1", "TX_CDC_DMA_TX_4"},
21664 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_5_MMode1", "TX_CDC_DMA_TX_5"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021665 {"VOICEMMODE1_UL", NULL, "VoiceMMode1_Tx Mixer"},
21666
21667 {"VoiceMMode2_Tx Mixer", "PRI_TX_MMode2", "PRI_I2S_TX"},
21668 {"VoiceMMode2_Tx Mixer", "PRI_MI2S_TX_MMode2", "PRI_MI2S_TX"},
21669 {"VoiceMMode2_Tx Mixer", "MI2S_TX_MMode2", "MI2S_TX"},
21670 {"VoiceMMode2_Tx Mixer", "TERT_MI2S_TX_MMode2", "TERT_MI2S_TX"},
21671 {"VoiceMMode2_Tx Mixer", "INT3_MI2S_TX_MMode2", "INT3_MI2S_TX"},
21672 {"VoiceMMode2_Tx Mixer", "SLIM_0_TX_MMode2", "SLIMBUS_0_TX"},
21673 {"VoiceMMode2_Tx Mixer", "SLIM_7_TX_MMode2", "SLIMBUS_7_TX"},
21674 {"VoiceMMode2_Tx Mixer", "SLIM_8_TX_MMode2", "SLIMBUS_8_TX"},
21675 {"VoiceMMode2_Tx Mixer", "USB_AUDIO_TX_MMode2", "USB_AUDIO_TX"},
21676 {"VoiceMMode2_Tx Mixer", "INT_BT_SCO_TX_MMode2", "INT_BT_SCO_TX"},
21677 {"VoiceMMode2_Tx Mixer", "AFE_PCM_TX_MMode2", "PCM_TX"},
21678 {"VoiceMMode2_Tx Mixer", "AUX_PCM_TX_MMode2", "AUX_PCM_TX"},
21679 {"VoiceMMode2_Tx Mixer", "SEC_AUX_PCM_TX_MMode2", "SEC_AUX_PCM_TX"},
21680 {"VoiceMMode2_Tx Mixer", "TERT_AUX_PCM_TX_MMode2", "TERT_AUX_PCM_TX"},
21681 {"VoiceMMode2_Tx Mixer", "QUAT_AUX_PCM_TX_MMode2", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021682 {"VoiceMMode2_Tx Mixer", "QUIN_AUX_PCM_TX_MMode2", "QUIN_AUX_PCM_TX"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053021683 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_0_MMode2", "TX_CDC_DMA_TX_0"},
21684 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_1_MMode2", "TX_CDC_DMA_TX_1"},
21685 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_2_MMode2", "TX_CDC_DMA_TX_2"},
21686 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_3_MMode2", "TX_CDC_DMA_TX_3"},
21687 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_4_MMode2", "TX_CDC_DMA_TX_4"},
21688 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_5_MMode2", "TX_CDC_DMA_TX_5"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021689 {"VOICEMMODE2_UL", NULL, "VoiceMMode2_Tx Mixer"},
21690
21691 {"Voip_Tx Mixer", "PRI_TX_Voip", "PRI_I2S_TX"},
21692 {"Voip_Tx Mixer", "MI2S_TX_Voip", "MI2S_TX"},
21693 {"Voip_Tx Mixer", "TERT_MI2S_TX_Voip", "TERT_MI2S_TX"},
21694 {"Voip_Tx Mixer", "INT3_MI2S_TX_Voip", "INT3_MI2S_TX"},
21695 {"Voip_Tx Mixer", "SLIM_0_TX_Voip", "SLIMBUS_0_TX"},
21696 {"Voip_Tx Mixer", "SLIM_7_TX_Voip", "SLIMBUS_7_TX"},
21697 {"Voip_Tx Mixer", "SLIM_8_TX_Voip", "SLIMBUS_8_TX"},
21698 {"Voip_Tx Mixer", "USB_AUDIO_TX_Voip", "USB_AUDIO_TX"},
21699 {"Voip_Tx Mixer", "INTERNAL_BT_SCO_TX_Voip", "INT_BT_SCO_TX"},
21700 {"Voip_Tx Mixer", "AFE_PCM_TX_Voip", "PCM_TX"},
21701 {"Voip_Tx Mixer", "AUX_PCM_TX_Voip", "AUX_PCM_TX"},
21702 {"Voip_Tx Mixer", "SEC_AUX_PCM_TX_Voip", "SEC_AUX_PCM_TX"},
21703 {"Voip_Tx Mixer", "TERT_AUX_PCM_TX_Voip", "TERT_AUX_PCM_TX"},
21704 {"Voip_Tx Mixer", "QUAT_AUX_PCM_TX_Voip", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021705 {"Voip_Tx Mixer", "QUIN_AUX_PCM_TX_Voip", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021706 {"Voip_Tx Mixer", "PRI_MI2S_TX_Voip", "PRI_MI2S_TX"},
21707 {"VOIP_UL", NULL, "Voip_Tx Mixer"},
21708
21709 {"SLIMBUS_DL_HL", "Switch", "SLIM0_DL_HL"},
21710 {"SLIMBUS_0_RX", NULL, "SLIMBUS_DL_HL"},
21711 {"SLIMBUS1_DL_HL", "Switch", "SLIM1_DL_HL"},
21712 {"SLIMBUS_1_RX", NULL, "SLIMBUS1_DL_HL"},
21713 {"SLIMBUS3_DL_HL", "Switch", "SLIM3_DL_HL"},
21714 {"SLIMBUS_3_RX", NULL, "SLIMBUS3_DL_HL"},
21715 {"SLIMBUS4_DL_HL", "Switch", "SLIM4_DL_HL"},
21716 {"SLIMBUS_4_RX", NULL, "SLIMBUS4_DL_HL"},
21717 {"SLIMBUS6_DL_HL", "Switch", "SLIM0_DL_HL"},
21718 {"SLIMBUS_6_RX", NULL, "SLIMBUS6_DL_HL"},
21719 {"SLIM0_UL_HL", NULL, "SLIMBUS_0_TX"},
21720 {"SLIM1_UL_HL", NULL, "SLIMBUS_1_TX"},
21721 {"SLIM3_UL_HL", NULL, "SLIMBUS_3_TX"},
21722 {"SLIM4_UL_HL", NULL, "SLIMBUS_4_TX"},
21723 {"SLIM8_UL_HL", NULL, "SLIMBUS_8_TX"},
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053021724 {"WSA_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
21725 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_DL_HL"},
21726 {"CDC_DMA_UL_HL", NULL, "VA_CDC_DMA_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053021727 {"RX_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
21728 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_DL_HL"},
21729 {"TX3_CDC_DMA_UL_HL", NULL, "TX_CDC_DMA_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021730 {"LSM1 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21731 {"LSM1 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21732 {"LSM1 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21733 {"LSM1 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21734 {"LSM1 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21735 {"LSM1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21736 {"LSM1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21737 {"LSM1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021738 {"LSM1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21739 {"LSM1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021740 {"LSM1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021741 {"LSM1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021742 {"LSM1_UL_HL", NULL, "LSM1 Mixer"},
21743
21744 {"LSM2 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21745 {"LSM2 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21746 {"LSM2 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21747 {"LSM2 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21748 {"LSM2 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21749 {"LSM2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21750 {"LSM2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21751 {"LSM2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021752 {"LSM2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21753 {"LSM2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021754 {"LSM2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021755 {"LSM2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021756 {"LSM2_UL_HL", NULL, "LSM2 Mixer"},
21757
21758
21759 {"LSM3 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21760 {"LSM3 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21761 {"LSM3 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21762 {"LSM3 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21763 {"LSM3 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21764 {"LSM3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21765 {"LSM3 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21766 {"LSM3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021767 {"LSM3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21768 {"LSM3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021769 {"LSM3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021770 {"LSM3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021771 {"LSM3_UL_HL", NULL, "LSM3 Mixer"},
21772
21773
21774 {"LSM4 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21775 {"LSM4 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21776 {"LSM4 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21777 {"LSM4 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21778 {"LSM4 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21779 {"LSM4 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21780 {"LSM4 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21781 {"LSM4 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021782 {"LSM4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21783 {"LSM4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021784 {"LSM4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021785 {"LSM4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021786 {"LSM4_UL_HL", NULL, "LSM4 Mixer"},
21787
21788 {"LSM5 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21789 {"LSM5 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21790 {"LSM5 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21791 {"LSM5 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21792 {"LSM5 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21793 {"LSM5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21794 {"LSM5 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21795 {"LSM5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021796 {"LSM5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21797 {"LSM5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021798 {"LSM5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021799 {"LSM5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021800 {"LSM5_UL_HL", NULL, "LSM5 Mixer"},
21801
21802 {"LSM6 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21803 {"LSM6 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21804 {"LSM6 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21805 {"LSM6 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21806 {"LSM6 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21807 {"LSM6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021808 {"LSM6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21809 {"LSM6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021810 {"LSM6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021811 {"LSM6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021812 {"LSM6_UL_HL", NULL, "LSM6 Mixer"},
21813
21814 {"LSM7 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21815 {"LSM7 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21816 {"LSM7 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21817 {"LSM7 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21818 {"LSM7 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21819 {"LSM7 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021820 {"LSM7 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21821 {"LSM7 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021822 {"LSM7 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021823 {"LSM7 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021824 {"LSM7_UL_HL", NULL, "LSM7 Mixer"},
21825
21826 {"LSM8 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21827 {"LSM8 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21828 {"LSM8 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21829 {"LSM8 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21830 {"LSM8 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21831 {"LSM8 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021832 {"LSM8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21833 {"LSM8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021834 {"LSM8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021835 {"LSM8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021836 {"LSM8_UL_HL", NULL, "LSM8 Mixer"},
21837
21838
21839 {"CPE_LSM_UL_HL", NULL, "BE_IN"},
21840 {"QCHAT_Tx Mixer", "PRI_TX_QCHAT", "PRI_I2S_TX"},
21841 {"QCHAT_Tx Mixer", "SLIM_0_TX_QCHAT", "SLIMBUS_0_TX"},
21842 {"QCHAT_Tx Mixer", "SLIM_7_TX_QCHAT", "SLIMBUS_7_TX"},
21843 {"QCHAT_Tx Mixer", "SLIM_8_TX_QCHAT", "SLIMBUS_8_TX"},
21844 {"QCHAT_Tx Mixer", "INTERNAL_BT_SCO_TX_QCHAT", "INT_BT_SCO_TX"},
21845 {"QCHAT_Tx Mixer", "AFE_PCM_TX_QCHAT", "PCM_TX"},
21846 {"QCHAT_Tx Mixer", "AUX_PCM_TX_QCHAT", "AUX_PCM_TX"},
21847 {"QCHAT_Tx Mixer", "SEC_AUX_PCM_TX_QCHAT", "SEC_AUX_PCM_TX"},
21848 {"QCHAT_Tx Mixer", "TERT_AUX_PCM_TX_QCHAT", "TERT_AUX_PCM_TX"},
21849 {"QCHAT_Tx Mixer", "QUAT_AUX_PCM_TX_QCHAT", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021850 {"QCHAT_Tx Mixer", "QUIN_AUX_PCM_TX_QCHAT", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021851 {"QCHAT_Tx Mixer", "MI2S_TX_QCHAT", "MI2S_TX"},
21852 {"QCHAT_Tx Mixer", "PRI_MI2S_TX_QCHAT", "PRI_MI2S_TX"},
21853 {"QCHAT_Tx Mixer", "TERT_MI2S_TX_QCHAT", "TERT_MI2S_TX"},
21854 {"QCHAT_Tx Mixer", "INT3_MI2S_TX_QCHAT", "INT3_MI2S_TX"},
21855 {"QCHAT_Tx Mixer", "USB_AUDIO_TX_QCHAT", "USB_AUDIO_TX"},
21856 {"QCHAT_UL", NULL, "QCHAT_Tx Mixer"},
21857
21858 {"INT_FM_RX", NULL, "INTFM_DL_HL"},
21859 {"INTFM_UL_HL", NULL, "INT_FM_TX"},
21860 {"INTHFP_UL_HL", NULL, "HFP_PRI_AUX_UL_HL"},
21861 {"HFP_PRI_AUX_UL_HL", "Switch", "AUX_PCM_TX"},
21862 {"INTHFP_UL_HL", NULL, "HFP_AUX_UL_HL"},
21863 {"HFP_AUX_UL_HL", "Switch", "SEC_AUX_PCM_TX"},
21864 {"INTHFP_UL_HL", NULL, "HFP_INT_UL_HL"},
21865 {"HFP_INT_UL_HL", "Switch", "INT_BT_SCO_TX"},
21866 {"SLIM7_UL_HL", NULL, "HFP_SLIM7_UL_HL"},
21867 {"HFP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
21868 {"AUX_PCM_RX", NULL, "AUXPCM_DL_HL"},
21869 {"AUX_PCM_RX", NULL, "INTHFP_DL_HL"},
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080021870 {"SLIM7_UL_HL", NULL, "A2DP_SLIM7_UL_HL"},
21871 {"A2DP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080021872 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021873 {"AUXPCM_UL_HL", NULL, "AUX_PCM_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080021874 {"SEC_AUXPCM_UL_HL", NULL, "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021875 {"MI2S_RX", NULL, "MI2S_DL_HL"},
21876 {"MI2S_UL_HL", NULL, "MI2S_TX"},
21877 {"PCM_RX_DL_HL", "Switch", "SLIM0_DL_HL"},
21878 {"PCM_RX", NULL, "PCM_RX_DL_HL"},
21879
21880 /* connect to INT4_MI2S_DL_HL since same pcm_id */
21881 {"INT0_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
21882 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_DL_HL"},
21883 {"INT4_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
21884 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_DL_HL"},
21885 {"PRI_MI2S_RX_DL_HL", "Switch", "PRI_MI2S_DL_HL"},
21886 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_DL_HL"},
21887 {"SEC_MI2S_RX_DL_HL", "Switch", "SEC_MI2S_DL_HL"},
21888 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_DL_HL"},
21889 {"TERT_MI2S_RX_DL_HL", "Switch", "TERT_MI2S_DL_HL"},
21890 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_DL_HL"},
21891
21892 {"QUAT_MI2S_RX_DL_HL", "Switch", "QUAT_MI2S_DL_HL"},
21893 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053021894 {"QUIN_MI2S_RX_DL_HL", "Switch", "QUIN_MI2S_DL_HL"},
21895 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021896 {"MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
21897 {"INT3_MI2S_UL_HL", NULL, "INT3_MI2S_TX"},
21898 {"TERT_MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
21899 {"SEC_I2S_RX", NULL, "SEC_I2S_DL_HL"},
21900 {"PRI_MI2S_UL_HL", NULL, "PRI_MI2S_TX"},
21901 {"SEC_MI2S_UL_HL", NULL, "SEC_MI2S_TX"},
21902 {"SEC_MI2S_RX", NULL, "SEC_MI2S_DL_HL"},
21903 {"PRI_MI2S_RX", NULL, "PRI_MI2S_DL_HL"},
21904 {"TERT_MI2S_RX", NULL, "TERT_MI2S_DL_HL"},
21905 {"QUAT_MI2S_UL_HL", NULL, "QUAT_MI2S_TX"},
21906
21907 {"PRI_TDM_TX_0_UL_HL", NULL, "PRI_TDM_TX_0"},
21908 {"PRI_TDM_TX_1_UL_HL", NULL, "PRI_TDM_TX_1"},
21909 {"PRI_TDM_TX_2_UL_HL", NULL, "PRI_TDM_TX_2"},
21910 {"PRI_TDM_TX_3_UL_HL", NULL, "PRI_TDM_TX_3"},
21911 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_DL_HL"},
21912 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_DL_HL"},
21913 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_DL_HL"},
21914 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_DL_HL"},
21915 {"SEC_TDM_TX_0_UL_HL", NULL, "SEC_TDM_TX_0"},
21916 {"SEC_TDM_TX_1_UL_HL", NULL, "SEC_TDM_TX_1"},
21917 {"SEC_TDM_TX_2_UL_HL", NULL, "SEC_TDM_TX_2"},
21918 {"SEC_TDM_TX_3_UL_HL", NULL, "SEC_TDM_TX_3"},
21919 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0_DL_HL"},
21920 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1_DL_HL"},
21921 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2_DL_HL"},
21922 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3_DL_HL"},
21923 {"TERT_TDM_TX_0_UL_HL", NULL, "TERT_TDM_TX_0"},
21924 {"TERT_TDM_TX_1_UL_HL", NULL, "TERT_TDM_TX_1"},
21925 {"TERT_TDM_TX_2_UL_HL", NULL, "TERT_TDM_TX_2"},
21926 {"TERT_TDM_TX_3_UL_HL", NULL, "TERT_TDM_TX_3"},
21927 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0_DL_HL"},
21928 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1_DL_HL"},
21929 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2_DL_HL"},
21930 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3_DL_HL"},
21931 {"QUAT_TDM_TX_0_UL_HL", NULL, "QUAT_TDM_TX_0"},
21932 {"QUAT_TDM_TX_1_UL_HL", NULL, "QUAT_TDM_TX_1"},
21933 {"QUAT_TDM_TX_2_UL_HL", NULL, "QUAT_TDM_TX_2"},
21934 {"QUAT_TDM_TX_3_UL_HL", NULL, "QUAT_TDM_TX_3"},
21935 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0_DL_HL"},
21936 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1_DL_HL"},
21937 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_DL_HL"},
21938 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053021939 {"QUIN_TDM_TX_0_UL_HL", NULL, "QUIN_TDM_TX_0"},
21940 {"QUIN_TDM_TX_1_UL_HL", NULL, "QUIN_TDM_TX_1"},
21941 {"QUIN_TDM_TX_2_UL_HL", NULL, "QUIN_TDM_TX_2"},
21942 {"QUIN_TDM_TX_3_UL_HL", NULL, "QUIN_TDM_TX_3"},
21943 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0_DL_HL"},
21944 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1_DL_HL"},
21945 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2_DL_HL"},
21946 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021947
21948 {"PRI_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21949 {"PRI_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21950 {"PRI_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21951 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21952 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21953 {"PRI_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21954 {"PRI_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21955 {"PRI_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21956 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21957 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21958 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21959 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21960 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21961 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21962 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21963 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021964 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21965 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21966 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21967 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021968 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Port Mixer"},
21969
21970 {"PRI_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21971 {"PRI_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21972 {"PRI_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21973 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21974 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21975 {"PRI_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21976 {"PRI_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21977 {"PRI_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21978 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21979 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21980 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21981 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21982 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21983 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21984 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21985 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021986 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21987 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21988 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21989 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021990 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Port Mixer"},
21991
21992 {"PRI_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21993 {"PRI_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21994 {"PRI_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21995 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21996 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21997 {"PRI_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21998 {"PRI_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21999 {"PRI_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22000 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22001 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22002 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22003 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22004 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22005 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22006 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22007 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022008 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22009 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22010 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22011 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022012 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Port Mixer"},
22013
22014 {"PRI_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22015 {"PRI_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22016 {"PRI_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22017 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22018 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22019 {"PRI_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22020 {"PRI_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22021 {"PRI_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22022 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22023 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22024 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22025 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22026 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22027 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22028 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22029 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022030 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22031 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22032 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22033 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022034 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Port Mixer"},
22035
22036 {"SEC_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22037 {"SEC_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22038 {"SEC_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22039 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22040 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22041 {"SEC_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22042 {"SEC_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22043 {"SEC_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22044 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22045 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22046 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22047 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22048 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22049 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22050 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22051 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022052 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22053 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22054 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22055 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022056 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Port Mixer"},
22057
22058 {"SEC_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22059 {"SEC_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22060 {"SEC_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22061 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22062 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22063 {"SEC_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22064 {"SEC_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22065 {"SEC_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22066 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22067 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22068 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22069 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22070 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22071 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22072 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22073 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022074 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22075 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22076 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22077 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022078 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Port Mixer"},
22079
22080 {"SEC_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22081 {"SEC_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22082 {"SEC_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22083 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22084 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22085 {"SEC_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22086 {"SEC_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22087 {"SEC_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22088 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22089 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22090 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22091 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22092 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22093 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22094 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22095 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022096 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22097 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22098 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22099 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022100 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Port Mixer"},
22101
22102 {"SEC_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22103 {"SEC_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22104 {"SEC_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22105 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22106 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22107 {"SEC_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22108 {"SEC_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22109 {"SEC_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22110 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22111 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22112 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22113 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22114 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22115 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22116 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22117 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022118 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22119 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22120 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22121 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022122 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Port Mixer"},
22123
22124 {"TERT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22125 {"TERT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22126 {"TERT_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22127 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22128 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22129 {"TERT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22130 {"TERT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22131 {"TERT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22132 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22133 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22134 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22135 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22136 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22137 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22138 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22139 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022140 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22141 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22142 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22143 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022144 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Port Mixer"},
22145
22146 {"TERT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22147 {"TERT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22148 {"TERT_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22149 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22150 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22151 {"TERT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22152 {"TERT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22153 {"TERT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22154 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22155 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22156 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22157 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22158 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22159 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22160 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22161 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022162 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22163 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22164 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22165 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022166 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Port Mixer"},
22167
22168 {"TERT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22169 {"TERT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22170 {"TERT_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22171 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22172 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22173 {"TERT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22174 {"TERT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22175 {"TERT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22176 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22177 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22178 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22179 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22180 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22181 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22182 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22183 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022184 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22185 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22186 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22187 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022188 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Port Mixer"},
22189
22190 {"TERT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22191 {"TERT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22192 {"TERT_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22193 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22194 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22195 {"TERT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22196 {"TERT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22197 {"TERT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22198 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22199 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22200 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22201 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22202 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22203 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22204 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22205 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022206 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22207 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22208 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22209 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022210 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Port Mixer"},
22211
22212 {"QUAT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22213 {"QUAT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22214 {"QUAT_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22215 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22216 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22217 {"QUAT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22218 {"QUAT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22219 {"QUAT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22220 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22221 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22222 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22223 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22224 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22225 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22226 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22227 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022228 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22229 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22230 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22231 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022232 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Port Mixer"},
22233
22234 {"QUAT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22235 {"QUAT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22236 {"QUAT_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22237 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22238 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22239 {"QUAT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22240 {"QUAT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22241 {"QUAT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22242 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22243 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22244 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22245 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22246 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22247 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22248 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22249 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022250 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22251 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22252 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22253 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022254 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Port Mixer"},
22255
22256 {"QUAT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22257 {"QUAT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22258 {"QUAT_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22259 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22260 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22261 {"QUAT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22262 {"QUAT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22263 {"QUAT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22264 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22265 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22266 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22267 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22268 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22269 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22270 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22271 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022272 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22273 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22274 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22275 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022276 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Port Mixer"},
22277
22278 {"QUAT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22279 {"QUAT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22280 {"QUAT_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22281 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22282 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22283 {"QUAT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22284 {"QUAT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22285 {"QUAT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22286 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22287 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22288 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22289 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22290 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22291 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22292 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22293 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022294 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22295 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22296 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22297 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022298 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Port Mixer"},
22299
Rohit Kumara5077932017-09-10 22:05:05 +053022300 {"QUIN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22301 {"QUIN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22302 {"QUIN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22303 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22304 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22305 {"QUIN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22306 {"QUIN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22307 {"QUIN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22308 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22309 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22310 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22311 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22312 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22313 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22314 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22315 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
22316 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22317 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22318 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22319 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053022320 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053022321
22322 {"QUIN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22323 {"QUIN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22324 {"QUIN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22325 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22326 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22327 {"QUIN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22328 {"QUIN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22329 {"QUIN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22330 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22331 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22332 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22333 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22334 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22335 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22336 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22337 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
22338 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22339 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22340 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22341 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053022342 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053022343
22344 {"QUIN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22345 {"QUIN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22346 {"QUIN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22347 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22348 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22349 {"QUIN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22350 {"QUIN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22351 {"QUIN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22352 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22353 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22354 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22355 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22356 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22357 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22358 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22359 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
22360 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22361 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22362 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22363 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053022364 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053022365
22366 {"QUIN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22367 {"QUIN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22368 {"QUIN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22369 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22370 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22371 {"QUIN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22372 {"QUIN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22373 {"QUIN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22374 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22375 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22376 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22377 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22378 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22379 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22380 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22381 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
22382 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22383 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22384 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22385 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053022386 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053022387
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022388 {"INT0_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22389 {"INT0_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22390 {"INT0_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22391 {"INT0_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022392 {"INT0_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022393 {"INT0_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
22394 {"INT0_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22395 {"INT0_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22396 {"INT0_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053022397 {"INT0_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022398 {"INT0_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22399 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Port Mixer"},
22400
22401 {"INT4_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22402 {"INT4_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22403 {"INT4_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22404 {"INT4_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022405 {"INT4_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022406 {"INT4_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
22407 {"INT4_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22408 {"INT4_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053022409 {"INT4_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022410 {"INT4_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22411 {"INT4_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22412 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Port Mixer"},
22413
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053022414 {"WSA_CDC_DMA_RX_0 Port Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22415 {"WSA_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
22416 {"RX_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080022417 {"WSA_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22418 {"RX_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22419
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053022420
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022421 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22422 {"SLIMBUS_0_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22423 {"SLIMBUS_0_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22424 {"SLIMBUS_0_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22425 {"SLIMBUS_0_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053022426 {"SLIMBUS_0_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022427 {"SLIMBUS_0_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22428 {"SLIMBUS_0_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22429 {"SLIMBUS_0_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
22430 {"SLIMBUS_0_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022431 {"SLIMBUS_0_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022432 {"SLIMBUS_0_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22433 {"SLIMBUS_0_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22434 {"SLIMBUS_0_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22435 {"SLIMBUS_0_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22436 {"SLIMBUS_0_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022437 {"SLIMBUS_0_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022438 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22439 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Port Mixer"},
22440 {"AFE_PCM_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22441 {"AFE_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22442 {"PCM_RX", NULL, "AFE_PCM_RX Port Mixer"},
22443 {"USB_AUDIO_RX Port Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
22444 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Port Mixer"},
22445 {"USB_DL_HL", "Switch", "USBAUDIO_DL_HL"},
22446 {"USB_AUDIO_RX", NULL, "USB_DL_HL"},
22447 {"USBAUDIO_UL_HL", NULL, "USB_AUDIO_TX"},
22448
22449
22450 {"AUX_PCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22451 {"AUX_PCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22452 {"AUX_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22453 {"AUX_PCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22454 {"AUX_PCM_RX Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022455 {"AUX_PCM_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022456 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Port Mixer"},
22457
22458 {"SEC_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22459 {"SEC_AUXPCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22460 {"SEC_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022461 {"SEC_AUXPCM_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022462 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_RX Port Mixer"},
22463
22464 {"TERT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22465 {"TERT_AUXPCM_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
22466 {"TERT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22467 {"TERT_AUX_PCM_RX", NULL, "TERT_AUXPCM_RX Port Mixer"},
22468
22469 {"QUAT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22470 {"QUAT_AUXPCM_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
22471 {"QUAT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22472 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUXPCM_RX Port Mixer"},
22473
Rohit Kumara5077932017-09-10 22:05:05 +053022474 {"QUIN_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22475 {"QUIN_AUXPCM_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
22476 {"QUIN_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22477 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUXPCM_RX Port Mixer"},
22478
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022479 {"Voice Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
22480 {"Voice Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22481 {"Voice Stub Tx Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22482 {"Voice Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
22483 {"Voice Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22484 {"Voice Stub Tx Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22485 {"Voice Stub Tx Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
22486 {"Voice Stub Tx Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022487 {"Voice Stub Tx Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022488 {"Voice Stub Tx Mixer", "MI2S_TX", "MI2S_TX"},
22489 {"Voice Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22490 {"Voice Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22491 {"Voice Stub Tx Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
22492 {"Voice Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22493 {"Voice Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22494 {"Voice Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
22495 {"Voice Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22496 {"Voice Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22497 {"Voice Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
22498 {"VOICE_STUB_UL", NULL, "Voice Stub Tx Mixer"},
22499
22500 {"VoLTE Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
22501 {"VoLTE Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22502 {"VoLTE Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
22503 {"VoLTE Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22504 {"VoLTE Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22505 {"VoLTE Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
22506 {"VoLTE Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22507 {"VoLTE Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22508 {"VoLTE Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
22509 {"VoLTE Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22510 {"VoLTE Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22511 {"VOLTE_STUB_UL", NULL, "VoLTE Stub Tx Mixer"},
22512
22513 {"Voice2 Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
22514 {"Voice2 Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22515 {"Voice2 Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
22516 {"Voice2 Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22517 {"Voice2 Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22518 {"Voice2 Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
22519 {"Voice2 Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22520 {"Voice2 Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22521 {"Voice2 Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
22522 {"Voice2 Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22523 {"Voice2 Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22524 {"VOICE2_STUB_UL", NULL, "Voice2 Stub Tx Mixer"},
22525
kunleizdf5a00a2017-11-27 15:27:36 +080022526 {"STUB_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22527 {"STUB_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022528 {"STUB_RX", NULL, "STUB_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080022529
22530 {"SLIMBUS_1_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22531 {"SLIMBUS_1_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022532 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080022533
22534 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22535 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022536 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX_Voice Mixer"},
22537
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022538 {"SLIM_7_RX_Voice Mixer", "Voip", "VOIP_DL"},
22539 {"SLIM_7_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022540 {"SLIM_7_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22541 {"SLIM_7_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22542 {"SLIM_7_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22543 {"SLIMBUS_7_RX", NULL, "SLIM_7_RX_Voice Mixer"},
22544
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022545 {"SLIM_8_RX_Voice Mixer", "Voip", "VOIP_DL"},
22546 {"SLIM_8_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022547 {"SLIM_8_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22548 {"SLIM_8_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22549 {"SLIM_8_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22550 {"SLIMBUS_8_RX", NULL, "SLIM_8_RX_Voice Mixer"},
22551
22552 {"SLIMBUS_1_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22553 {"SLIMBUS_1_RX Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22554 {"SLIMBUS_1_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22555 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Port Mixer"},
22556 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22557 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22558 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Port Mixer"},
22559 {"SLIMBUS_3_RX Port Mixer", "INTERNAL_BT_SCO_RX", "INT_BT_SCO_RX"},
22560 {"SLIMBUS_3_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22561 {"SLIMBUS_3_RX Port Mixer", "AFE_PCM_RX", "PCM_RX"},
22562 {"SLIMBUS_3_RX Port Mixer", "AUX_PCM_RX", "AUX_PCM_RX"},
22563 {"SLIMBUS_3_RX Port Mixer", "SLIM_0_RX", "SLIMBUS_0_RX"},
22564 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX Port Mixer"},
22565
22566 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22567 {"SLIMBUS_6_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22568 {"SLIMBUS_6_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22569 {"SLIMBUS_6_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22570 {"SLIMBUS_6_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053022571 {"SLIMBUS_6_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022572 {"SLIMBUS_6_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22573 {"SLIMBUS_6_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22574 {"SLIMBUS_6_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22575 {"SLIMBUS_6_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22576 {"SLIMBUS_6_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22577 {"SLIMBUS_6_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22578 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22579 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Port Mixer"},
22580
22581 {"HDMI_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22582 {"HDMI", NULL, "HDMI_RX Port Mixer"},
22583
22584 {"DISPLAY_PORT_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22585 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX Port Mixer"},
22586
Karthikeyan Mani57550082018-05-03 18:43:58 -070022587 {"DISPLAY_PORT_RX1 Port Mixer", "MI2S_TX", "MI2S_TX"},
22588 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1 Port Mixer"},
22589
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022590 {"SEC_I2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22591 {"SEC_I2S_RX", NULL, "SEC_I2S_RX Port Mixer"},
22592
22593 {"MI2S_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22594 {"MI2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22595 {"MI2S_RX", NULL, "MI2S_RX Port Mixer"},
22596
22597 {"PRI_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22598 {"PRI_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22599 {"PRI_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22600 {"PRI_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022601 {"PRI_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022602 {"PRI_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22603 {"PRI_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22604 {"PRI_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22605 {"PRI_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022606 {"PRI_MI2S_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022607 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Port Mixer"},
22608
22609 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22610 {"SEC_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22611 {"SEC_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22612 {"SEC_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022613 {"SEC_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022614 {"SEC_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22615 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22616 {"SEC_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022617 {"SEC_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022618 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Port Mixer"},
22619
22620 {"TERT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22621 {"TERT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22622 {"TERT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22623 {"TERT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022624 {"TERT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022625 {"TERT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22626 {"TERT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22627 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Port Mixer"},
22628
22629 {"QUAT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22630 {"QUAT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22631 {"QUAT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22632 {"QUAT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022633 {"QUAT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022634 {"QUAT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22635 {"QUAT_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22636 {"QUAT_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22637 {"QUAT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22638 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Port Mixer"},
22639
Rohit Kumara5077932017-09-10 22:05:05 +053022640 {"QUIN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22641 {"QUIN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22642 {"QUIN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22643 {"QUIN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22644 {"QUIN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
22645 {"QUIN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22646 {"QUIN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22647 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Port Mixer"},
22648
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022649 /* Backend Enablement */
22650
22651 {"BE_OUT", NULL, "PRI_I2S_RX"},
22652 {"BE_OUT", NULL, "SEC_I2S_RX"},
22653 {"BE_OUT", NULL, "SLIMBUS_0_RX"},
22654 {"BE_OUT", NULL, "SLIMBUS_1_RX"},
22655 {"BE_OUT", NULL, "SLIMBUS_2_RX"},
22656 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
22657 {"BE_OUT", NULL, "SLIMBUS_4_RX"},
22658 {"BE_OUT", NULL, "SLIMBUS_5_RX"},
22659 {"BE_OUT", NULL, "SLIMBUS_6_RX"},
22660 {"BE_OUT", NULL, "SLIMBUS_7_RX"},
22661 {"BE_OUT", NULL, "SLIMBUS_8_RX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053022662 {"BE_OUT", NULL, "SLIMBUS_9_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022663 {"BE_OUT", NULL, "USB_AUDIO_RX"},
22664 {"BE_OUT", NULL, "HDMI"},
22665 {"BE_OUT", NULL, "DISPLAY_PORT"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070022666 {"BE_OUT", NULL, "DISPLAY_PORT1"},
Ralf Herzc8701f72018-06-20 11:37:35 +020022667 {"BE_OUT", NULL, "PRI_SPDIF_RX"},
22668 {"BE_OUT", NULL, "SEC_SPDIF_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022669 {"BE_OUT", NULL, "MI2S_RX"},
22670 {"BE_OUT", NULL, "QUAT_MI2S_RX"},
22671 {"BE_OUT", NULL, "QUIN_MI2S_RX"},
22672 {"BE_OUT", NULL, "TERT_MI2S_RX"},
22673 {"BE_OUT", NULL, "SEC_MI2S_RX"},
22674 {"BE_OUT", NULL, "SEC_MI2S_RX_SD1"},
22675 {"BE_OUT", NULL, "PRI_MI2S_RX"},
22676 {"BE_OUT", NULL, "INT0_MI2S_RX"},
22677 {"BE_OUT", NULL, "INT4_MI2S_RX"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053022678 {"BE_OUT", NULL, "INT2_MI2S_RX"},
22679 {"BE_OUT", NULL, "INT3_MI2S_RX"},
22680 {"BE_OUT", NULL, "INT5_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022681 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
22682 {"BE_OUT", NULL, "INT_BT_A2DP_RX"},
22683 {"BE_OUT", NULL, "INT_FM_RX"},
22684 {"BE_OUT", NULL, "PCM_RX"},
22685 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
22686 {"BE_OUT", NULL, "AUX_PCM_RX"},
22687 {"BE_OUT", NULL, "SEC_AUX_PCM_RX"},
22688 {"BE_OUT", NULL, "TERT_AUX_PCM_RX"},
22689 {"BE_OUT", NULL, "QUAT_AUX_PCM_RX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022690 {"BE_OUT", NULL, "QUIN_AUX_PCM_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022691 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
22692 {"BE_OUT", NULL, "INT_FM_RX"},
22693 {"BE_OUT", NULL, "PCM_RX"},
22694 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
22695 {"BE_OUT", NULL, "VOICE_PLAYBACK_TX"},
22696 {"BE_OUT", NULL, "VOICE2_PLAYBACK_TX"},
22697 {"BE_OUT", NULL, "PRI_TDM_RX_0"},
22698 {"BE_OUT", NULL, "PRI_TDM_RX_1"},
22699 {"BE_OUT", NULL, "PRI_TDM_RX_2"},
22700 {"BE_OUT", NULL, "PRI_TDM_RX_3"},
22701 {"BE_OUT", NULL, "SEC_TDM_RX_0"},
22702 {"BE_OUT", NULL, "SEC_TDM_RX_1"},
22703 {"BE_OUT", NULL, "SEC_TDM_RX_2"},
22704 {"BE_OUT", NULL, "SEC_TDM_RX_3"},
22705 {"BE_OUT", NULL, "TERT_TDM_RX_0"},
22706 {"BE_OUT", NULL, "TERT_TDM_RX_1"},
22707 {"BE_OUT", NULL, "TERT_TDM_RX_2"},
22708 {"BE_OUT", NULL, "TERT_TDM_RX_3"},
22709 {"BE_OUT", NULL, "TERT_TDM_RX_4"},
22710 {"BE_OUT", NULL, "QUAT_TDM_RX_0"},
22711 {"BE_OUT", NULL, "QUAT_TDM_RX_1"},
22712 {"BE_OUT", NULL, "QUAT_TDM_RX_2"},
22713 {"BE_OUT", NULL, "QUAT_TDM_RX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022714 {"BE_OUT", NULL, "QUIN_TDM_RX_0"},
22715 {"BE_OUT", NULL, "QUIN_TDM_RX_1"},
22716 {"BE_OUT", NULL, "QUIN_TDM_RX_2"},
22717 {"BE_OUT", NULL, "QUIN_TDM_RX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022718 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_0"},
22719 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022720 {"BE_OUT", NULL, "RX_CDC_DMA_RX_0"},
22721 {"BE_OUT", NULL, "RX_CDC_DMA_RX_1"},
22722 {"BE_OUT", NULL, "RX_CDC_DMA_RX_2"},
22723 {"BE_OUT", NULL, "RX_CDC_DMA_RX_3"},
22724 {"BE_OUT", NULL, "RX_CDC_DMA_RX_4"},
22725 {"BE_OUT", NULL, "RX_CDC_DMA_RX_5"},
22726 {"BE_OUT", NULL, "RX_CDC_DMA_RX_6"},
22727 {"BE_OUT", NULL, "RX_CDC_DMA_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022728
22729 {"PRI_I2S_TX", NULL, "BE_IN"},
22730 {"MI2S_TX", NULL, "BE_IN"},
22731 {"QUAT_MI2S_TX", NULL, "BE_IN"},
22732 {"QUIN_MI2S_TX", NULL, "BE_IN"},
22733 {"PRI_MI2S_TX", NULL, "BE_IN"},
22734 {"TERT_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053022735 {"INT0_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022736 {"INT2_MI2S_TX", NULL, "BE_IN"},
22737 {"INT3_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053022738 {"INT4_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022739 {"INT5_MI2S_TX", NULL, "BE_IN"},
22740 {"SEC_MI2S_TX", NULL, "BE_IN"},
22741 {"SENARY_MI2S_TX", NULL, "BE_IN" },
22742 {"SLIMBUS_0_TX", NULL, "BE_IN" },
22743 {"SLIMBUS_1_TX", NULL, "BE_IN" },
22744 {"SLIMBUS_3_TX", NULL, "BE_IN" },
22745 {"SLIMBUS_4_TX", NULL, "BE_IN" },
22746 {"SLIMBUS_5_TX", NULL, "BE_IN" },
22747 {"SLIMBUS_6_TX", NULL, "BE_IN" },
22748 {"SLIMBUS_7_TX", NULL, "BE_IN" },
22749 {"SLIMBUS_8_TX", NULL, "BE_IN" },
Surendar Karka3ef3d812018-09-28 18:52:35 +053022750 {"SLIMBUS_9_TX", NULL, "BE_IN" },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022751 {"USB_AUDIO_TX", NULL, "BE_IN" },
22752 {"INT_BT_SCO_TX", NULL, "BE_IN"},
22753 {"INT_FM_TX", NULL, "BE_IN"},
22754 {"PCM_TX", NULL, "BE_IN"},
22755 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
22756 {"BE_OUT", NULL, "STUB_RX"},
22757 {"STUB_TX", NULL, "BE_IN"},
22758 {"STUB_1_TX", NULL, "BE_IN"},
22759 {"BE_OUT", NULL, "AUX_PCM_RX"},
22760 {"AUX_PCM_TX", NULL, "BE_IN"},
22761 {"SEC_AUX_PCM_TX", NULL, "BE_IN"},
22762 {"TERT_AUX_PCM_TX", NULL, "BE_IN"},
22763 {"QUAT_AUX_PCM_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053022764 {"QUIN_AUX_PCM_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022765 {"INCALL_RECORD_TX", NULL, "BE_IN"},
22766 {"INCALL_RECORD_RX", NULL, "BE_IN"},
22767 {"SLIM0_RX_VI_FB_LCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
22768 {"SLIM0_RX_VI_FB_RCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022769 {"WSA_RX_0_VI_FB_LCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
22770 {"WSA_RX_0_VI_FB_RCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022771 {"PRI_MI2S_RX_VI_FB_MUX", "SENARY_TX", "SENARY_TX"},
22772 {"INT4_MI2S_RX_VI_FB_MONO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
22773 {"INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
22774 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_LCH_MUX"},
22775 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_RCH_MUX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022776 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_LCH_MUX"},
22777 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_RCH_MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022778 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_VI_FB_MUX"},
22779 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_MONO_CH_MUX"},
22780 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_STEREO_CH_MUX"},
22781 {"PRI_TDM_TX_0", NULL, "BE_IN"},
22782 {"PRI_TDM_TX_1", NULL, "BE_IN"},
22783 {"PRI_TDM_TX_2", NULL, "BE_IN"},
22784 {"PRI_TDM_TX_3", NULL, "BE_IN"},
22785 {"SEC_TDM_TX_0", NULL, "BE_IN"},
22786 {"SEC_TDM_TX_1", NULL, "BE_IN"},
22787 {"SEC_TDM_TX_2", NULL, "BE_IN"},
22788 {"SEC_TDM_TX_3", NULL, "BE_IN"},
22789 {"TERT_TDM_TX_0", NULL, "BE_IN"},
22790 {"TERT_TDM_TX_1", NULL, "BE_IN"},
22791 {"TERT_TDM_TX_2", NULL, "BE_IN"},
22792 {"TERT_TDM_TX_3", NULL, "BE_IN"},
22793 {"QUAT_TDM_TX_0", NULL, "BE_IN"},
22794 {"QUAT_TDM_TX_1", NULL, "BE_IN"},
22795 {"QUAT_TDM_TX_2", NULL, "BE_IN"},
22796 {"QUAT_TDM_TX_3", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053022797 {"QUIN_TDM_TX_0", NULL, "BE_IN"},
22798 {"QUIN_TDM_TX_1", NULL, "BE_IN"},
22799 {"QUIN_TDM_TX_2", NULL, "BE_IN"},
22800 {"QUIN_TDM_TX_3", NULL, "BE_IN"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022801 {"WSA_CDC_DMA_TX_0", NULL, "BE_IN"},
22802 {"WSA_CDC_DMA_TX_1", NULL, "BE_IN"},
22803 {"WSA_CDC_DMA_TX_2", NULL, "BE_IN"},
22804 {"VA_CDC_DMA_TX_0", NULL, "BE_IN"},
22805 {"VA_CDC_DMA_TX_1", NULL, "BE_IN"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022806 {"TX_CDC_DMA_TX_0", NULL, "BE_IN"},
22807 {"TX_CDC_DMA_TX_1", NULL, "BE_IN"},
22808 {"TX_CDC_DMA_TX_2", NULL, "BE_IN"},
22809 {"TX_CDC_DMA_TX_3", NULL, "BE_IN"},
22810 {"TX_CDC_DMA_TX_4", NULL, "BE_IN"},
22811 {"TX_CDC_DMA_TX_5", NULL, "BE_IN"},
Ralf Herzc8701f72018-06-20 11:37:35 +020022812 {"PRI_SPDIF_TX", NULL, "BE_IN"},
22813 {"SEC_SPDIF_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022814};
22815
22816static int msm_pcm_routing_hw_params(struct snd_pcm_substream *substream,
22817 struct snd_pcm_hw_params *params)
22818{
22819 struct snd_soc_pcm_runtime *rtd = substream->private_data;
22820 unsigned int be_id = rtd->dai_link->id;
22821
22822 if (be_id >= MSM_BACKEND_DAI_MAX) {
22823 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
22824 return -EINVAL;
22825 }
22826
22827 mutex_lock(&routing_lock);
22828 msm_bedais[be_id].sample_rate = params_rate(params);
22829 msm_bedais[be_id].channel = params_channels(params);
22830 msm_bedais[be_id].format = params_format(params);
22831 pr_debug("%s: BE Sample Rate (%d) format (%d) BE id %d\n",
22832 __func__, msm_bedais[be_id].sample_rate,
22833 msm_bedais[be_id].format, be_id);
22834 mutex_unlock(&routing_lock);
22835 return 0;
22836}
22837
22838static int msm_pcm_routing_close(struct snd_pcm_substream *substream)
22839{
22840 struct snd_soc_pcm_runtime *rtd = substream->private_data;
22841 unsigned int be_id = rtd->dai_link->id;
22842 int i, session_type, path_type, topology;
22843 struct msm_pcm_routing_bdai_data *bedai;
22844 struct msm_pcm_routing_fdai_data *fdai;
22845
22846 pr_debug("%s: substream->pcm->id:%s\n",
22847 __func__, substream->pcm->id);
22848
22849 if (be_id >= MSM_BACKEND_DAI_MAX) {
22850 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
22851 return -EINVAL;
22852 }
22853
22854 bedai = &msm_bedais[be_id];
22855 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK ?
22856 0 : 1);
22857 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
22858 path_type = ADM_PATH_PLAYBACK;
22859 else
22860 path_type = ADM_PATH_LIVE_REC;
22861
22862 mutex_lock(&routing_lock);
22863 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
22864 if (!is_mm_lsm_fe_id(i))
22865 continue;
22866 fdai = &fe_dai_map[i][session_type];
22867 if (fdai->strm_id != INVALID_SESSION) {
22868 int idx;
22869 int port_id;
22870 unsigned long copp =
22871 session_copp_map[i][session_type][be_id];
22872 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
22873 if (test_bit(idx, &copp))
22874 break;
22875 fdai->be_srate = bedai->sample_rate;
22876 port_id = bedai->port_id;
22877 topology = adm_get_topology_for_port_copp_idx(port_id,
22878 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070022879 msm_routing_unload_topology(topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022880 adm_close(bedai->port_id, fdai->perf_mode, idx);
22881 pr_debug("%s: copp:%ld,idx bit fe:%d, type:%d,be:%d topology=0x%x\n",
22882 __func__, copp, i, session_type, be_id,
22883 topology);
22884 clear_bit(idx,
22885 &session_copp_map[i][session_type][be_id]);
22886 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053022887 (fdai->passthr_mode == LEGACY_PCM))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022888 msm_pcm_routing_deinit_pp(bedai->port_id,
22889 topology);
22890 }
22891 }
22892
22893 bedai->active = 0;
22894 bedai->sample_rate = 0;
22895 bedai->channel = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022896 mutex_unlock(&routing_lock);
22897
22898 return 0;
22899}
22900
22901static int msm_pcm_routing_prepare(struct snd_pcm_substream *substream)
22902{
22903 struct snd_soc_pcm_runtime *rtd = substream->private_data;
22904 unsigned int be_id = rtd->dai_link->id;
22905 int i, path_type, topology;
22906 int session_type = INVALID_SESSION;
22907 struct msm_pcm_routing_bdai_data *bedai;
22908 u32 channels, sample_rate;
22909 uint16_t bits_per_sample = 16, voc_path_type;
22910 struct msm_pcm_routing_fdai_data *fdai;
22911 u32 session_id;
22912 struct media_format_info voc_be_media_format;
22913 bool is_lsm;
22914
22915 pr_debug("%s: substream->pcm->id:%s\n",
22916 __func__, substream->pcm->id);
22917
22918 if (be_id >= MSM_BACKEND_DAI_MAX) {
22919 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
22920 return -EINVAL;
22921 }
22922
22923 bedai = &msm_bedais[be_id];
22924
22925 mutex_lock(&routing_lock);
22926 if (bedai->active == 1)
22927 goto done; /* Ignore prepare if back-end already active */
22928
22929 /* AFE port is not active at this point. However, still
22930 * go ahead setting active flag under the notion that
22931 * QDSP6 is able to handle ADM starting before AFE port
22932 * is started.
22933 */
22934 bedai->active = 1;
22935
22936 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
22937 if (!(is_mm_lsm_fe_id(i) &&
22938 route_check_fe_id_adm_support(i)))
22939 continue;
22940
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053022941 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) ?
22942 SESSION_TYPE_RX : SESSION_TYPE_TX;
22943 fdai = &fe_dai_map[i][session_type];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022944 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053022945 if (fdai->passthr_mode != LEGACY_PCM)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022946 path_type = ADM_PATH_COMPRESSED_RX;
22947 else
22948 path_type = ADM_PATH_PLAYBACK;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022949 } else {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053022950 if ((fdai->passthr_mode != LEGACY_PCM) &&
22951 (fdai->passthr_mode != LISTEN))
Ralf Herzc8701f72018-06-20 11:37:35 +020022952 path_type = ADM_PATH_COMPRESSED_TX;
22953 else
22954 path_type = ADM_PATH_LIVE_REC;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022955 }
22956
22957 is_lsm = (i >= MSM_FRONTEND_DAI_LSM1) &&
22958 (i <= MSM_FRONTEND_DAI_LSM8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022959 if (fdai->strm_id != INVALID_SESSION) {
22960 int app_type, app_type_idx, copp_idx, acdb_dev_id;
22961
22962 if (session_type == SESSION_TYPE_TX &&
22963 fdai->be_srate &&
22964 (fdai->be_srate != bedai->sample_rate)) {
22965 pr_debug("%s: flush strm %d diff BE rates\n",
22966 __func__,
22967 fdai->strm_id);
22968
22969 if (fdai->event_info.event_func)
22970 fdai->event_info.event_func(
22971 MSM_PCM_RT_EVT_BUF_RECFG,
22972 fdai->event_info.priv_data);
22973 fdai->be_srate = 0; /* might not need it */
22974 }
22975 bits_per_sample = msm_routing_get_bit_width(
22976 bedai->format);
22977
22978 app_type =
22979 fe_dai_app_type_cfg[i][session_type][be_id].app_type;
22980 if (app_type && is_lsm) {
22981 app_type_idx =
22982 msm_pcm_routing_get_lsm_app_type_idx(app_type);
22983 sample_rate =
22984 fe_dai_app_type_cfg[i][session_type][be_id]
22985 .sample_rate;
22986 bits_per_sample =
22987 lsm_app_type_cfg[app_type_idx].bit_width;
22988 } else if (app_type) {
22989 app_type_idx =
22990 msm_pcm_routing_get_app_type_idx(app_type);
22991 sample_rate =
22992 fe_dai_app_type_cfg[i][session_type]
22993 [be_id].sample_rate;
22994 bits_per_sample =
22995 app_type_cfg[app_type_idx].bit_width;
22996 } else
22997 sample_rate = bedai->sample_rate;
22998 /*
22999 * check if ADM needs to be configured with different
23000 * channel mapping than backend
23001 */
23002 if (!bedai->adm_override_ch)
23003 channels = bedai->channel;
23004 else
23005 channels = bedai->adm_override_ch;
23006 acdb_dev_id =
23007 fe_dai_app_type_cfg[i][session_type][be_id].acdb_dev_id;
23008 topology = msm_routing_get_adm_topology(i, session_type,
23009 be_id);
Ralf Herzc8701f72018-06-20 11:37:35 +020023010
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023011 if ((fdai->passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
23012 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_GEN)
23013 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_IEC61937))
Ralf Herzc8701f72018-06-20 11:37:35 +020023014 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
23015
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023016 copp_idx = adm_open(bedai->port_id, path_type,
23017 sample_rate, channels, topology,
23018 fdai->perf_mode, bits_per_sample,
23019 app_type, acdb_dev_id);
23020 if ((copp_idx < 0) ||
23021 (copp_idx >= MAX_COPPS_PER_PORT)) {
23022 pr_err("%s: adm open failed\n", __func__);
23023 mutex_unlock(&routing_lock);
23024 return -EINVAL;
23025 }
23026 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
23027 __func__, i, session_type, be_id);
23028 set_bit(copp_idx,
23029 &session_copp_map[i][session_type][be_id]);
23030
23031 if (msm_is_resample_needed(
23032 sample_rate,
23033 bedai->sample_rate))
23034 adm_copp_mfc_cfg(
23035 bedai->port_id, copp_idx,
23036 bedai->sample_rate);
23037
23038 msm_pcm_routing_build_matrix(i, session_type, path_type,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023039 fdai->perf_mode, fdai->passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023040 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023041 (fdai->passthr_mode == LEGACY_PCM))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023042 msm_pcm_routing_cfg_pp(bedai->port_id, copp_idx,
23043 topology, channels);
23044 }
23045 }
23046
23047 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
23048 session_id = msm_pcm_routing_get_voc_sessionid(i);
23049 if (session_id) {
23050 pr_debug("%s voice session_id: 0x%x\n", __func__,
23051 session_id);
23052
23053 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
23054 voc_path_type = RX_PATH;
23055 else
23056 voc_path_type = TX_PATH;
23057
23058 voc_set_route_flag(session_id, voc_path_type, 1);
23059
23060 memset(&voc_be_media_format, 0,
23061 sizeof(struct media_format_info));
23062
23063 voc_be_media_format.port_id = bedai->port_id;
23064 voc_be_media_format.num_channels = bedai->channel;
23065 voc_be_media_format.sample_rate = bedai->sample_rate;
23066 voc_be_media_format.bits_per_sample = bedai->format;
23067 /* Defaulting this to 1 for voice call usecases */
23068 voc_be_media_format.channel_mapping[0] = 1;
23069
23070 voc_set_device_config(session_id, voc_path_type,
23071 &voc_be_media_format);
23072
23073 if (voc_get_route_flag(session_id, RX_PATH) &&
23074 voc_get_route_flag(session_id, TX_PATH))
23075 voc_enable_device(session_id);
23076 }
23077 }
23078
23079 /* Check if backend is an external ec ref port and set as needed */
23080 if (unlikely(bedai->port_id == voc_get_ext_ec_ref_port_id())) {
23081
23082 memset(&voc_be_media_format, 0,
23083 sizeof(struct media_format_info));
23084
23085 /* Get format info for ec ref port from msm_bedais[] */
23086 voc_be_media_format.port_id = bedai->port_id;
23087 voc_be_media_format.num_channels = bedai->channel;
23088 voc_be_media_format.bits_per_sample = bedai->format;
23089 voc_be_media_format.sample_rate = bedai->sample_rate;
23090 /* Defaulting this to 1 for voice call usecases */
23091 voc_be_media_format.channel_mapping[0] = 1;
23092 voc_set_ext_ec_ref_media_fmt_info(&voc_be_media_format);
23093 pr_debug("%s: EC Ref media format info set to port_id=%d, num_channels=%d, bits_per_sample=%d, sample_rate=%d\n",
23094 __func__, voc_be_media_format.port_id,
23095 voc_be_media_format.num_channels,
23096 voc_be_media_format.bits_per_sample,
23097 voc_be_media_format.sample_rate);
23098 }
23099
23100done:
23101 mutex_unlock(&routing_lock);
23102
23103 return 0;
23104}
23105
23106static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
23107 int fe_id)
23108{
23109 int index, topo_id, be_idx;
23110 unsigned long pp_config = 0;
23111 bool mute_on;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023112 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023113 bool compr_passthr_mode = true;
23114
23115 pr_debug("%s: port_id %d, copp_idx %d\n", __func__, port_id, copp_idx);
23116
23117 if (port_id != HDMI_RX && port_id != DISPLAY_PORT_RX) {
23118 pr_err("%s: Device pp params on invalid port %d\n",
23119 __func__, port_id);
23120 return -EINVAL;
23121 }
23122
23123 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
23124 if (port_id == msm_bedais[be_idx].port_id)
23125 break;
23126 }
23127
23128 if (be_idx >= MSM_BACKEND_DAI_MAX) {
23129 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
23130 return -EINVAL;
23131 }
23132
23133 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
23134 if (msm_bedais_pp_params[index].port_id == port_id)
23135 break;
23136 }
23137 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
23138 pr_err("%s: Invalid backend pp params index %d\n",
23139 __func__, index);
23140 return -EINVAL;
23141 }
23142
23143 topo_id = adm_get_topology_for_port_copp_idx(port_id, copp_idx);
23144 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY) {
23145 pr_err("%s: Invalid passthrough topology 0x%x\n",
23146 __func__, topo_id);
23147 return -EINVAL;
23148 }
23149
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023150 session_type =
23151 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
23152 SESSION_TYPE_RX : SESSION_TYPE_TX;
23153
23154 if ((fe_dai_map[fe_id][session_type].passthr_mode == LEGACY_PCM) ||
23155 (fe_dai_map[fe_id][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023156 compr_passthr_mode = false;
23157
23158 pp_config = msm_bedais_pp_params[index].pp_params_config;
23159 if (test_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config)) {
23160 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
23161 clear_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config);
23162 mute_on = msm_bedais_pp_params[index].mute_on;
23163 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23164 adm_send_compressed_device_mute(port_id,
23165 copp_idx,
23166 mute_on);
23167 }
23168 if (test_bit(ADM_PP_PARAM_LATENCY_BIT, &pp_config)) {
23169 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
23170 clear_bit(ADM_PP_PARAM_LATENCY_BIT,
23171 &pp_config);
23172 latency = msm_bedais_pp_params[index].latency;
23173 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23174 adm_send_compressed_device_latency(port_id,
23175 copp_idx,
23176 latency);
23177 }
23178 return 0;
23179}
23180
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023181static uint32_t msm_routing_get_topology(size_t data_size, void *data)
23182{
23183 uint32_t topology = NULL_COPP_TOPOLOGY;
23184 void *cal_info = NULL;
23185 uint32_t size = 0;
23186
23187 /* Retrieve cal_info size from cal data*/
23188 size = data_size - sizeof(struct audio_cal_type_basic);
23189 cal_info = kzalloc(size, GFP_KERNEL);
23190
23191 if (!cal_info)
23192 goto done;
23193
23194 memcpy(cal_info,
23195 ((uint8_t *)data + sizeof(struct audio_cal_type_basic)), size);
23196
23197 topology = ((struct audio_cal_info_adm_top *)cal_info)->topology;
23198 kfree(cal_info);
23199 cal_info = NULL;
23200
23201done:
23202 pr_debug("%s: Using topology %d\n", __func__, topology);
23203
23204 return topology;
23205}
23206
23207static void msm_routing_load_topology(size_t data_size, void *data)
23208{
23209 uint32_t topology_id;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053023210 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023211
23212 topology_id = msm_routing_get_topology(data_size, data);
23213 if (topology_id != NULL_COPP_TOPOLOGY)
23214 ret = q6core_load_unload_topo_modules(topology_id,
23215 CORE_LOAD_TOPOLOGY);
23216 if (ret < 0)
23217 pr_debug("%s %d load topology failed\n",
23218 __func__, topology_id);
23219
23220}
23221
23222static void msm_routing_unload_topology(uint32_t topology_id)
23223{
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053023224 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023225
23226 if (topology_id != NULL_COPP_TOPOLOGY)
23227 ret = q6core_load_unload_topo_modules(topology_id,
23228 CORE_UNLOAD_TOPOLOGY);
23229 if (ret < 0)
23230 pr_debug("%s %d unload topology failed\n",
23231 __func__, topology_id);
23232
23233}
23234
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023235static int msm_routing_put_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
23236 struct snd_ctl_elem_value *ucontrol)
23237{
23238 int pp_id = ucontrol->value.integer.value[0];
23239 int port_id = 0;
23240 int index, be_idx, i, topo_id, idx;
23241 bool mute;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023242 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023243 bool compr_passthr_mode = true;
23244
23245 pr_debug("%s: pp_id: 0x%x\n", __func__, pp_id);
23246
23247 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
23248 port_id = msm_bedais[be_idx].port_id;
23249 if (port_id == HDMI_RX || port_id == DISPLAY_PORT_RX)
23250 break;
23251 }
23252
23253 if (be_idx >= MSM_BACKEND_DAI_MAX) {
23254 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
23255 return -EINVAL;
23256 }
23257
23258 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
23259 if (msm_bedais_pp_params[index].port_id == port_id)
23260 break;
23261 }
23262 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
23263 pr_err("%s: Invalid pp params backend index %d\n",
23264 __func__, index);
23265 return -EINVAL;
23266 }
23267
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023268 session_type =
23269 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
23270 SESSION_TYPE_RX : SESSION_TYPE_TX;
23271
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023272 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
23273 MSM_FRONTEND_DAI_MM_SIZE) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023274 if ((fe_dai_map[i][session_type].passthr_mode == LEGACY_PCM) ||
23275 (fe_dai_map[i][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023276 compr_passthr_mode = false;
23277
23278 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
23279 unsigned long copp =
23280 session_copp_map[i]
23281 [SESSION_TYPE_RX][be_idx];
23282 if (!test_bit(idx, &copp))
23283 continue;
23284 topo_id = adm_get_topology_for_port_copp_idx(port_id,
23285 idx);
23286 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY)
23287 continue;
23288 pr_debug("%s: port: 0x%x, copp %ld, be active: %d, passt: %d\n",
23289 __func__, port_id, copp, msm_bedais[be_idx].active,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023290 fe_dai_map[i][session_type].passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023291 switch (pp_id) {
23292 case ADM_PP_PARAM_MUTE_ID:
23293 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
23294 mute = ucontrol->value.integer.value[1] ? true : false;
23295 msm_bedais_pp_params[index].mute_on = mute;
23296 set_bit(ADM_PP_PARAM_MUTE_BIT,
23297 &msm_bedais_pp_params[index].pp_params_config);
23298 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23299 adm_send_compressed_device_mute(port_id,
23300 idx, mute);
23301 break;
23302 case ADM_PP_PARAM_LATENCY_ID:
23303 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
23304 msm_bedais_pp_params[index].latency =
23305 ucontrol->value.integer.value[1];
23306 set_bit(ADM_PP_PARAM_LATENCY_BIT,
23307 &msm_bedais_pp_params[index].pp_params_config);
23308 latency = msm_bedais_pp_params[index].latency =
23309 ucontrol->value.integer.value[1];
23310 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23311 adm_send_compressed_device_latency(port_id,
23312 idx, latency);
23313 break;
23314 default:
23315 pr_info("%s, device pp param %d not supported\n",
23316 __func__, pp_id);
23317 break;
23318 }
23319 }
23320 }
23321 return 0;
23322}
23323
23324static int msm_routing_get_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
23325 struct snd_ctl_elem_value *ucontrol)
23326{
23327 pr_debug("%s:msm_routing_get_device_pp_params_mixer", __func__);
23328 return 0;
23329}
23330
23331static const struct snd_kcontrol_new device_pp_params_mixer_controls[] = {
23332 SOC_SINGLE_MULTI_EXT("Device PP Params", SND_SOC_NOPM, 0, 0xFFFFFFFF,
23333 0, 3, msm_routing_get_device_pp_params_mixer,
23334 msm_routing_put_device_pp_params_mixer),
23335};
23336
23337static int msm_aptx_dec_license_control_get(struct snd_kcontrol *kcontrol,
23338 struct snd_ctl_elem_value *ucontrol)
23339{
23340 ucontrol->value.integer.value[0] =
23341 core_get_license_status(ASM_MEDIA_FMT_APTX);
23342 pr_debug("%s: status %ld\n", __func__,
23343 ucontrol->value.integer.value[0]);
23344 return 0;
23345}
23346
23347static int msm_aptx_dec_license_control_put(struct snd_kcontrol *kcontrol,
23348 struct snd_ctl_elem_value *ucontrol)
23349{
23350 int32_t status = 0;
23351
23352 status = core_set_license(ucontrol->value.integer.value[0],
23353 APTX_CLASSIC_DEC_LICENSE_ID);
23354 pr_debug("%s: status %d\n", __func__, status);
23355 return status;
23356}
23357
23358static const struct snd_kcontrol_new aptx_dec_license_controls[] = {
23359 SOC_SINGLE_EXT("APTX Dec License", SND_SOC_NOPM, 0,
23360 0xFFFF, 0, msm_aptx_dec_license_control_get,
23361 msm_aptx_dec_license_control_put),
23362};
23363
23364static int msm_routing_be_dai_name_table_info(struct snd_kcontrol *kcontrol,
23365 struct snd_ctl_elem_info *uinfo)
23366{
23367 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
23368 uinfo->count = sizeof(be_dai_name_table);
23369 return 0;
23370}
23371
23372static int msm_routing_be_dai_name_table_tlv_get(struct snd_kcontrol *kcontrol,
23373 unsigned int __user *bytes,
23374 unsigned int size)
23375{
23376 int i;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053023377 int ret = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023378
23379 if (size < sizeof(be_dai_name_table)) {
23380 pr_err("%s: invalid size %d requested, returning\n",
23381 __func__, size);
23382 ret = -EINVAL;
23383 goto done;
23384 }
23385
23386 /*
23387 * Fill be_dai_name_table from msm_bedais table to reduce code changes
23388 * needed when adding new backends
23389 */
23390 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
23391 be_dai_name_table[i].be_id = i;
23392 strlcpy(be_dai_name_table[i].be_name,
23393 msm_bedais[i].name,
23394 LPASS_BE_NAME_MAX_LENGTH);
23395 }
23396
23397 ret = copy_to_user(bytes, &be_dai_name_table,
23398 sizeof(be_dai_name_table));
23399 if (ret) {
23400 pr_err("%s: failed to copy be_dai_name_table\n", __func__);
23401 ret = -EFAULT;
23402 }
23403
23404done:
23405 return ret;
23406}
23407
23408static const struct snd_kcontrol_new
23409 msm_routing_be_dai_name_table_mixer_controls[] = {
23410 {
23411 .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |
23412 SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK,
23413 .info = msm_routing_be_dai_name_table_info,
23414 .name = "Backend DAI Name Table",
23415 .tlv.c = snd_soc_bytes_tlv_callback,
23416 .private_value = (unsigned long) &(struct soc_bytes_ext) {
23417 .max = sizeof(be_dai_name_table),
23418 .get = msm_routing_be_dai_name_table_tlv_get,
23419 }
23420 },
23421};
23422
23423static int msm_routing_stereo_channel_reverse_control_get(
23424 struct snd_kcontrol *kcontrol,
23425 struct snd_ctl_elem_value *ucontrol)
23426{
23427 ucontrol->value.integer.value[0] = swap_ch;
23428 pr_debug("%s: Swap channel value: %ld\n", __func__,
23429 ucontrol->value.integer.value[0]);
23430 return 0;
23431}
23432
23433static int msm_routing_stereo_channel_reverse_control_put(
23434 struct snd_kcontrol *kcontrol,
23435 struct snd_ctl_elem_value *ucontrol)
23436{
23437 int i, idx, be_index, port_id;
23438 int ret = 0;
23439 unsigned long copp;
23440
23441 pr_debug("%s Swap channel value:%ld\n", __func__,
23442 ucontrol->value.integer.value[0]);
23443
23444 swap_ch = ucontrol->value.integer.value[0];
23445
23446 mutex_lock(&routing_lock);
23447 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
23448 port_id = msm_bedais[be_index].port_id;
23449 if (!msm_bedais[be_index].active)
23450 continue;
23451
23452 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
23453 MSM_FRONTEND_DAI_MM_SIZE) {
23454 copp = session_copp_map[i][SESSION_TYPE_RX][be_index];
23455 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
23456 if (!test_bit(idx, &copp))
23457 continue;
23458
23459 pr_debug("%s: swap channel control of portid:%d, coppid:%d\n",
23460 __func__, port_id, idx);
23461 ret = adm_swap_speaker_channels(
23462 port_id, idx,
23463 msm_bedais[be_index].sample_rate,
23464 swap_ch);
23465 if (ret) {
23466 pr_err("%s:Swap_channel failed, err=%d\n",
23467 __func__, ret);
23468 goto done;
23469 }
23470 }
23471 }
23472 }
23473done:
23474 mutex_unlock(&routing_lock);
23475 return ret;
23476}
23477
23478static const struct snd_kcontrol_new stereo_channel_reverse_control[] = {
23479 SOC_SINGLE_EXT("Swap channel", SND_SOC_NOPM, 0,
23480 1, 0, msm_routing_stereo_channel_reverse_control_get,
23481 msm_routing_stereo_channel_reverse_control_put),
23482};
23483
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080023484static int msm_routing_instance_id_support_info(struct snd_kcontrol *kcontrol,
23485 struct snd_ctl_elem_info *uinfo)
23486{
23487 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
23488 uinfo->count = 1;
23489 return 0;
23490}
23491
23492static int msm_routing_instance_id_support_put(
23493 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
23494{
23495 bool supported = ucontrol->value.integer.value[0] ? true : false;
23496
23497 q6common_update_instance_id_support(supported);
23498 return 0;
23499}
23500
23501static int msm_routing_instance_id_support_get(
23502 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
23503{
23504 bool supported = false;
23505
23506 supported = q6common_is_instance_id_supported();
23507 ucontrol->value.integer.value[0] = supported ? 1 : 0;
23508
23509 return 0;
23510}
23511
23512static const struct snd_kcontrol_new
23513 msm_routing_feature_support_mixer_controls[] = {
23514 {
23515 .access = SNDRV_CTL_ELEM_ACCESS_READ |
23516 SNDRV_CTL_ELEM_ACCESS_WRITE,
23517 .info = msm_routing_instance_id_support_info,
23518 .name = "Instance ID Support",
23519 .put = msm_routing_instance_id_support_put,
23520 .get = msm_routing_instance_id_support_get,
23521 },
23522};
23523
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023524static const struct snd_pcm_ops msm_routing_pcm_ops = {
23525 .hw_params = msm_pcm_routing_hw_params,
23526 .close = msm_pcm_routing_close,
23527 .prepare = msm_pcm_routing_prepare,
23528};
23529
23530/* Not used but frame seems to require it */
23531static int msm_routing_probe(struct snd_soc_platform *platform)
23532{
23533 snd_soc_dapm_new_controls(&platform->component.dapm, msm_qdsp6_widgets,
23534 ARRAY_SIZE(msm_qdsp6_widgets));
23535 snd_soc_dapm_add_routes(&platform->component.dapm, intercon,
23536 ARRAY_SIZE(intercon));
23537
23538 snd_soc_dapm_new_widgets(platform->component.dapm.card);
23539
23540 snd_soc_add_platform_controls(platform, lsm_controls,
23541 ARRAY_SIZE(lsm_controls));
23542
23543 snd_soc_add_platform_controls(platform, aanc_slim_0_rx_mux,
23544 ARRAY_SIZE(aanc_slim_0_rx_mux));
23545
Sudheer Papothic07b37a2018-05-04 05:56:47 +053023546 snd_soc_add_platform_controls(platform, aanc_noise_level,
23547 ARRAY_SIZE(aanc_noise_level));
23548
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023549 snd_soc_add_platform_controls(platform, msm_voc_session_controls,
23550 ARRAY_SIZE(msm_voc_session_controls));
23551
23552 snd_soc_add_platform_controls(platform, app_type_cfg_controls,
23553 ARRAY_SIZE(app_type_cfg_controls));
23554
23555 snd_soc_add_platform_controls(platform, lsm_app_type_cfg_controls,
23556 ARRAY_SIZE(lsm_app_type_cfg_controls));
23557
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070023558 snd_soc_add_platform_controls(platform, module_cfg_controls,
23559 ARRAY_SIZE(module_cfg_controls));
23560
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023561 snd_soc_add_platform_controls(platform,
23562 stereo_to_custom_stereo_controls,
23563 ARRAY_SIZE(stereo_to_custom_stereo_controls));
23564
23565 snd_soc_add_platform_controls(platform, ec_ref_param_controls,
23566 ARRAY_SIZE(ec_ref_param_controls));
23567
23568 snd_soc_add_platform_controls(platform, channel_mixer_controls,
23569 ARRAY_SIZE(channel_mixer_controls));
23570
23571 msm_qti_pp_add_controls(platform);
23572
23573 msm_dts_srs_tm_add_controls(platform);
23574
23575 msm_dolby_dap_add_controls(platform);
23576
23577 snd_soc_add_platform_controls(platform,
23578 use_ds1_or_ds2_controls,
23579 ARRAY_SIZE(use_ds1_or_ds2_controls));
23580
23581 snd_soc_add_platform_controls(platform,
23582 device_pp_params_mixer_controls,
23583 ARRAY_SIZE(device_pp_params_mixer_controls));
23584
23585 snd_soc_add_platform_controls(platform,
23586 msm_routing_be_dai_name_table_mixer_controls,
23587 ARRAY_SIZE(msm_routing_be_dai_name_table_mixer_controls));
23588
23589 snd_soc_add_platform_controls(platform, msm_source_tracking_controls,
23590 ARRAY_SIZE(msm_source_tracking_controls));
23591 snd_soc_add_platform_controls(platform, adm_channel_config_controls,
23592 ARRAY_SIZE(adm_channel_config_controls));
23593
23594 snd_soc_add_platform_controls(platform, aptx_dec_license_controls,
23595 ARRAY_SIZE(aptx_dec_license_controls));
23596 snd_soc_add_platform_controls(platform, stereo_channel_reverse_control,
23597 ARRAY_SIZE(stereo_channel_reverse_control));
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080023598 snd_soc_add_platform_controls(
23599 platform, msm_routing_feature_support_mixer_controls,
23600 ARRAY_SIZE(msm_routing_feature_support_mixer_controls));
23601
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023602 return 0;
23603}
23604
23605int msm_routing_pcm_new(struct snd_soc_pcm_runtime *runtime)
23606{
23607 return msm_pcm_routing_hwdep_new(runtime, msm_bedais);
23608}
23609
23610void msm_routing_pcm_free(struct snd_pcm *pcm)
23611{
23612 msm_pcm_routing_hwdep_free(pcm);
23613}
23614
23615static struct snd_soc_platform_driver msm_soc_routing_platform = {
23616 .ops = &msm_routing_pcm_ops,
23617 .probe = msm_routing_probe,
23618 .pcm_new = msm_routing_pcm_new,
23619 .pcm_free = msm_routing_pcm_free,
23620};
23621
23622static int msm_routing_pcm_probe(struct platform_device *pdev)
23623{
23624
23625 dev_dbg(&pdev->dev, "dev name %s\n", dev_name(&pdev->dev));
23626 return snd_soc_register_platform(&pdev->dev,
23627 &msm_soc_routing_platform);
23628}
23629
23630static int msm_routing_pcm_remove(struct platform_device *pdev)
23631{
23632 snd_soc_unregister_platform(&pdev->dev);
23633 return 0;
23634}
23635
23636static const struct of_device_id msm_pcm_routing_dt_match[] = {
23637 {.compatible = "qcom,msm-pcm-routing"},
23638 {}
23639};
23640MODULE_DEVICE_TABLE(of, msm_pcm_routing_dt_match);
23641
23642static struct platform_driver msm_routing_pcm_driver = {
23643 .driver = {
23644 .name = "msm-pcm-routing",
23645 .owner = THIS_MODULE,
23646 .of_match_table = msm_pcm_routing_dt_match,
23647 },
23648 .probe = msm_routing_pcm_probe,
23649 .remove = msm_routing_pcm_remove,
23650};
23651
23652int msm_routing_check_backend_enabled(int fedai_id)
23653{
23654 int i;
23655
23656 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
23657 /* bad ID assigned in machine driver */
23658 pr_err("%s: bad MM ID\n", __func__);
23659 return 0;
23660 }
23661 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
23662 if (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))
23663 return msm_bedais[i].active;
23664 }
23665 return 0;
23666}
23667
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023668static int get_cal_type_index(int32_t cal_type)
23669{
23670 int ret = -EINVAL;
23671
23672 switch (cal_type) {
23673 case ADM_TOPOLOGY_CAL_TYPE:
23674 ret = ADM_TOPOLOGY_CAL_TYPE_IDX;
23675 break;
23676 case ADM_LSM_TOPOLOGY_CAL_TYPE:
23677 ret = ADM_LSM_TOPOLOGY_CAL_TYPE_IDX;
23678 break;
23679 default:
23680 pr_err("%s: Invalid cal type %d\n", __func__, cal_type);
23681 }
23682 return ret;
23683}
23684
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023685static int msm_routing_set_cal(int32_t cal_type,
23686 size_t data_size, void *data)
23687{
23688 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023689 int cal_index;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023690 pr_debug("%s\n", __func__);
23691
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023692 cal_index = get_cal_type_index(cal_type);
23693 if (cal_index < 0) {
23694 pr_err("%s: Could not get cal index %d\n",
23695 __func__, cal_index);
23696 ret = -EINVAL;
23697 goto done;
23698 }
23699
23700 ret = cal_utils_set_cal(data_size, data, cal_data[cal_index], 0, NULL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023701 if (ret < 0) {
23702 pr_err("%s: cal_utils_set_cal failed, ret = %d, cal type = %d!\n",
23703 __func__, ret, cal_type);
23704 ret = -EINVAL;
23705 goto done;
23706 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023707 /* Pre-load if it is ADM topology */
23708 if ((cal_index == ADM_TOPOLOGY_CAL_TYPE_IDX) ||
23709 (cal_index == ADM_LSM_TOPOLOGY_CAL_TYPE_IDX)) {
23710 msm_routing_load_topology(data_size, data);
23711 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023712done:
23713 return ret;
23714}
23715
23716static void msm_routing_delete_cal_data(void)
23717{
23718 pr_debug("%s\n", __func__);
23719
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023720 cal_utils_destroy_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023721}
23722
23723static int msm_routing_init_cal_data(void)
23724{
23725 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023726 struct cal_type_info cal_type_info[] = {
23727 {{ADM_TOPOLOGY_CAL_TYPE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023728 {NULL, NULL, NULL,
23729 msm_routing_set_cal, NULL, NULL} },
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023730 {NULL, NULL, cal_utils_match_buf_num} },
23731
23732 {{ADM_LSM_TOPOLOGY_CAL_TYPE,
23733 {NULL, NULL, NULL,
23734 msm_routing_set_cal, NULL, NULL} },
23735 {NULL, NULL, cal_utils_match_buf_num} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023736 };
23737 pr_debug("%s\n", __func__);
23738
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023739 ret = cal_utils_create_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0],
23740 &cal_type_info[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023741 if (ret < 0) {
23742 pr_err("%s: could not create cal type!\n",
23743 __func__);
23744 ret = -EINVAL;
23745 goto err;
23746 }
23747
23748 return ret;
23749err:
23750 msm_routing_delete_cal_data();
23751 return ret;
23752}
23753
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053023754int __init msm_soc_routing_platform_init(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023755{
23756 mutex_init(&routing_lock);
23757 if (msm_routing_init_cal_data())
23758 pr_err("%s: could not init cal data!\n", __func__);
23759
23760 afe_set_routing_callback(
23761 (routing_cb)msm_pcm_get_dev_acdb_id_by_port_id);
23762
23763 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
23764 memset(&last_be_id_configured, 0, sizeof(last_be_id_configured));
23765
23766 return platform_driver_register(&msm_routing_pcm_driver);
23767}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023768
Asish Bhattacharya5faacb32017-12-04 17:23:15 +053023769void msm_soc_routing_platform_exit(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023770{
23771 msm_routing_delete_cal_data();
23772 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
23773 mutex_destroy(&routing_lock);
23774 platform_driver_unregister(&msm_routing_pcm_driver);
23775}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023776
23777MODULE_DESCRIPTION("MSM routing platform driver");
23778MODULE_LICENSE("GPL v2");