blob: d8d9f3eb6f44d070bcfacf472975f0009c1f3c5f [file] [log] [blame]
Meng Wang43bbb872018-12-10 12:32:05 +08001// SPDX-License-Identifier: GPL-2.0-only
Vignesh Kulothungan5c109922018-01-24 17:36:18 -08002/* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303 */
4
5#include <linux/init.h>
6#include <linux/err.h>
7#include <linux/module.h>
8#include <linux/moduleparam.h>
9#include <linux/platform_device.h>
10#include <linux/bitops.h>
11#include <linux/mutex.h>
12#include <linux/of_device.h>
13#include <linux/slab.h>
14#include <sound/core.h>
15#include <sound/soc.h>
16#include <sound/soc-dapm.h>
17#include <sound/pcm.h>
18#include <sound/initval.h>
19#include <sound/control.h>
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020#include <sound/tlv.h>
21#include <sound/asound.h>
22#include <sound/pcm_params.h>
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023#include <sound/hwdep.h>
Laxminath Kasam605b42f2017-08-01 22:02:15 +053024#include <sound/audio_effects.h>
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053025#include <dsp/msm-dts-srs-tm-config.h>
Laxminath Kasam605b42f2017-08-01 22:02:15 +053026#include <dsp/q6voice.h>
27#include <dsp/q6adm-v2.h>
28#include <dsp/q6asm-v2.h>
29#include <dsp/q6afe-v2.h>
30#include <dsp/q6lsm.h>
31#include <dsp/q6core.h>
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080032#include <dsp/q6common.h>
Laxminath Kasam605b42f2017-08-01 22:02:15 +053033#include <dsp/audio_cal_utils.h>
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053034
35#include "msm-pcm-routing-v2.h"
36#include "msm-pcm-routing-devdep.h"
37#include "msm-qti-pp-config.h"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053038#include "msm-dolby-dap-config.h"
39#include "msm-ds2-dap-config.h"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053040
Meng Wangee084a02018-09-04 16:11:58 +080041#define DRV_NAME "msm-pcm-routing-v2"
42
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053043#ifndef CONFIG_DOLBY_DAP
44#undef DOLBY_ADM_COPP_TOPOLOGY_ID
45#define DOLBY_ADM_COPP_TOPOLOGY_ID 0xFFFFFFFE
46#endif
47
48#ifndef CONFIG_DOLBY_DS2
49#undef DS2_ADM_COPP_TOPOLOGY_ID
50#define DS2_ADM_COPP_TOPOLOGY_ID 0xFFFFFFFF
51#endif
52
53static struct mutex routing_lock;
54
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053055static struct cal_type_data *cal_data[MAX_ROUTING_CAL_TYPES];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053056
57static int fm_switch_enable;
58static int hfp_switch_enable;
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080059static int a2dp_switch_enable;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053060static int int0_mi2s_switch_enable;
61static int int4_mi2s_switch_enable;
62static int pri_mi2s_switch_enable;
63static int sec_mi2s_switch_enable;
64static int tert_mi2s_switch_enable;
65static int quat_mi2s_switch_enable;
Rohit Kumara5077932017-09-10 22:05:05 +053066static int quin_mi2s_switch_enable;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053067static int fm_pcmrx_switch_enable;
68static int usb_switch_enable;
69static int lsm_port_index;
70static int slim0_rx_aanc_fb_port;
71static int msm_route_ec_ref_rx;
72static int msm_ec_ref_ch = 4;
73static int msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
74static int msm_ec_ref_sampling_rate = 48000;
75static uint32_t voc_session_id = ALL_SESSION_VSID;
76static int msm_route_ext_ec_ref;
77static bool is_custom_stereo_on;
78static bool is_ds2_on;
79static bool swap_ch;
Sudheer Papothic07b37a2018-05-04 05:56:47 +053080static int aanc_level;
Meng Wangadbca4f2018-10-29 14:30:13 +080081static int num_app_cfg_types;
Surendar Karkae7507512018-07-20 15:46:54 +053082static int msm_ec_ref_port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053083
84#define WEIGHT_0_DB 0x4000
85/* all the FEs which can support channel mixer */
86static struct msm_pcm_channel_mixer channel_mixer[MSM_FRONTEND_DAI_MM_SIZE];
87/* input BE for each FE */
88static int channel_input[MSM_FRONTEND_DAI_MM_SIZE][ADM_MAX_CHANNELS];
89
90enum {
91 MADNONE,
92 MADAUDIO,
93 MADBEACON,
94 MADULTRASOUND,
95 MADSWAUDIO,
96};
97
98#define ADM_LSM_PORT_INDEX 9
99
100#define SLIMBUS_0_TX_TEXT "SLIMBUS_0_TX"
101#define SLIMBUS_1_TX_TEXT "SLIMBUS_1_TX"
102#define SLIMBUS_2_TX_TEXT "SLIMBUS_2_TX"
103#define SLIMBUS_3_TX_TEXT "SLIMBUS_3_TX"
104#define SLIMBUS_4_TX_TEXT "SLIMBUS_4_TX"
105#define SLIMBUS_5_TX_TEXT "SLIMBUS_5_TX"
106#define TERT_MI2S_TX_TEXT "TERT_MI2S_TX"
107#define QUAT_MI2S_TX_TEXT "QUAT_MI2S_TX"
108#define ADM_LSM_TX_TEXT "ADM_LSM_TX"
109#define INT3_MI2S_TX_TEXT "INT3_MI2S_TX"
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +0530110#define VA_CDC_DMA_TX_0_TEXT "VA_CDC_DMA_TX_0"
111#define VA_CDC_DMA_TX_1_TEXT "VA_CDC_DMA_TX_1"
Aditya Bavanarie9454c62018-08-23 23:45:20 +0530112#define TX_CDC_DMA_TX_3_TEXT "TX_CDC_DMA_TX_3"
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +0530113#define QUIN_TDM_TX_TEXT "QUIN_TDM_TX_0"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530114
115#define LSM_FUNCTION_TEXT "LSM Function"
116static const char * const lsm_port_text[] = {
117 "None",
118 SLIMBUS_0_TX_TEXT, SLIMBUS_1_TX_TEXT, SLIMBUS_2_TX_TEXT,
119 SLIMBUS_3_TX_TEXT, SLIMBUS_4_TX_TEXT, SLIMBUS_5_TX_TEXT,
120 TERT_MI2S_TX_TEXT, QUAT_MI2S_TX_TEXT, ADM_LSM_TX_TEXT,
Aditya Bavanarie9454c62018-08-23 23:45:20 +0530121 INT3_MI2S_TX_TEXT, VA_CDC_DMA_TX_0_TEXT, VA_CDC_DMA_TX_1_TEXT,
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +0530122 TX_CDC_DMA_TX_3_TEXT, QUIN_TDM_TX_TEXT
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530123};
124
125struct msm_pcm_route_bdai_pp_params {
126 u16 port_id; /* AFE port ID */
127 unsigned long pp_params_config;
128 bool mute_on;
129 int latency;
130};
131
132static struct msm_pcm_route_bdai_pp_params
133 msm_bedais_pp_params[MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX] = {
134 {HDMI_RX, 0, 0, 0},
135 {DISPLAY_PORT_RX, 0, 0, 0},
136};
137
138/*
139 * The be_dai_name_table is passed to HAL so that it can specify the
140 * BE ID for the BE it wants to enable based on the name. Thus there
141 * is a matching table and structure in HAL that need to be updated
142 * if any changes to these are made.
143 */
144struct msm_pcm_route_bdai_name {
145 unsigned int be_id;
146 char be_name[LPASS_BE_NAME_MAX_LENGTH];
147};
148static struct msm_pcm_route_bdai_name be_dai_name_table[MSM_BACKEND_DAI_MAX];
149
150static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
151 int fe_id);
152
Vikram Panduranga6e55ad82018-03-14 13:56:18 -0700153static void msm_routing_load_topology(size_t data_size, void *data);
154static void msm_routing_unload_topology(uint32_t topology_id);
155
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530156static int msm_routing_get_bit_width(unsigned int format)
157{
158 int bit_width;
159
160 switch (format) {
161 case SNDRV_PCM_FORMAT_S32_LE:
162 bit_width = 32;
163 break;
164 case SNDRV_PCM_FORMAT_S24_LE:
165 case SNDRV_PCM_FORMAT_S24_3LE:
166 bit_width = 24;
167 break;
168 case SNDRV_PCM_FORMAT_S16_LE:
169 default:
170 bit_width = 16;
171 }
172 return bit_width;
173}
174
175static bool msm_is_resample_needed(int input_sr, int output_sr)
176{
177 bool rc = false;
178
179 if (input_sr != output_sr)
180 rc = true;
181
182 pr_debug("perform resampling (%s) for copp rate (%d)afe rate (%d)",
183 (rc ? "oh yes" : "not really"),
184 input_sr, output_sr);
185
186 return rc;
187}
188
189static void msm_pcm_routing_cfg_pp(int port_id, int copp_idx, int topology,
190 int channels)
191{
192 int rc = 0;
193
194 switch (topology) {
195 case SRS_TRUMEDIA_TOPOLOGY_ID:
196 pr_debug("%s: SRS_TRUMEDIA_TOPOLOGY_ID\n", __func__);
197 msm_dts_srs_tm_init(port_id, copp_idx);
198 break;
199 case DS2_ADM_COPP_TOPOLOGY_ID:
200 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY %d\n",
201 __func__, DS2_ADM_COPP_TOPOLOGY_ID);
202 rc = msm_ds2_dap_init(port_id, copp_idx, channels,
203 is_custom_stereo_on);
204 if (rc < 0)
205 pr_err("%s: DS2 topo_id 0x%x, port %d, CS %d rc %d\n",
206 __func__, topology, port_id,
207 is_custom_stereo_on, rc);
208 break;
209 case DOLBY_ADM_COPP_TOPOLOGY_ID:
210 if (is_ds2_on) {
211 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY\n", __func__);
212 rc = msm_ds2_dap_init(port_id, copp_idx, channels,
213 is_custom_stereo_on);
214 if (rc < 0)
215 pr_err("%s:DS2 topo_id 0x%x, port %d, rc %d\n",
216 __func__, topology, port_id, rc);
217 } else {
218 pr_debug("%s: DOLBY_ADM_COPP_TOPOLOGY_ID\n", __func__);
219 rc = msm_dolby_dap_init(port_id, copp_idx, channels,
220 is_custom_stereo_on);
221 if (rc < 0)
222 pr_err("%s: DS1 topo_id 0x%x, port %d, rc %d\n",
223 __func__, topology, port_id, rc);
224 }
225 break;
226 case ADM_CMD_COPP_OPEN_TOPOLOGY_ID_AUDIOSPHERE:
227 pr_debug("%s: TOPOLOGY_ID_AUDIOSPHERE\n", __func__);
228 rc = msm_qti_pp_asphere_init(port_id, copp_idx);
229 if (rc < 0)
230 pr_err("%s: topo_id 0x%x, port %d, copp %d, rc %d\n",
231 __func__, topology, port_id, copp_idx, rc);
232 break;
233 default:
234 /* custom topology specific feature param handlers */
235 break;
236 }
237}
238
239static void msm_pcm_routing_deinit_pp(int port_id, int topology)
240{
241 switch (topology) {
242 case SRS_TRUMEDIA_TOPOLOGY_ID:
243 pr_debug("%s: SRS_TRUMEDIA_TOPOLOGY_ID\n", __func__);
244 msm_dts_srs_tm_deinit(port_id);
245 break;
246 case DS2_ADM_COPP_TOPOLOGY_ID:
247 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY_ID %d\n",
248 __func__, DS2_ADM_COPP_TOPOLOGY_ID);
249 msm_ds2_dap_deinit(port_id);
250 break;
251 case DOLBY_ADM_COPP_TOPOLOGY_ID:
252 if (is_ds2_on) {
253 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY_ID\n", __func__);
254 msm_ds2_dap_deinit(port_id);
255 } else {
256 pr_debug("%s: DOLBY_ADM_COPP_TOPOLOGY_ID\n", __func__);
257 msm_dolby_dap_deinit(port_id);
258 }
259 break;
260 case ADM_CMD_COPP_OPEN_TOPOLOGY_ID_AUDIOSPHERE:
261 pr_debug("%s: TOPOLOGY_ID_AUDIOSPHERE\n", __func__);
262 msm_qti_pp_asphere_deinit(port_id);
263 break;
264 default:
265 /* custom topology specific feature deinit handlers */
266 break;
267 }
268}
269
270static void msm_pcm_routng_cfg_matrix_map_pp(struct route_payload payload,
271 int path_type, int perf_mode)
272{
273 int itr = 0, rc = 0;
274
275 if ((path_type == ADM_PATH_PLAYBACK) &&
276 (perf_mode == LEGACY_PCM_MODE) &&
277 is_custom_stereo_on) {
278 for (itr = 0; itr < payload.num_copps; itr++) {
279 if ((payload.port_id[itr] != SLIMBUS_0_RX) &&
280 (payload.port_id[itr] != RT_PROXY_PORT_001_RX)) {
281 continue;
282 }
283
284 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd(
285 payload.port_id[itr],
286 payload.copp_idx[itr],
287 payload.session_id,
288 Q14_GAIN_ZERO_POINT_FIVE,
289 Q14_GAIN_ZERO_POINT_FIVE,
290 Q14_GAIN_ZERO_POINT_FIVE,
291 Q14_GAIN_ZERO_POINT_FIVE);
292 if (rc < 0)
293 pr_err("%s: err setting custom stereo\n",
294 __func__);
295 }
296 }
297}
298
299#define SLIMBUS_EXTPROC_RX AFE_PORT_INVALID
300struct msm_pcm_routing_bdai_data msm_bedais[MSM_BACKEND_DAI_MAX] = {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530301 { PRIMARY_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_PRI_I2S_RX},
302 { PRIMARY_I2S_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_PRI_I2S_TX},
303 { SLIMBUS_0_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_0_RX},
304 { SLIMBUS_0_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_0_TX},
305 { HDMI_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_HDMI},
306 { INT_BT_SCO_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_BT_SCO_RX},
307 { INT_BT_SCO_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_BT_SCO_TX},
308 { INT_FM_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_FM_RX},
309 { INT_FM_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_FM_TX},
310 { RT_PROXY_PORT_001_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530311 LPASS_BE_AFE_PCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530312 { RT_PROXY_PORT_001_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530313 LPASS_BE_AFE_PCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530314 { AFE_PORT_ID_PRIMARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530315 LPASS_BE_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530316 { AFE_PORT_ID_PRIMARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530317 LPASS_BE_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530318 { VOICE_PLAYBACK_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530319 LPASS_BE_VOICE_PLAYBACK_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530320 { VOICE2_PLAYBACK_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530321 LPASS_BE_VOICE2_PLAYBACK_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530322 { VOICE_RECORD_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530323 LPASS_BE_INCALL_RECORD_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530324 { VOICE_RECORD_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530325 LPASS_BE_INCALL_RECORD_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530326 { MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_MI2S_RX},
327 { MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_MI2S_TX},
328 { SECONDARY_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SEC_I2S_RX},
329 { SLIMBUS_1_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_1_RX},
330 { SLIMBUS_1_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_1_TX},
331 { SLIMBUS_2_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_2_RX},
332 { SLIMBUS_2_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_2_TX},
333 { SLIMBUS_3_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_3_RX},
334 { SLIMBUS_3_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_3_TX},
335 { SLIMBUS_4_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_4_RX},
336 { SLIMBUS_4_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_4_TX},
337 { SLIMBUS_5_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_5_RX},
338 { SLIMBUS_5_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_5_TX},
339 { SLIMBUS_6_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_6_RX},
340 { SLIMBUS_6_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_6_TX},
341 { SLIMBUS_7_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_7_RX},
342 { SLIMBUS_7_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_7_TX},
343 { SLIMBUS_8_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_8_RX},
344 { SLIMBUS_8_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_8_TX},
345 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_RX},
346 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_TX},
347 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_1_TX},
348 { AFE_PORT_ID_QUATERNARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530349 LPASS_BE_QUAT_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530350 { AFE_PORT_ID_QUATERNARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530351 LPASS_BE_QUAT_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530352 { AFE_PORT_ID_SECONDARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530353 LPASS_BE_SEC_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530354 { AFE_PORT_ID_SECONDARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530355 LPASS_BE_SEC_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530356 { AFE_PORT_ID_PRIMARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530357 LPASS_BE_PRI_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530358 { AFE_PORT_ID_PRIMARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530359 LPASS_BE_PRI_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530360 { AFE_PORT_ID_TERTIARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530361 LPASS_BE_TERT_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530362 { AFE_PORT_ID_TERTIARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530363 LPASS_BE_TERT_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530364 { AUDIO_PORT_ID_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530365 LPASS_BE_AUDIO_I2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530366 { AFE_PORT_ID_SECONDARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530367 LPASS_BE_SEC_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530368 { AFE_PORT_ID_SECONDARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530369 LPASS_BE_SEC_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530370 { AFE_PORT_ID_PRIMARY_SPDIF_RX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200371 LPASS_BE_PRI_SPDIF_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530372 { AFE_PORT_ID_SECONDARY_MI2S_RX_SD1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530373 LPASS_BE_SEC_MI2S_RX_SD1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530374 { AFE_PORT_ID_QUINARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530375 LPASS_BE_QUIN_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530376 { AFE_PORT_ID_QUINARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530377 LPASS_BE_QUIN_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530378 { AFE_PORT_ID_SENARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530379 LPASS_BE_SENARY_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530380 { AFE_PORT_ID_PRIMARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530381 LPASS_BE_PRI_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530382 { AFE_PORT_ID_PRIMARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530383 LPASS_BE_PRI_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530384 { AFE_PORT_ID_PRIMARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530385 LPASS_BE_PRI_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530386 { AFE_PORT_ID_PRIMARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530387 LPASS_BE_PRI_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530388 { AFE_PORT_ID_PRIMARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530389 LPASS_BE_PRI_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530390 { AFE_PORT_ID_PRIMARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530391 LPASS_BE_PRI_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530392 { AFE_PORT_ID_PRIMARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530393 LPASS_BE_PRI_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530394 { AFE_PORT_ID_PRIMARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530395 LPASS_BE_PRI_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530396 { AFE_PORT_ID_PRIMARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530397 LPASS_BE_PRI_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530398 { AFE_PORT_ID_PRIMARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530399 LPASS_BE_PRI_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530400 { AFE_PORT_ID_PRIMARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530401 LPASS_BE_PRI_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530402 { AFE_PORT_ID_PRIMARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530403 LPASS_BE_PRI_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530404 { AFE_PORT_ID_PRIMARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530405 LPASS_BE_PRI_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530406 { AFE_PORT_ID_PRIMARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530407 LPASS_BE_PRI_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530408 { AFE_PORT_ID_PRIMARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530409 LPASS_BE_PRI_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530410 { AFE_PORT_ID_PRIMARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530411 LPASS_BE_PRI_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530412 { AFE_PORT_ID_SECONDARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530413 LPASS_BE_SEC_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530414 { AFE_PORT_ID_SECONDARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530415 LPASS_BE_SEC_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530416 { AFE_PORT_ID_SECONDARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530417 LPASS_BE_SEC_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530418 { AFE_PORT_ID_SECONDARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530419 LPASS_BE_SEC_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530420 { AFE_PORT_ID_SECONDARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530421 LPASS_BE_SEC_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530422 { AFE_PORT_ID_SECONDARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530423 LPASS_BE_SEC_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530424 { AFE_PORT_ID_SECONDARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530425 LPASS_BE_SEC_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530426 { AFE_PORT_ID_SECONDARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530427 LPASS_BE_SEC_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530428 { AFE_PORT_ID_SECONDARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530429 LPASS_BE_SEC_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530430 { AFE_PORT_ID_SECONDARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530431 LPASS_BE_SEC_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530432 { AFE_PORT_ID_SECONDARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530433 LPASS_BE_SEC_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530434 { AFE_PORT_ID_SECONDARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530435 LPASS_BE_SEC_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530436 { AFE_PORT_ID_SECONDARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530437 LPASS_BE_SEC_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530438 { AFE_PORT_ID_SECONDARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530439 LPASS_BE_SEC_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530440 { AFE_PORT_ID_SECONDARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530441 LPASS_BE_SEC_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530442 { AFE_PORT_ID_SECONDARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530443 LPASS_BE_SEC_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530444 { AFE_PORT_ID_TERTIARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530445 LPASS_BE_TERT_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530446 { AFE_PORT_ID_TERTIARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530447 LPASS_BE_TERT_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530448 { AFE_PORT_ID_TERTIARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530449 LPASS_BE_TERT_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530450 { AFE_PORT_ID_TERTIARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530451 LPASS_BE_TERT_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530452 { AFE_PORT_ID_TERTIARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530453 LPASS_BE_TERT_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530454 { AFE_PORT_ID_TERTIARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530455 LPASS_BE_TERT_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530456 { AFE_PORT_ID_TERTIARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530457 LPASS_BE_TERT_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530458 { AFE_PORT_ID_TERTIARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530459 LPASS_BE_TERT_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530460 { AFE_PORT_ID_TERTIARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530461 LPASS_BE_TERT_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530462 { AFE_PORT_ID_TERTIARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530463 LPASS_BE_TERT_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530464 { AFE_PORT_ID_TERTIARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530465 LPASS_BE_TERT_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530466 { AFE_PORT_ID_TERTIARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530467 LPASS_BE_TERT_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530468 { AFE_PORT_ID_TERTIARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530469 LPASS_BE_TERT_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530470 { AFE_PORT_ID_TERTIARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530471 LPASS_BE_TERT_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530472 { AFE_PORT_ID_TERTIARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530473 LPASS_BE_TERT_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530474 { AFE_PORT_ID_TERTIARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530475 LPASS_BE_TERT_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530476 { AFE_PORT_ID_QUATERNARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530477 LPASS_BE_QUAT_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530478 { AFE_PORT_ID_QUATERNARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530479 LPASS_BE_QUAT_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530480 { AFE_PORT_ID_QUATERNARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530481 LPASS_BE_QUAT_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530482 { AFE_PORT_ID_QUATERNARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530483 LPASS_BE_QUAT_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530484 { AFE_PORT_ID_QUATERNARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530485 LPASS_BE_QUAT_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530486 { AFE_PORT_ID_QUATERNARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530487 LPASS_BE_QUAT_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530488 { AFE_PORT_ID_QUATERNARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530489 LPASS_BE_QUAT_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530490 { AFE_PORT_ID_QUATERNARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530491 LPASS_BE_QUAT_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530492 { AFE_PORT_ID_QUATERNARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530493 LPASS_BE_QUAT_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530494 { AFE_PORT_ID_QUATERNARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530495 LPASS_BE_QUAT_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530496 { AFE_PORT_ID_QUATERNARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530497 LPASS_BE_QUAT_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530498 { AFE_PORT_ID_QUATERNARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530499 LPASS_BE_QUAT_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530500 { AFE_PORT_ID_QUATERNARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530501 LPASS_BE_QUAT_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530502 { AFE_PORT_ID_QUATERNARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530503 LPASS_BE_QUAT_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530504 { AFE_PORT_ID_QUATERNARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530505 LPASS_BE_QUAT_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530506 { AFE_PORT_ID_QUATERNARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530507 LPASS_BE_QUAT_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530508 { AFE_PORT_ID_QUINARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530509 LPASS_BE_QUIN_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530510 { AFE_PORT_ID_QUINARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530511 LPASS_BE_QUIN_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530512 { AFE_PORT_ID_QUINARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530513 LPASS_BE_QUIN_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530514 { AFE_PORT_ID_QUINARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530515 LPASS_BE_QUIN_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530516 { AFE_PORT_ID_QUINARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530517 LPASS_BE_QUIN_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530518 { AFE_PORT_ID_QUINARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530519 LPASS_BE_QUIN_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530520 { AFE_PORT_ID_QUINARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530521 LPASS_BE_QUIN_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530522 { AFE_PORT_ID_QUINARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530523 LPASS_BE_QUIN_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530524 { AFE_PORT_ID_QUINARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530525 LPASS_BE_QUIN_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530526 { AFE_PORT_ID_QUINARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530527 LPASS_BE_QUIN_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530528 { AFE_PORT_ID_QUINARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530529 LPASS_BE_QUIN_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530530 { AFE_PORT_ID_QUINARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530531 LPASS_BE_QUIN_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530532 { AFE_PORT_ID_QUINARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530533 LPASS_BE_QUIN_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530534 { AFE_PORT_ID_QUINARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530535 LPASS_BE_QUIN_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530536 { AFE_PORT_ID_QUINARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530537 LPASS_BE_QUIN_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530538 { AFE_PORT_ID_QUINARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530539 LPASS_BE_QUIN_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530540 { INT_BT_A2DP_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530541 LPASS_BE_INT_BT_A2DP_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530542 { AFE_PORT_ID_USB_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530543 LPASS_BE_USB_AUDIO_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530544 { AFE_PORT_ID_USB_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530545 LPASS_BE_USB_AUDIO_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530546 { DISPLAY_PORT_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530547 LPASS_BE_DISPLAY_PORT},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530548 { DISPLAY_PORT_RX, 0, {0}, {0}, 0, 0, 0, 0,
Karthikeyan Mani57550082018-05-03 18:43:58 -0700549 LPASS_BE_DISPLAY_PORT1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530550 { AFE_PORT_ID_TERTIARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530551 LPASS_BE_TERT_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530552 { AFE_PORT_ID_TERTIARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530553 LPASS_BE_TERT_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530554 { AFE_PORT_ID_QUATERNARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530555 LPASS_BE_QUAT_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530556 { AFE_PORT_ID_QUATERNARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530557 LPASS_BE_QUAT_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530558 { AFE_PORT_ID_QUINARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530559 LPASS_BE_QUIN_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530560 { AFE_PORT_ID_QUINARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530561 LPASS_BE_QUIN_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530562 { AFE_PORT_ID_INT0_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530563 LPASS_BE_INT0_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530564 { AFE_PORT_ID_INT0_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530565 LPASS_BE_INT0_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530566 { AFE_PORT_ID_INT1_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530567 LPASS_BE_INT1_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530568 { AFE_PORT_ID_INT1_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530569 LPASS_BE_INT1_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530570 { AFE_PORT_ID_INT2_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530571 LPASS_BE_INT2_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530572 { AFE_PORT_ID_INT2_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530573 LPASS_BE_INT2_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530574 { AFE_PORT_ID_INT3_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530575 LPASS_BE_INT3_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530576 { AFE_PORT_ID_INT3_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530577 LPASS_BE_INT3_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530578 { AFE_PORT_ID_INT4_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530579 LPASS_BE_INT4_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530580 { AFE_PORT_ID_INT4_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530581 LPASS_BE_INT4_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530582 { AFE_PORT_ID_INT5_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530583 LPASS_BE_INT5_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530584 { AFE_PORT_ID_INT5_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530585 LPASS_BE_INT5_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530586 { AFE_PORT_ID_INT6_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530587 LPASS_BE_INT6_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530588 { AFE_PORT_ID_INT6_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530589 LPASS_BE_INT6_MI2S_TX},
Dieter Luecking70668fc2018-09-28 15:03:01 +0200590 { AFE_PORT_ID_SENARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
591 LPASS_BE_SEN_AUXPCM_RX},
592 { AFE_PORT_ID_SENARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
593 LPASS_BE_SEN_AUXPCM_TX},
594 { AFE_PORT_ID_SENARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
595 LPASS_BE_SENARY_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530596 { AFE_PORT_ID_WSA_CODEC_DMA_RX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530597 LPASS_BE_WSA_CDC_DMA_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530598 { AFE_PORT_ID_WSA_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530599 LPASS_BE_WSA_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530600 { AFE_PORT_ID_WSA_CODEC_DMA_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530601 LPASS_BE_WSA_CDC_DMA_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530602 { AFE_PORT_ID_WSA_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530603 LPASS_BE_WSA_CDC_DMA_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530604 { AFE_PORT_ID_WSA_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530605 LPASS_BE_WSA_CDC_DMA_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530606 { AFE_PORT_ID_VA_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530607 LPASS_BE_VA_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530608 { AFE_PORT_ID_VA_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530609 LPASS_BE_VA_CDC_DMA_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530610 { AFE_PORT_ID_RX_CODEC_DMA_RX_0, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530611 LPASS_BE_RX_CDC_DMA_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530612 { AFE_PORT_ID_TX_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530613 LPASS_BE_TX_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530614 { AFE_PORT_ID_RX_CODEC_DMA_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530615 LPASS_BE_RX_CDC_DMA_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530616 { AFE_PORT_ID_TX_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530617 LPASS_BE_TX_CDC_DMA_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530618 { AFE_PORT_ID_RX_CODEC_DMA_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530619 LPASS_BE_RX_CDC_DMA_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530620 { AFE_PORT_ID_TX_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530621 LPASS_BE_TX_CDC_DMA_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530622 { AFE_PORT_ID_RX_CODEC_DMA_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530623 LPASS_BE_RX_CDC_DMA_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530624 { AFE_PORT_ID_TX_CODEC_DMA_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530625 LPASS_BE_TX_CDC_DMA_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530626 { AFE_PORT_ID_RX_CODEC_DMA_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530627 LPASS_BE_RX_CDC_DMA_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530628 { AFE_PORT_ID_TX_CODEC_DMA_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530629 LPASS_BE_TX_CDC_DMA_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530630 { AFE_PORT_ID_RX_CODEC_DMA_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530631 LPASS_BE_RX_CDC_DMA_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530632 { AFE_PORT_ID_TX_CODEC_DMA_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530633 LPASS_BE_TX_CDC_DMA_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530634 { AFE_PORT_ID_RX_CODEC_DMA_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530635 LPASS_BE_RX_CDC_DMA_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530636 { AFE_PORT_ID_RX_CODEC_DMA_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530637 LPASS_BE_RX_CDC_DMA_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530638 { AFE_PORT_ID_PRIMARY_SPDIF_TX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200639 LPASS_BE_PRI_SPDIF_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530640 { AFE_PORT_ID_SECONDARY_SPDIF_RX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200641 LPASS_BE_SEC_SPDIF_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530642 { AFE_PORT_ID_SECONDARY_SPDIF_TX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200643 LPASS_BE_SEC_SPDIF_TX},
Surendar Karka3ef3d812018-09-28 18:52:35 +0530644 { SLIMBUS_9_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_9_RX},
645 { SLIMBUS_9_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_9_TX},
Surendar Karkad47fda42018-05-20 19:21:10 +0530646 { AFE_LOOPBACK_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_AFE_LOOPBACK_TX},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530647};
648
649/* Track ASM playback & capture sessions of DAI
650 * Track LSM listen sessions
651 */
652static struct msm_pcm_routing_fdai_data
653 fe_dai_map[MSM_FRONTEND_DAI_MAX][2] = {
654 /* MULTIMEDIA1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530655 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
656 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530657 /* MULTIMEDIA2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530658 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
659 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530660 /* MULTIMEDIA3 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530661 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
662 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530663 /* MULTIMEDIA4 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530664 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
665 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530666 /* MULTIMEDIA5 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530667 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
668 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530669 /* MULTIMEDIA6 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530670 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
671 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530672 /* MULTIMEDIA7*/
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530673 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
674 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530675 /* MULTIMEDIA8 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530676 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
677 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530678 /* MULTIMEDIA9 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530679 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
680 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530681 /* MULTIMEDIA10 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530682 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
683 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530684 /* MULTIMEDIA11 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530685 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
686 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530687 /* MULTIMEDIA12 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530688 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
689 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530690 /* MULTIMEDIA13 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530691 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
692 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530693 /* MULTIMEDIA14 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530694 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
695 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530696 /* MULTIMEDIA15 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530697 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
698 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530699 /* MULTIMEDIA16 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530700 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
701 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530702 /* MULTIMEDIA17 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530703 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
704 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530705 /* MULTIMEDIA18 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530706 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
707 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530708 /* MULTIMEDIA19 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530709 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
710 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530711 /* MULTIMEDIA20 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530712 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
713 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Derek Chen07c6d1c2018-07-05 10:39:25 -0700714 /* MULTIMEDIA21 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530715 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
716 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Surendar Karkac1cde372018-08-14 18:56:24 +0530717 /* MULTIMEDIA26 */
718 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
719 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
720 /* MULTIMEDIA27 */
721 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
722 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +0530723 /* MULTIMEDIA28 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530724 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
725 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +0530726 /* MULTIMEDIA29 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530727 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
728 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530729 /* VOIP */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530730 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
731 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530732 /* AFE_RX */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530733 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
734 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530735 /* AFE_TX */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530736 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
737 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530738 /* VOICE_STUB */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530739 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
740 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530741 /* DTMF_RX */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530742 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
743 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530744 /* QCHAT */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530745 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
746 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530747 /* VOLTE_STUB */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530748 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
749 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530750 /* LSM1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530751 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
752 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530753 /* LSM2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530754 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
755 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530756 /* LSM3 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530757 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
758 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530759 /* LSM4 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530760 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
761 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530762 /* LSM5 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530763 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
764 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530765 /* LSM6 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530766 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
767 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530768 /* LSM7 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530769 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
770 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530771 /* LSM8 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530772 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
773 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530774 /* VOICE2_STUB */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530775 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
776 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530777 /* VOICEMMODE1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530778 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
779 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530780 /* VOICEMMODE2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530781 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
782 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530783};
784
785static unsigned long session_copp_map[MSM_FRONTEND_DAI_MAX][2]
786 [MSM_BACKEND_DAI_MAX];
787static struct msm_pcm_routing_app_type_data app_type_cfg[MAX_APP_TYPES];
788static struct msm_pcm_routing_app_type_data lsm_app_type_cfg[MAX_APP_TYPES];
789static struct msm_pcm_stream_app_type_cfg
790 fe_dai_app_type_cfg[MSM_FRONTEND_DAI_MAX][2][MSM_BACKEND_DAI_MAX];
791
792static int last_be_id_configured[MSM_FRONTEND_DAI_MAX][MAX_SESSION_TYPES];
793
Florian Pfister522073c2018-09-26 15:39:15 +0200794/* The caller of this should acquire routing lock */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530795void msm_pcm_routing_get_bedai_info(int be_idx,
796 struct msm_pcm_routing_bdai_data *be_dai)
797{
798 if (be_idx >= 0 && be_idx < MSM_BACKEND_DAI_MAX)
799 memcpy(be_dai, &msm_bedais[be_idx],
800 sizeof(struct msm_pcm_routing_bdai_data));
801}
802
Florian Pfister522073c2018-09-26 15:39:15 +0200803/* The caller of this should acquire routing lock */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530804void msm_pcm_routing_get_fedai_info(int fe_idx, int sess_type,
805 struct msm_pcm_routing_fdai_data *fe_dai)
806{
807 if ((sess_type == SESSION_TYPE_TX) || (sess_type == SESSION_TYPE_RX))
808 memcpy(fe_dai, &fe_dai_map[fe_idx][sess_type],
809 sizeof(struct msm_pcm_routing_fdai_data));
810}
811
812void msm_pcm_routing_acquire_lock(void)
813{
814 mutex_lock(&routing_lock);
815}
816
817void msm_pcm_routing_release_lock(void)
818{
819 mutex_unlock(&routing_lock);
820}
821
822static int msm_pcm_routing_get_app_type_idx(int app_type)
823{
824 int idx;
825
826 pr_debug("%s: app_type: %d\n", __func__, app_type);
827 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
828 if (app_type_cfg[idx].app_type == app_type)
829 return idx;
830 }
831 pr_info("%s: App type not available, fallback to default\n", __func__);
832 return 0;
833}
834
835static int msm_pcm_routing_get_lsm_app_type_idx(int app_type)
836{
837 int idx;
838
839 pr_debug("%s: app_type: %d\n", __func__, app_type);
840 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
841 if (lsm_app_type_cfg[idx].app_type == app_type)
842 return idx;
843 }
844 pr_debug("%s: App type not available, fallback to default\n", __func__);
845 return 0;
846}
847
Surendar Karkae7507512018-07-20 15:46:54 +0530848static int get_port_id(int port_id)
849{
850 return (port_id == AFE_LOOPBACK_TX ? msm_ec_ref_port_id : port_id);
851}
852
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530853static bool is_mm_lsm_fe_id(int fe_id)
854{
855 bool rc = true;
856
857 if (fe_id > MSM_FRONTEND_DAI_MM_MAX_ID &&
858 ((fe_id < MSM_FRONTEND_DAI_LSM1) ||
859 (fe_id > MSM_FRONTEND_DAI_LSM8))) {
860 rc = false;
861 }
862 return rc;
863}
864
Bhalchandra Gajareeed46bd2018-05-15 16:48:07 -0700865/*
866 * msm_pcm_routing_send_chmix_cfg:
867 * send the channel mixer command to mix the input channels
868 * into output channels.
869 *
870 * @fe_id: front end id
871 * @ip_channel_cnt: input channel count
872 * @op_channel_cnt: output channel count
873 * @ch_wght_coeff: channel weight co-efficients for channel mixing
874 * @session_type: indicates session is of type TX or RX
875 * @stream_type: indicates either Audio or Listen stream type
876 */
877int msm_pcm_routing_send_chmix_cfg(int fe_id, int ip_channel_cnt,
878 int op_channel_cnt, int *ch_wght_coeff,
879 int session_type, int stream_type)
880{
881
882 int rc = 0, idx = 0;
883 int be_index = 0, port_id;
884 unsigned int session_id = 0;
885
886 pr_debug("%s:fe_id[%d] ip_ch[%d] op_ch[%d] sess_type [%d], stream_type[%d]",
887 __func__, fe_id, ip_channel_cnt, op_channel_cnt, session_type,
888 stream_type);
889 if (!is_mm_lsm_fe_id(fe_id)) {
890 /* bad ID assigned in machine driver */
891 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
892 return -EINVAL;
893 }
894
895 if (ch_wght_coeff == NULL) {
896 pr_err("%s: Null channel weightage coefficients passed\n",
897 __func__);
898 return -EINVAL;
899 }
900
901 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
902 port_id = msm_bedais[be_index].port_id;
903 if (!msm_bedais[be_index].active ||
904 !test_bit(fe_id, &msm_bedais[be_index].fe_sessions[0]))
905 continue;
906
907 session_id = fe_dai_map[fe_id][session_type].strm_id;
908
909 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
910 unsigned long copp =
911 session_copp_map[fe_id][session_type][be_index];
912 if (!test_bit(idx, &copp))
913 continue;
914 msm_qti_pp_send_chmix_cfg_cmd(port_id, idx,
915 session_id, ip_channel_cnt,
916 op_channel_cnt, ch_wght_coeff,
917 session_type, stream_type);
918 if (rc < 0)
919 pr_err("%s: err setting channel mix config\n",
920 __func__);
921 }
922 }
923
924 return 0;
925}
926EXPORT_SYMBOL(msm_pcm_routing_send_chmix_cfg);
927
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530928int msm_pcm_routing_reg_stream_app_type_cfg(
929 int fedai_id, int session_type, int be_id,
930 struct msm_pcm_stream_app_type_cfg *cfg_data)
931{
932 int ret = 0;
933
934 if (cfg_data == NULL) {
935 pr_err("%s: Received NULL pointer for cfg_data\n", __func__);
936 ret = -EINVAL;
937 goto done;
938 }
939
940 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
941 __func__, fedai_id, session_type, be_id,
942 cfg_data->app_type, cfg_data->acdb_dev_id,
943 cfg_data->sample_rate);
944
945 if (!is_mm_lsm_fe_id(fedai_id)) {
946 pr_err("%s: Invalid machine driver ID %d\n",
947 __func__, fedai_id);
948 ret = -EINVAL;
949 goto done;
950 }
951 if (session_type != SESSION_TYPE_RX &&
952 session_type != SESSION_TYPE_TX) {
953 pr_err("%s: Invalid session type %d\n",
954 __func__, session_type);
955 ret = -EINVAL;
956 goto done;
957 }
958 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
959 pr_err("%s: Received out of bounds be_id %d\n",
960 __func__, be_id);
961 ret = -EINVAL;
962 goto done;
963 }
964
965 fe_dai_app_type_cfg[fedai_id][session_type][be_id] = *cfg_data;
966
967 /*
968 * Store the BE ID of the configuration information set as the latest so
969 * the get mixer control knows what to return.
970 */
971 last_be_id_configured[fedai_id][session_type] = be_id;
972
973done:
974 return ret;
975}
976EXPORT_SYMBOL(msm_pcm_routing_reg_stream_app_type_cfg);
977
978/**
979 * msm_pcm_routing_get_stream_app_type_cfg
980 *
981 * Receives fedai_id, session_type, be_id, and populates app_type,
982 * acdb_dev_id, & sample rate. Returns 0 on success. On failure returns
983 * -EINVAL and does not alter passed values.
984 *
985 * fedai_id - Passed value, front end ID for which app type config is wanted
986 * session_type - Passed value, session type for which app type config
987 * is wanted
988 * be_id - Returned value, back end device id the app type config data is for
989 * cfg_data - Returned value, configuration data used by app type config
990 */
991int msm_pcm_routing_get_stream_app_type_cfg(
992 int fedai_id, int session_type, int *bedai_id,
993 struct msm_pcm_stream_app_type_cfg *cfg_data)
994{
995 int be_id;
996 int ret = 0;
997
998 if (bedai_id == NULL) {
999 pr_err("%s: Received NULL pointer for backend ID\n", __func__);
1000 ret = -EINVAL;
1001 goto done;
1002 } else if (cfg_data == NULL) {
1003 pr_err("%s: NULL pointer sent for cfg_data\n", __func__);
1004 ret = -EINVAL;
1005 goto done;
1006 } else if (!is_mm_lsm_fe_id(fedai_id)) {
1007 pr_err("%s: Invalid FE ID %d\n", __func__, fedai_id);
1008 ret = -EINVAL;
1009 goto done;
1010 } else if (session_type != SESSION_TYPE_RX &&
1011 session_type != SESSION_TYPE_TX) {
1012 pr_err("%s: Invalid session type %d\n", __func__, session_type);
1013 ret = -EINVAL;
1014 goto done;
1015 }
1016
1017 be_id = last_be_id_configured[fedai_id][session_type];
1018 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1019 pr_err("%s: Invalid BE ID %d\n", __func__, be_id);
1020 ret = -EINVAL;
1021 goto done;
1022 }
1023
1024 *bedai_id = be_id;
1025 *cfg_data = fe_dai_app_type_cfg[fedai_id][session_type][be_id];
1026 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
1027 __func__, fedai_id, session_type, *bedai_id,
1028 cfg_data->app_type, cfg_data->acdb_dev_id,
1029 cfg_data->sample_rate);
1030done:
1031 return ret;
1032}
1033EXPORT_SYMBOL(msm_pcm_routing_get_stream_app_type_cfg);
1034
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301035static struct cal_block_data *msm_routing_find_topology_by_path(int path,
1036 int cal_index)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301037{
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301038 struct list_head *ptr, *next;
1039 struct cal_block_data *cal_block = NULL;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301040 pr_debug("%s\n", __func__);
1041
1042 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301043 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301044
1045 cal_block = list_entry(ptr,
1046 struct cal_block_data, list);
1047
Vikram Panduranga770b8382017-09-27 12:17:36 -07001048 if (cal_utils_is_cal_stale(cal_block))
1049 continue;
1050
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301051 if (((struct audio_cal_info_adm_top *)cal_block
1052 ->cal_info)->path == path) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301053 return cal_block;
1054 }
1055 }
1056 pr_debug("%s: Can't find topology for path %d\n", __func__, path);
1057 return NULL;
1058}
1059
1060static struct cal_block_data *msm_routing_find_topology(int path,
1061 int app_type,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301062 int acdb_id,
1063 int cal_index)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301064{
1065 struct list_head *ptr, *next;
1066 struct cal_block_data *cal_block = NULL;
1067 struct audio_cal_info_adm_top *cal_info;
1068
1069 pr_debug("%s\n", __func__);
1070
1071 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301072 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301073
1074 cal_block = list_entry(ptr,
1075 struct cal_block_data, list);
1076
Vikram Panduranga770b8382017-09-27 12:17:36 -07001077 if (cal_utils_is_cal_stale(cal_block))
1078 continue;
1079
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301080 cal_info = (struct audio_cal_info_adm_top *)
1081 cal_block->cal_info;
1082 if ((cal_info->path == path) &&
1083 (cal_info->app_type == app_type) &&
1084 (cal_info->acdb_id == acdb_id)) {
1085 return cal_block;
1086 }
1087 }
1088 pr_debug("%s: Can't find topology for path %d, app %d, acdb_id %d defaulting to search by path\n",
1089 __func__, path, app_type, acdb_id);
Vikram Panduranga770b8382017-09-27 12:17:36 -07001090 return msm_routing_find_topology_by_path(path, cal_index);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301091}
1092
Vikram Panduranga770b8382017-09-27 12:17:36 -07001093/*
1094 * Retrieving cal_block will mark cal_block as stale.
1095 * Hence it cannot be reused or resent unless the flag
1096 * is reset.
1097 */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301098static int msm_routing_get_adm_topology(int fedai_id, int session_type,
1099 int be_id)
1100{
1101 int topology = NULL_COPP_TOPOLOGY;
1102 struct cal_block_data *cal_block = NULL;
1103 int app_type = 0, acdb_dev_id = 0;
1104
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301105 pr_debug("%s: fedai_id %d, session_type %d, be_id %d\n",
1106 __func__, fedai_id, session_type, be_id);
1107
1108 if (cal_data == NULL)
1109 goto done;
1110
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301111 app_type = fe_dai_app_type_cfg[fedai_id][session_type][be_id].app_type;
1112 acdb_dev_id =
1113 fe_dai_app_type_cfg[fedai_id][session_type][be_id].acdb_dev_id;
1114
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301115 mutex_lock(&cal_data[ADM_TOPOLOGY_CAL_TYPE_IDX]->lock);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301116 cal_block = msm_routing_find_topology(session_type, app_type,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301117 acdb_dev_id,
1118 ADM_TOPOLOGY_CAL_TYPE_IDX);
Vikram Panduranga770b8382017-09-27 12:17:36 -07001119 if (cal_block != NULL) {
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301120 topology = ((struct audio_cal_info_adm_top *)
1121 cal_block->cal_info)->topology;
Vikram Panduranga770b8382017-09-27 12:17:36 -07001122 cal_utils_mark_cal_used(cal_block);
1123 mutex_unlock(&cal_data[ADM_TOPOLOGY_CAL_TYPE_IDX]->lock);
1124 } else {
1125 mutex_unlock(&cal_data[ADM_TOPOLOGY_CAL_TYPE_IDX]->lock);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301126
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301127 pr_debug("%s: Check for LSM topology\n", __func__);
1128 mutex_lock(&cal_data[ADM_LSM_TOPOLOGY_CAL_TYPE_IDX]->lock);
1129 cal_block = msm_routing_find_topology(session_type, app_type,
1130 acdb_dev_id,
1131 ADM_LSM_TOPOLOGY_CAL_TYPE_IDX);
Vikram Panduranga770b8382017-09-27 12:17:36 -07001132 if (cal_block != NULL) {
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301133 topology = ((struct audio_cal_info_adm_top *)
1134 cal_block->cal_info)->topology;
Vikram Panduranga770b8382017-09-27 12:17:36 -07001135 cal_utils_mark_cal_used(cal_block);
1136 }
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301137 mutex_unlock(&cal_data[ADM_LSM_TOPOLOGY_CAL_TYPE_IDX]->lock);
1138 }
1139
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301140done:
1141 pr_debug("%s: Using topology %d\n", __func__, topology);
1142 return topology;
1143}
1144
1145static uint8_t is_be_dai_extproc(int be_dai)
1146{
1147 if (be_dai == MSM_BACKEND_DAI_EXTPROC_RX ||
1148 be_dai == MSM_BACKEND_DAI_EXTPROC_TX ||
1149 be_dai == MSM_BACKEND_DAI_EXTPROC_EC_TX)
1150 return 1;
1151 else
1152 return 0;
1153}
1154
1155static void msm_pcm_routing_build_matrix(int fedai_id, int sess_type,
1156 int path_type, int perf_mode,
1157 uint32_t passthr_mode)
1158{
1159 int i, port_type, j, num_copps = 0;
1160 struct route_payload payload;
1161
1162 port_type = ((path_type == ADM_PATH_PLAYBACK ||
1163 path_type == ADM_PATH_COMPRESSED_RX) ?
1164 MSM_AFE_PORT_TYPE_RX : MSM_AFE_PORT_TYPE_TX);
1165
1166 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1167 if (!is_be_dai_extproc(i) &&
1168 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1169 (msm_bedais[i].active) &&
1170 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
Surendar Karkae7507512018-07-20 15:46:54 +05301171 int port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301172 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1173 unsigned long copp =
1174 session_copp_map[fedai_id][sess_type][i];
1175 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301176 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301177 payload.copp_idx[num_copps] = j;
1178 payload.app_type[num_copps] =
1179 fe_dai_app_type_cfg
1180 [fedai_id][sess_type][i]
1181 .app_type;
1182 payload.acdb_dev_id[num_copps] =
1183 fe_dai_app_type_cfg
1184 [fedai_id][sess_type][i]
1185 .acdb_dev_id;
1186 payload.sample_rate[num_copps] =
1187 fe_dai_app_type_cfg
1188 [fedai_id][sess_type][i]
1189 .sample_rate;
1190 num_copps++;
1191 }
1192 }
1193 }
1194 }
1195
1196 if (num_copps) {
1197 payload.num_copps = num_copps;
1198 payload.session_id = fe_dai_map[fedai_id][sess_type].strm_id;
1199 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1200 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1201 }
1202}
1203
1204void msm_pcm_routing_reg_psthr_stream(int fedai_id, int dspst_id,
1205 int stream_type)
1206{
1207 int i, session_type, path_type, port_type;
1208 u32 mode = 0;
1209
1210 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1211 /* bad ID assigned in machine driver */
1212 pr_err("%s: bad MM ID\n", __func__);
1213 return;
1214 }
1215
1216 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1217 session_type = SESSION_TYPE_RX;
1218 path_type = ADM_PATH_PLAYBACK;
1219 port_type = MSM_AFE_PORT_TYPE_RX;
1220 } else {
1221 session_type = SESSION_TYPE_TX;
1222 path_type = ADM_PATH_LIVE_REC;
1223 port_type = MSM_AFE_PORT_TYPE_TX;
1224 }
1225
1226 mutex_lock(&routing_lock);
1227
1228 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1229 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1230 if (!is_be_dai_extproc(i) &&
1231 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1232 (msm_bedais[i].active) &&
1233 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1234 mode = afe_get_port_type(msm_bedais[i].port_id);
1235 adm_connect_afe_port(mode, dspst_id,
1236 msm_bedais[i].port_id);
1237 break;
1238 }
1239 }
1240 mutex_unlock(&routing_lock);
1241}
1242
1243static bool route_check_fe_id_adm_support(int fe_id)
1244{
1245 bool rc = true;
1246
1247 if ((fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1248 (fe_id <= MSM_FRONTEND_DAI_LSM8)) {
1249 /* fe id is listen while port is set to afe */
1250 if (lsm_port_index != ADM_LSM_PORT_INDEX) {
1251 pr_debug("%s: fe_id %d, lsm mux slim port %d\n",
1252 __func__, fe_id, lsm_port_index);
1253 rc = false;
1254 }
1255 }
1256
1257 return rc;
1258}
1259
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001260/*
1261 * msm_pcm_routing_get_pp_ch_cnt:
1262 * Read the processed channel count
1263 *
1264 * @fe_id: Front end ID
1265 * @session_type: Inidicates RX or TX session type
1266 */
1267int msm_pcm_routing_get_pp_ch_cnt(int fe_id, int session_type)
1268{
1269 struct msm_pcm_stream_app_type_cfg cfg_data;
1270 int be_id = 0, app_type_idx = 0, app_type = 0;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +05301271 int ret = -EINVAL;
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001272
1273 memset(&cfg_data, 0, sizeof(cfg_data));
1274
1275 if (!is_mm_lsm_fe_id(fe_id)) {
1276 pr_err("%s: bad MM ID\n", __func__);
1277 return -EINVAL;
1278 }
1279
1280 ret = msm_pcm_routing_get_stream_app_type_cfg(fe_id, session_type,
1281 &be_id, &cfg_data);
1282 if (ret) {
Mangesh Kunchamwardaf02b02018-06-28 19:42:24 +05301283 pr_err("%s: cannot get stream app type cfg\n", __func__);
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001284 return ret;
1285 }
1286
1287 app_type = cfg_data.app_type;
1288 app_type_idx = msm_pcm_routing_get_lsm_app_type_idx(app_type);
1289 return lsm_app_type_cfg[app_type_idx].num_out_channels;
1290}
1291EXPORT_SYMBOL(msm_pcm_routing_get_pp_ch_cnt);
1292
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301293int msm_pcm_routing_reg_phy_compr_stream(int fe_id, int perf_mode,
1294 int dspst_id, int stream_type,
1295 uint32_t passthr_mode)
1296{
1297 int i, j, session_type, path_type, port_type, topology;
1298 int num_copps = 0;
1299 struct route_payload payload;
1300 u32 channels, sample_rate;
1301 u16 bit_width = 16;
1302 bool is_lsm;
1303
1304 pr_debug("%s:fe_id[%d] perf_mode[%d] id[%d] stream_type[%d] passt[%d]",
1305 __func__, fe_id, perf_mode, dspst_id,
1306 stream_type, passthr_mode);
1307 if (!is_mm_lsm_fe_id(fe_id)) {
1308 /* bad ID assigned in machine driver */
1309 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
1310 return -EINVAL;
1311 }
1312
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301313 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1314 session_type = SESSION_TYPE_RX;
1315 if (passthr_mode != LEGACY_PCM)
1316 path_type = ADM_PATH_COMPRESSED_RX;
1317 else
1318 path_type = ADM_PATH_PLAYBACK;
1319 port_type = MSM_AFE_PORT_TYPE_RX;
1320 } else if (stream_type == SNDRV_PCM_STREAM_CAPTURE) {
1321 session_type = SESSION_TYPE_TX;
Laxminath Kasam38070be2017-08-17 18:21:59 +05301322 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301323 path_type = ADM_PATH_COMPRESSED_TX;
1324 else
1325 path_type = ADM_PATH_LIVE_REC;
1326 port_type = MSM_AFE_PORT_TYPE_TX;
1327 } else {
1328 pr_err("%s: invalid stream type %d\n", __func__, stream_type);
1329 return -EINVAL;
1330 }
1331
1332 is_lsm = (fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1333 (fe_id <= MSM_FRONTEND_DAI_LSM8);
1334 mutex_lock(&routing_lock);
1335
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301336 fe_dai_map[fe_id][session_type].strm_id = dspst_id;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301337 fe_dai_map[fe_id][session_type].perf_mode = perf_mode;
1338 fe_dai_map[fe_id][session_type].passthr_mode = passthr_mode;
1339 if (!route_check_fe_id_adm_support(fe_id)) {
1340 /* ignore adm open if not supported for fe_id */
1341 pr_debug("%s: No ADM support for fe id %d\n", __func__, fe_id);
1342 mutex_unlock(&routing_lock);
1343 return 0;
1344 }
1345
1346 payload.num_copps = 0; /* only RX needs to use payload */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301347 /* re-enable EQ if active */
1348 msm_qti_pp_send_eq_values(fe_id);
1349 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301350 if (!is_be_dai_extproc(i) &&
1351 (afe_get_port_type(msm_bedais[i].port_id) ==
1352 port_type) &&
1353 (msm_bedais[i].active) &&
1354 (test_bit(fe_id, &msm_bedais[i].fe_sessions[0]))) {
1355 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05301356 int port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301357
1358 /*
1359 * check if ADM needs to be configured with different
1360 * channel mapping than backend
1361 */
1362 if (!msm_bedais[i].adm_override_ch)
1363 channels = msm_bedais[i].channel;
1364 else
1365 channels = msm_bedais[i].adm_override_ch;
1366
1367 bit_width = msm_routing_get_bit_width(
1368 msm_bedais[i].format);
1369 app_type =
1370 fe_dai_app_type_cfg[fe_id][session_type][i].app_type;
1371 if (app_type && is_lsm) {
1372 app_type_idx =
1373 msm_pcm_routing_get_lsm_app_type_idx(app_type);
1374 sample_rate =
1375 fe_dai_app_type_cfg[fe_id][session_type][i]
1376 .sample_rate;
1377 bit_width =
1378 lsm_app_type_cfg[app_type_idx].bit_width;
1379 } else if (app_type) {
1380 app_type_idx =
1381 msm_pcm_routing_get_app_type_idx(
1382 app_type);
1383 sample_rate =
1384 fe_dai_app_type_cfg[fe_id][session_type][i].sample_rate;
1385 bit_width =
1386 app_type_cfg[app_type_idx].bit_width;
1387 } else {
1388 sample_rate = msm_bedais[i].sample_rate;
1389 }
1390 acdb_dev_id =
1391 fe_dai_app_type_cfg[fe_id][session_type][i].acdb_dev_id;
1392 topology = msm_routing_get_adm_topology(fe_id,
1393 session_type,
1394 i);
1395 if ((passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
1396 || (passthr_mode ==
Ralf Herzc8701f72018-06-20 11:37:35 +02001397 COMPRESSED_PASSTHROUGH_GEN)
1398 || (passthr_mode ==
1399 COMPRESSED_PASSTHROUGH_IEC61937))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301400 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
1401 pr_debug("%s: Before adm open topology %d\n", __func__,
1402 topology);
1403
1404 copp_idx =
Surendar Karkae7507512018-07-20 15:46:54 +05301405 adm_open(port_id, path_type, sample_rate,
1406 channels, topology, perf_mode,
1407 bit_width, app_type, acdb_dev_id,
1408 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301409 if ((copp_idx < 0) ||
1410 (copp_idx >= MAX_COPPS_PER_PORT)) {
1411 pr_err("%s:adm open failed coppid:%d\n",
1412 __func__, copp_idx);
1413 mutex_unlock(&routing_lock);
1414 return -EINVAL;
1415 }
1416 pr_debug("%s: set idx bit of fe:%d, type: %d, be:%d\n",
1417 __func__, fe_id, session_type, i);
1418 set_bit(copp_idx,
1419 &session_copp_map[fe_id][session_type][i]);
1420
1421 if (msm_is_resample_needed(
1422 sample_rate,
1423 msm_bedais[i].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05301424 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301425 msm_bedais[i].sample_rate);
1426
1427 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1428 unsigned long copp =
1429 session_copp_map[fe_id][session_type][i];
1430 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301431 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301432 payload.copp_idx[num_copps] = j;
1433 payload.app_type[num_copps] =
1434 fe_dai_app_type_cfg
1435 [fe_id][session_type][i]
1436 .app_type;
1437 payload.acdb_dev_id[num_copps] =
1438 fe_dai_app_type_cfg
1439 [fe_id][session_type][i]
1440 .acdb_dev_id;
1441 payload.sample_rate[num_copps] =
1442 fe_dai_app_type_cfg
1443 [fe_id][session_type][i]
1444 .sample_rate;
1445 num_copps++;
1446 }
1447 }
1448 if (passthr_mode != COMPRESSED_PASSTHROUGH_DSD
Ralf Herzc8701f72018-06-20 11:37:35 +02001449 && passthr_mode != COMPRESSED_PASSTHROUGH_GEN
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301450 && passthr_mode != COMPRESSED_PASSTHROUGH_IEC61937)
Surendar Karkae7507512018-07-20 15:46:54 +05301451 msm_routing_send_device_pp_params(port_id,
1452 copp_idx, fe_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301453 }
1454 }
1455 if (num_copps) {
1456 payload.num_copps = num_copps;
1457 payload.session_id = fe_dai_map[fe_id][session_type].strm_id;
1458 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1459 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1460 }
1461 mutex_unlock(&routing_lock);
1462 return 0;
1463}
1464
1465static u32 msm_pcm_routing_get_voc_sessionid(u16 val)
1466{
1467 u32 session_id;
1468
1469 switch (val) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301470 case MSM_FRONTEND_DAI_QCHAT:
1471 session_id = voc_get_session_id(QCHAT_SESSION_NAME);
1472 break;
1473 case MSM_FRONTEND_DAI_VOIP:
1474 session_id = voc_get_session_id(VOIP_SESSION_NAME);
1475 break;
1476 case MSM_FRONTEND_DAI_VOICEMMODE1:
1477 session_id = voc_get_session_id(VOICEMMODE1_NAME);
1478 break;
1479 case MSM_FRONTEND_DAI_VOICEMMODE2:
1480 session_id = voc_get_session_id(VOICEMMODE2_NAME);
1481 break;
1482 default:
1483 session_id = 0;
1484 }
1485
1486 pr_debug("%s session_id 0x%x", __func__, session_id);
1487 return session_id;
1488}
1489
1490static int msm_pcm_routing_channel_mixer(int fe_id, bool perf_mode,
1491 int dspst_id, int stream_type)
1492{
1493 int copp_idx = 0;
1494 int sess_type = 0;
1495 int i = 0, j = 0, be_id;
1496 int ret = 0;
1497
1498 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
1499 pr_err("%s: invalid FE %d\n", __func__, fe_id);
1500 return 0;
1501 }
1502
1503 if (!(channel_mixer[fe_id].enable)) {
1504 pr_debug("%s: channel mixer not enabled for FE %d\n",
1505 __func__, fe_id);
1506 return 0;
1507 }
1508
1509 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1510 sess_type = SESSION_TYPE_RX;
1511 else
1512 sess_type = SESSION_TYPE_TX;
1513
1514 for (i = 0; i < ADM_MAX_CHANNELS && channel_input[fe_id][i] > 0;
1515 ++i) {
1516 be_id = channel_input[fe_id][i] - 1;
1517 channel_mixer[fe_id].input_channels[i] =
1518 msm_bedais[be_id].channel;
1519
1520 if ((msm_bedais[be_id].active) &&
1521 test_bit(fe_id,
1522 &msm_bedais[be_id].fe_sessions[0])) {
1523 unsigned long copp =
1524 session_copp_map[fe_id][sess_type][be_id];
1525 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1526 if (test_bit(j, &copp)) {
1527 copp_idx = j;
1528 break;
1529 }
1530 }
1531
1532 pr_debug("%s: fe %d, be %d, channel %d, copp %d\n",
1533 __func__,
1534 fe_id, be_id, msm_bedais[be_id].channel,
1535 copp_idx);
1536 ret = adm_programable_channel_mixer(
1537 msm_bedais[be_id].port_id,
1538 copp_idx, dspst_id, sess_type,
1539 channel_mixer + fe_id, i);
1540 }
1541 }
1542
1543 return ret;
1544}
1545
1546int msm_pcm_routing_reg_phy_stream(int fedai_id, int perf_mode,
1547 int dspst_id, int stream_type)
1548{
1549 int i, j, session_type, path_type, port_type, topology, num_copps = 0;
1550 struct route_payload payload;
1551 u32 channels, sample_rate;
1552 uint16_t bits_per_sample = 16;
1553 uint32_t passthr_mode = LEGACY_PCM;
1554 int ret = 0;
1555
1556 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1557 /* bad ID assigned in machine driver */
1558 pr_err("%s: bad MM ID %d\n", __func__, fedai_id);
1559 return -EINVAL;
1560 }
1561
1562 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1563 session_type = SESSION_TYPE_RX;
1564 path_type = ADM_PATH_PLAYBACK;
1565 port_type = MSM_AFE_PORT_TYPE_RX;
1566 } else {
1567 session_type = SESSION_TYPE_TX;
1568 path_type = ADM_PATH_LIVE_REC;
1569 port_type = MSM_AFE_PORT_TYPE_TX;
1570 }
1571
1572 mutex_lock(&routing_lock);
1573
1574 payload.num_copps = 0; /* only RX needs to use payload */
1575 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1576 fe_dai_map[fedai_id][session_type].perf_mode = perf_mode;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301577 fe_dai_map[fedai_id][session_type].passthr_mode = LEGACY_PCM;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301578
1579 /* re-enable EQ if active */
1580 msm_qti_pp_send_eq_values(fedai_id);
1581 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1582 if (!is_be_dai_extproc(i) &&
1583 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1584 (msm_bedais[i].active) &&
1585 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1586 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05301587 int port_id = get_port_id(msm_bedais[i].port_id);
1588
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301589 /*
1590 * check if ADM needs to be configured with different
1591 * channel mapping than backend
1592 */
1593 if (!msm_bedais[i].adm_override_ch)
1594 channels = msm_bedais[i].channel;
1595 else
1596 channels = msm_bedais[i].adm_override_ch;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301597
1598 bits_per_sample = msm_routing_get_bit_width(
1599 msm_bedais[i].format);
1600
1601 app_type =
1602 fe_dai_app_type_cfg[fedai_id][session_type][i].app_type;
1603 if (app_type) {
1604 app_type_idx =
1605 msm_pcm_routing_get_app_type_idx(app_type);
1606 sample_rate =
1607 fe_dai_app_type_cfg[fedai_id][session_type][i]
1608 .sample_rate;
1609 bits_per_sample =
1610 app_type_cfg[app_type_idx].bit_width;
1611 } else
1612 sample_rate = msm_bedais[i].sample_rate;
1613
1614 acdb_dev_id =
1615 fe_dai_app_type_cfg[fedai_id][session_type][i]
1616 .acdb_dev_id;
1617 topology = msm_routing_get_adm_topology(fedai_id,
1618 session_type,
1619 i);
Surendar Karkae7507512018-07-20 15:46:54 +05301620 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301621 sample_rate, channels, topology,
1622 perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +05301623 app_type, acdb_dev_id,
1624 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301625 if ((copp_idx < 0) ||
1626 (copp_idx >= MAX_COPPS_PER_PORT)) {
1627 pr_err("%s: adm open failed copp_idx:%d\n",
Vikram Panduranga770b8382017-09-27 12:17:36 -07001628 __func__, copp_idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301629 mutex_unlock(&routing_lock);
1630 return -EINVAL;
1631 }
1632 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
1633 __func__, fedai_id, session_type, i);
1634 set_bit(copp_idx,
1635 &session_copp_map[fedai_id][session_type][i]);
1636
1637 if (msm_is_resample_needed(
1638 sample_rate,
1639 msm_bedais[i].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05301640 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301641 msm_bedais[i].sample_rate);
1642
1643 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1644 unsigned long copp =
1645 session_copp_map[fedai_id][session_type][i];
1646 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301647 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301648 payload.copp_idx[num_copps] = j;
1649 payload.app_type[num_copps] =
1650 fe_dai_app_type_cfg
1651 [fedai_id][session_type]
1652 [i].app_type;
1653 payload.acdb_dev_id[num_copps] =
1654 fe_dai_app_type_cfg
1655 [fedai_id][session_type]
1656 [i].acdb_dev_id;
1657 payload.sample_rate[num_copps] =
1658 fe_dai_app_type_cfg
1659 [fedai_id][session_type]
1660 [i].sample_rate;
1661 num_copps++;
1662 }
1663 }
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301664 if (perf_mode == LEGACY_PCM_MODE)
Surendar Karkae7507512018-07-20 15:46:54 +05301665 msm_pcm_routing_cfg_pp(port_id, copp_idx,
1666 topology, channels);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301667 }
1668 }
1669 if (num_copps) {
1670 payload.num_copps = num_copps;
1671 payload.session_id = fe_dai_map[fedai_id][session_type].strm_id;
1672 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1673 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1674 }
1675
1676 ret = msm_pcm_routing_channel_mixer(fedai_id, perf_mode,
1677 dspst_id, stream_type);
1678 mutex_unlock(&routing_lock);
1679 return ret;
1680}
1681
1682int msm_pcm_routing_reg_phy_stream_v2(int fedai_id, int perf_mode,
1683 int dspst_id, int stream_type,
1684 struct msm_pcm_routing_evt event_info)
1685{
1686 if (msm_pcm_routing_reg_phy_stream(fedai_id, perf_mode, dspst_id,
1687 stream_type)) {
1688 pr_err("%s: failed to reg phy stream\n", __func__);
1689 return -EINVAL;
1690 }
1691
1692 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1693 fe_dai_map[fedai_id][SESSION_TYPE_RX].event_info = event_info;
1694 else
1695 fe_dai_map[fedai_id][SESSION_TYPE_TX].event_info = event_info;
1696 return 0;
1697}
1698
1699void msm_pcm_routing_dereg_phy_stream(int fedai_id, int stream_type)
1700{
Surendar Karkae7507512018-07-20 15:46:54 +05301701 int i, port_type, session_type, path_type, topology, port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301702 struct msm_pcm_routing_fdai_data *fdai;
1703
1704 if (!is_mm_lsm_fe_id(fedai_id)) {
1705 /* bad ID assigned in machine driver */
1706 pr_err("%s: bad MM ID\n", __func__);
1707 return;
1708 }
1709
1710 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1711 port_type = MSM_AFE_PORT_TYPE_RX;
1712 session_type = SESSION_TYPE_RX;
1713 path_type = ADM_PATH_PLAYBACK;
1714 } else {
1715 port_type = MSM_AFE_PORT_TYPE_TX;
1716 session_type = SESSION_TYPE_TX;
1717 path_type = ADM_PATH_LIVE_REC;
1718 }
1719
1720 mutex_lock(&routing_lock);
1721 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1722 if (!is_be_dai_extproc(i) &&
1723 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1724 (msm_bedais[i].active) &&
1725 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1726 int idx;
1727 unsigned long copp =
1728 session_copp_map[fedai_id][session_type][i];
1729 fdai = &fe_dai_map[fedai_id][session_type];
1730
1731 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
1732 if (test_bit(idx, &copp))
1733 break;
1734
1735 if (idx >= MAX_COPPS_PER_PORT || idx < 0) {
1736 pr_debug("%s: copp idx is invalid, exiting\n",
1737 __func__);
1738 continue;
1739 }
Surendar Karkae7507512018-07-20 15:46:54 +05301740 port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301741 topology = adm_get_topology_for_port_copp_idx(
Surendar Karkae7507512018-07-20 15:46:54 +05301742 port_id, idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07001743 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +05301744 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301745 pr_debug("%s:copp:%ld,idx bit fe:%d,type:%d,be:%d\n",
1746 __func__, copp, fedai_id, session_type, i);
1747 clear_bit(idx,
1748 &session_copp_map[fedai_id][session_type][i]);
1749 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
1750 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
1751 (fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301752 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05301753 msm_pcm_routing_deinit_pp(port_id, topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301754 }
1755 }
1756
1757 fe_dai_map[fedai_id][session_type].strm_id = INVALID_SESSION;
1758 fe_dai_map[fedai_id][session_type].be_srate = 0;
1759 mutex_unlock(&routing_lock);
1760}
1761
1762/* Check if FE/BE route is set */
1763static bool msm_pcm_routing_route_is_set(u16 be_id, u16 fe_id)
1764{
1765 bool rc = false;
1766
1767 if (!is_mm_lsm_fe_id(fe_id)) {
1768 /* recheck FE ID in the mixer control defined in this file */
1769 pr_err("%s: bad MM ID\n", __func__);
1770 return rc;
1771 }
1772
1773 if (test_bit(fe_id, &msm_bedais[be_id].fe_sessions[0]))
1774 rc = true;
1775
1776 return rc;
1777}
1778
1779static void msm_pcm_routing_process_audio(u16 reg, u16 val, int set)
1780{
1781 int session_type, path_type, topology;
1782 u32 channels, sample_rate;
1783 uint16_t bits_per_sample = 16;
1784 struct msm_pcm_routing_fdai_data *fdai;
1785 uint32_t passthr_mode;
1786 bool is_lsm;
1787
1788 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
1789
1790 if (!is_mm_lsm_fe_id(val)) {
1791 /* recheck FE ID in the mixer control defined in this file */
1792 pr_err("%s: bad MM ID\n", __func__);
1793 return;
1794 }
1795
1796 if (!route_check_fe_id_adm_support(val)) {
1797 /* ignore adm open if not supported for fe_id */
1798 pr_debug("%s: No ADM support for fe id %d\n", __func__, val);
1799 return;
1800 }
1801
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301802 session_type =
1803 (afe_get_port_type(msm_bedais[reg].port_id) == MSM_AFE_PORT_TYPE_RX) ?
1804 SESSION_TYPE_RX : SESSION_TYPE_TX;
1805 fdai = &fe_dai_map[val][session_type];
1806 passthr_mode = fdai->passthr_mode;
1807 if (session_type == SESSION_TYPE_RX) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301808 if (passthr_mode != LEGACY_PCM)
1809 path_type = ADM_PATH_COMPRESSED_RX;
1810 else
1811 path_type = ADM_PATH_PLAYBACK;
1812 } else {
Ralf Herzc8701f72018-06-20 11:37:35 +02001813 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301814 path_type = ADM_PATH_COMPRESSED_TX;
1815 else
1816 path_type = ADM_PATH_LIVE_REC;
1817 }
1818 is_lsm = (val >= MSM_FRONTEND_DAI_LSM1) &&
1819 (val <= MSM_FRONTEND_DAI_LSM8);
1820
1821 mutex_lock(&routing_lock);
1822 if (set) {
1823 if (!test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
1824 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
1825 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
1826 voc_start_playback(set, msm_bedais[reg].port_id);
1827
1828 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301829 if (msm_bedais[reg].active && fdai->strm_id !=
1830 INVALID_SESSION) {
1831 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05301832 int port_id = get_port_id(msm_bedais[reg].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301833 /*
1834 * check if ADM needs to be configured with different
1835 * channel mapping than backend
1836 */
1837 if (!msm_bedais[reg].adm_override_ch)
1838 channels = msm_bedais[reg].channel;
1839 else
1840 channels = msm_bedais[reg].adm_override_ch;
1841 if (session_type == SESSION_TYPE_TX &&
1842 fdai->be_srate &&
1843 (fdai->be_srate != msm_bedais[reg].sample_rate)) {
1844 pr_debug("%s: flush strm %d diff BE rates\n",
1845 __func__, fdai->strm_id);
1846
1847 if (fdai->event_info.event_func)
1848 fdai->event_info.event_func(
1849 MSM_PCM_RT_EVT_BUF_RECFG,
1850 fdai->event_info.priv_data);
1851 fdai->be_srate = 0; /* might not need it */
1852 }
1853
1854 bits_per_sample = msm_routing_get_bit_width(
1855 msm_bedais[reg].format);
1856
1857 app_type =
1858 fe_dai_app_type_cfg[val][session_type][reg].app_type;
1859 if (app_type && is_lsm) {
1860 app_type_idx =
1861 msm_pcm_routing_get_lsm_app_type_idx(app_type);
1862 sample_rate =
1863 fe_dai_app_type_cfg[val][session_type][reg]
1864 .sample_rate;
1865 bits_per_sample =
1866 lsm_app_type_cfg[app_type_idx].bit_width;
1867 } else if (app_type) {
1868 app_type_idx =
1869 msm_pcm_routing_get_app_type_idx(app_type);
1870 sample_rate =
1871 fe_dai_app_type_cfg[val][session_type][reg]
1872 .sample_rate;
1873 bits_per_sample =
1874 app_type_cfg[app_type_idx].bit_width;
1875 } else
1876 sample_rate = msm_bedais[reg].sample_rate;
1877
1878 topology = msm_routing_get_adm_topology(val,
1879 session_type,
1880 reg);
1881 acdb_dev_id =
1882 fe_dai_app_type_cfg[val][session_type][reg].acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05301883 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301884 sample_rate, channels, topology,
1885 fdai->perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +05301886 app_type, acdb_dev_id,
1887 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301888 if ((copp_idx < 0) ||
1889 (copp_idx >= MAX_COPPS_PER_PORT)) {
1890 pr_err("%s: adm open failed\n", __func__);
1891 mutex_unlock(&routing_lock);
1892 return;
1893 }
1894 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
1895 __func__, val, session_type, reg);
1896 set_bit(copp_idx,
1897 &session_copp_map[val][session_type][reg]);
1898
1899 if (msm_is_resample_needed(
1900 sample_rate,
1901 msm_bedais[reg].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05301902 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301903 msm_bedais[reg].sample_rate);
1904
1905 if (session_type == SESSION_TYPE_RX &&
1906 fdai->event_info.event_func)
1907 fdai->event_info.event_func(
1908 MSM_PCM_RT_EVT_DEVSWITCH,
1909 fdai->event_info.priv_data);
1910
1911 msm_pcm_routing_build_matrix(val, session_type,
1912 path_type,
1913 fdai->perf_mode,
1914 passthr_mode);
1915 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
1916 (passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05301917 msm_pcm_routing_cfg_pp(port_id, copp_idx,
1918 topology, channels);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301919 }
1920 } else {
1921 if (test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
1922 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
1923 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
1924 voc_start_playback(set, msm_bedais[reg].port_id);
1925 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301926 if (msm_bedais[reg].active && fdai->strm_id !=
1927 INVALID_SESSION) {
1928 int idx;
1929 int port_id;
1930 unsigned long copp =
1931 session_copp_map[val][session_type][reg];
1932 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
1933 if (test_bit(idx, &copp))
1934 break;
1935
Vignesh Kulothungane59d3152018-10-10 14:19:59 -07001936 if (idx >= MAX_COPPS_PER_PORT) {
1937 pr_debug("%s: copp idx is invalid, exiting\n",
1938 __func__);
1939 mutex_unlock(&routing_lock);
1940 return;
1941 }
Surendar Karkae7507512018-07-20 15:46:54 +05301942 port_id = get_port_id(msm_bedais[reg].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301943 topology = adm_get_topology_for_port_copp_idx(port_id,
1944 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07001945 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +05301946 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301947 pr_debug("%s: copp: %ld, reset idx bit fe:%d, type: %d, be:%d topology=0x%x\n",
1948 __func__, copp, val, session_type, reg,
1949 topology);
1950 clear_bit(idx,
1951 &session_copp_map[val][session_type][reg]);
1952 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
1953 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
1954 (fdai->perf_mode == LEGACY_PCM_MODE) &&
1955 (passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05301956 msm_pcm_routing_deinit_pp(port_id, topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301957 msm_pcm_routing_build_matrix(val, session_type,
1958 path_type,
1959 fdai->perf_mode,
1960 passthr_mode);
1961 }
1962 }
1963 if ((msm_bedais[reg].port_id == VOICE_RECORD_RX)
1964 || (msm_bedais[reg].port_id == VOICE_RECORD_TX))
1965 voc_start_record(msm_bedais[reg].port_id, set, voc_session_id);
1966
1967 mutex_unlock(&routing_lock);
1968}
1969
1970static int msm_routing_get_audio_mixer(struct snd_kcontrol *kcontrol,
1971 struct snd_ctl_elem_value *ucontrol)
1972{
1973 struct soc_mixer_control *mc =
1974 (struct soc_mixer_control *)kcontrol->private_value;
1975
Meng Wang05d5e9a2018-03-28 16:45:03 +08001976 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301977 ucontrol->value.integer.value[0] = 1;
1978 else
1979 ucontrol->value.integer.value[0] = 0;
1980
Meng Wang05d5e9a2018-03-28 16:45:03 +08001981 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301982 ucontrol->value.integer.value[0]);
1983
1984 return 0;
1985}
1986
1987static int msm_routing_put_audio_mixer(struct snd_kcontrol *kcontrol,
1988 struct snd_ctl_elem_value *ucontrol)
1989{
Asish Bhattacharya34504582017-08-08 12:55:01 +05301990 struct snd_soc_dapm_widget *widget =
1991 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301992 struct soc_mixer_control *mc =
1993 (struct soc_mixer_control *)kcontrol->private_value;
1994 struct snd_soc_dapm_update *update = NULL;
1995
1996 if (ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08001997 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false) {
1998 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301999 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2000 update);
2001 } else if (!ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08002002 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true) {
2003 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302004 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2005 update);
2006 }
2007
2008 return 1;
2009}
2010
2011static int msm_routing_get_listen_mixer(struct snd_kcontrol *kcontrol,
2012 struct snd_ctl_elem_value *ucontrol)
2013{
2014 struct soc_mixer_control *mc =
2015 (struct soc_mixer_control *)kcontrol->private_value;
2016
Meng Wang05d5e9a2018-03-28 16:45:03 +08002017 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302018 ucontrol->value.integer.value[0] = 1;
2019 else
2020 ucontrol->value.integer.value[0] = 0;
2021
Meng Wang05d5e9a2018-03-28 16:45:03 +08002022 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302023 ucontrol->value.integer.value[0]);
2024
2025 return 0;
2026}
2027
2028static int msm_routing_put_listen_mixer(struct snd_kcontrol *kcontrol,
2029 struct snd_ctl_elem_value *ucontrol)
2030{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302031 struct snd_soc_dapm_widget *widget =
2032 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302033 struct soc_mixer_control *mc =
2034 (struct soc_mixer_control *)kcontrol->private_value;
2035 struct snd_soc_dapm_update *update = NULL;
2036
Meng Wang05d5e9a2018-03-28 16:45:03 +08002037 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302038 ucontrol->value.integer.value[0]);
2039
2040 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002041 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false)
2042 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302043 snd_soc_dapm_mixer_update_power(widget->dapm,
2044 kcontrol, 1, update);
2045 } else if (!ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002046 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true)
2047 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302048 snd_soc_dapm_mixer_update_power(widget->dapm,
2049 kcontrol, 0, update);
2050 }
2051
2052 return 1;
2053}
2054
2055static void msm_pcm_routing_process_voice(u16 reg, u16 val, int set)
2056{
2057 u32 session_id = 0;
2058 u16 path_type;
2059 struct media_format_info voc_be_media_format;
2060
2061 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
2062
2063 session_id = msm_pcm_routing_get_voc_sessionid(val);
2064
2065 pr_debug("%s: FE DAI 0x%x session_id 0x%x\n",
2066 __func__, val, session_id);
2067
2068 mutex_lock(&routing_lock);
2069
2070 if (set)
2071 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
2072 else
2073 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
2074
2075 if (val == MSM_FRONTEND_DAI_DTMF_RX &&
2076 afe_get_port_type(msm_bedais[reg].port_id) ==
2077 MSM_AFE_PORT_TYPE_RX) {
2078 pr_debug("%s(): set=%d port id=0x%x for dtmf generation\n",
2079 __func__, set, msm_bedais[reg].port_id);
2080 afe_set_dtmf_gen_rx_portid(msm_bedais[reg].port_id, set);
2081 }
2082
2083 if (afe_get_port_type(msm_bedais[reg].port_id) ==
2084 MSM_AFE_PORT_TYPE_RX)
2085 path_type = RX_PATH;
2086 else
2087 path_type = TX_PATH;
2088
2089 if (set) {
2090 if (msm_bedais[reg].active) {
2091 voc_set_route_flag(session_id, path_type, 1);
2092
2093 memset(&voc_be_media_format, 0,
2094 sizeof(struct media_format_info));
2095
2096 voc_be_media_format.port_id = msm_bedais[reg].port_id;
2097 voc_be_media_format.num_channels =
2098 msm_bedais[reg].channel;
2099 voc_be_media_format.sample_rate =
2100 msm_bedais[reg].sample_rate;
2101 voc_be_media_format.bits_per_sample =
2102 msm_bedais[reg].format;
2103 /* Defaulting this to 1 for voice call usecases */
2104 voc_be_media_format.channel_mapping[0] = 1;
2105
2106 voc_set_device_config(session_id, path_type,
2107 &voc_be_media_format);
2108
2109 if (voc_get_route_flag(session_id, TX_PATH) &&
2110 voc_get_route_flag(session_id, RX_PATH))
2111 voc_enable_device(session_id);
2112 } else {
2113 pr_debug("%s BE is not active\n", __func__);
2114 }
2115 } else {
2116 voc_set_route_flag(session_id, path_type, 0);
2117 voc_disable_device(session_id);
2118 }
2119
2120 mutex_unlock(&routing_lock);
2121
2122}
2123
2124static int msm_routing_get_voice_mixer(struct snd_kcontrol *kcontrol,
2125 struct snd_ctl_elem_value *ucontrol)
2126{
2127 struct soc_mixer_control *mc =
2128 (struct soc_mixer_control *)kcontrol->private_value;
2129
2130 mutex_lock(&routing_lock);
2131
Meng Wang05d5e9a2018-03-28 16:45:03 +08002132 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302133 ucontrol->value.integer.value[0] = 1;
2134 else
2135 ucontrol->value.integer.value[0] = 0;
2136
2137 mutex_unlock(&routing_lock);
2138
Meng Wang05d5e9a2018-03-28 16:45:03 +08002139 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302140 ucontrol->value.integer.value[0]);
2141
2142 return 0;
2143}
2144
2145static int msm_routing_put_voice_mixer(struct snd_kcontrol *kcontrol,
2146 struct snd_ctl_elem_value *ucontrol)
2147{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302148 struct snd_soc_dapm_widget *widget =
2149 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302150 struct soc_mixer_control *mc =
2151 (struct soc_mixer_control *)kcontrol->private_value;
2152 struct snd_soc_dapm_update *update = NULL;
2153
2154 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002155 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302156 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2157 update);
2158 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002159 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302160 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2161 update);
2162 }
2163
2164 return 1;
2165}
2166
2167static int msm_routing_get_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2168 struct snd_ctl_elem_value *ucontrol)
2169{
2170 struct soc_mixer_control *mc =
2171 (struct soc_mixer_control *)kcontrol->private_value;
2172
2173 mutex_lock(&routing_lock);
2174
Meng Wang05d5e9a2018-03-28 16:45:03 +08002175 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302176 ucontrol->value.integer.value[0] = 1;
2177 else
2178 ucontrol->value.integer.value[0] = 0;
2179
2180 mutex_unlock(&routing_lock);
2181
Meng Wang05d5e9a2018-03-28 16:45:03 +08002182 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302183 ucontrol->value.integer.value[0]);
2184
2185 return 0;
2186}
2187
2188static int msm_routing_put_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2189 struct snd_ctl_elem_value *ucontrol)
2190{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302191 struct snd_soc_dapm_widget *widget =
2192 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302193 struct soc_mixer_control *mc =
2194 (struct soc_mixer_control *)kcontrol->private_value;
2195 struct snd_soc_dapm_update *update = NULL;
2196
2197 if (ucontrol->value.integer.value[0]) {
2198 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002199 set_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302200 mutex_unlock(&routing_lock);
2201
2202 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2203 update);
2204 } else {
2205 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002206 clear_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302207 mutex_unlock(&routing_lock);
2208
2209 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2210 update);
2211 }
2212
Meng Wang05d5e9a2018-03-28 16:45:03 +08002213 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302214 ucontrol->value.integer.value[0]);
2215
2216 return 1;
2217}
2218
2219/*
2220 * Return the mapping between port ID and backend ID to enable the AFE callback
2221 * to determine the acdb_dev_id from the port id
2222 */
2223int msm_pcm_get_be_id_from_port_id(int port_id)
2224{
2225 int i;
2226 int be_id = -EINVAL;
2227
2228 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
2229 if (msm_bedais[i].port_id == port_id) {
2230 be_id = i;
2231 break;
2232 }
2233 }
2234
2235 return be_id;
2236}
2237
2238/*
2239 * Return the registered dev_acdb_id given a port ID to enable identifying the
2240 * correct AFE calibration information by comparing the header information.
2241 */
2242static int msm_pcm_get_dev_acdb_id_by_port_id(int port_id)
2243{
2244 int acdb_id = -EINVAL;
2245 int i = 0;
2246 int session;
2247 int port_type = afe_get_port_type(port_id);
2248 int be_id = msm_pcm_get_be_id_from_port_id(port_id);
2249
2250 pr_debug("%s:port_id %d be_id %d, port_type 0x%x\n",
2251 __func__, port_id, be_id, port_type);
2252
2253 if (port_type == MSM_AFE_PORT_TYPE_TX) {
2254 session = SESSION_TYPE_TX;
2255 } else if (port_type == MSM_AFE_PORT_TYPE_RX) {
2256 session = SESSION_TYPE_RX;
2257 } else {
2258 pr_err("%s: Invalid port type %d\n", __func__, port_type);
2259 acdb_id = -EINVAL;
2260 goto exit;
2261 }
2262
2263 if (be_id < 0) {
2264 pr_err("%s: Error getting backend id %d\n", __func__, be_id);
2265 goto exit;
2266 }
2267
2268 mutex_lock(&routing_lock);
2269 i = find_first_bit(&msm_bedais[be_id].fe_sessions[0],
2270 MSM_FRONTEND_DAI_MAX);
2271 if (i < MSM_FRONTEND_DAI_MAX)
2272 acdb_id = fe_dai_app_type_cfg[i][session][be_id].acdb_dev_id;
2273
2274 pr_debug("%s: FE[%d] session[%d] BE[%d] acdb_id(%d)\n",
2275 __func__, i, session, be_id, acdb_id);
2276 mutex_unlock(&routing_lock);
2277exit:
2278 return acdb_id;
2279}
2280
2281static int msm_routing_get_switch_mixer(struct snd_kcontrol *kcontrol,
2282 struct snd_ctl_elem_value *ucontrol)
2283{
2284 ucontrol->value.integer.value[0] = fm_switch_enable;
2285 pr_debug("%s: FM Switch enable %ld\n", __func__,
2286 ucontrol->value.integer.value[0]);
2287 return 0;
2288}
2289
2290static int msm_routing_put_switch_mixer(struct snd_kcontrol *kcontrol,
2291 struct snd_ctl_elem_value *ucontrol)
2292{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302293 struct snd_soc_dapm_widget *widget =
2294 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302295 struct snd_soc_dapm_update *update = NULL;
2296
2297 pr_debug("%s: FM Switch enable %ld\n", __func__,
2298 ucontrol->value.integer.value[0]);
2299 if (ucontrol->value.integer.value[0])
2300 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2301 update);
2302 else
2303 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2304 update);
2305 fm_switch_enable = ucontrol->value.integer.value[0];
2306 return 1;
2307}
2308
2309static int msm_routing_get_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2310 struct snd_ctl_elem_value *ucontrol)
2311{
2312 ucontrol->value.integer.value[0] = hfp_switch_enable;
2313 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2314 ucontrol->value.integer.value[0]);
2315 return 0;
2316}
2317
2318static int msm_routing_put_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2319 struct snd_ctl_elem_value *ucontrol)
2320{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302321 struct snd_soc_dapm_widget *widget =
2322 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302323 struct snd_soc_dapm_update *update = NULL;
2324
2325 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2326 ucontrol->value.integer.value[0]);
2327 if (ucontrol->value.integer.value[0])
2328 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2329 1, update);
2330 else
2331 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2332 0, update);
2333 hfp_switch_enable = ucontrol->value.integer.value[0];
2334 return 1;
2335}
2336
Aniket Kumar Latac0c31472018-02-22 14:46:09 -08002337static int msm_routing_a2dp_switch_mixer_get(struct snd_kcontrol *kcontrol,
2338 struct snd_ctl_elem_value *ucontrol)
2339{
2340 ucontrol->value.integer.value[0] = a2dp_switch_enable;
2341 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2342 ucontrol->value.integer.value[0]);
2343 return 0;
2344}
2345
2346static int msm_routing_a2dp_switch_mixer_put(struct snd_kcontrol *kcontrol,
2347 struct snd_ctl_elem_value *ucontrol)
2348{
2349 struct snd_soc_dapm_widget *widget =
2350 snd_soc_dapm_kcontrol_widget(kcontrol);
2351 struct snd_soc_dapm_update *update = NULL;
2352
2353 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2354 ucontrol->value.integer.value[0]);
2355 a2dp_switch_enable = ucontrol->value.integer.value[0];
2356 if (a2dp_switch_enable)
2357 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2358 1, update);
2359 else
2360 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2361 0, update);
2362 return 1;
2363}
2364
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302365static int msm_routing_get_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2366 struct snd_ctl_elem_value *ucontrol)
2367{
2368 ucontrol->value.integer.value[0] = int0_mi2s_switch_enable;
2369 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2370 ucontrol->value.integer.value[0]);
2371 return 0;
2372}
2373
2374static int msm_routing_put_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2375 struct snd_ctl_elem_value *ucontrol)
2376{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302377 struct snd_soc_dapm_widget *widget =
2378 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302379 struct snd_soc_dapm_update *update = NULL;
2380
2381 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2382 ucontrol->value.integer.value[0]);
2383 if (ucontrol->value.integer.value[0])
2384 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2385 update);
2386 else
2387 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2388 update);
2389 int0_mi2s_switch_enable = ucontrol->value.integer.value[0];
2390 return 1;
2391}
2392
2393static int msm_routing_get_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2394 struct snd_ctl_elem_value *ucontrol)
2395{
2396 ucontrol->value.integer.value[0] = int4_mi2s_switch_enable;
2397 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2398 ucontrol->value.integer.value[0]);
2399 return 0;
2400}
2401
2402static int msm_routing_put_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2403 struct snd_ctl_elem_value *ucontrol)
2404{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302405 struct snd_soc_dapm_widget *widget =
2406 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302407 struct snd_soc_dapm_update *update = NULL;
2408
2409 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2410 ucontrol->value.integer.value[0]);
2411 if (ucontrol->value.integer.value[0])
2412 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2413 update);
2414 else
2415 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2416 update);
2417 int4_mi2s_switch_enable = ucontrol->value.integer.value[0];
2418 return 1;
2419}
2420
2421static int msm_routing_get_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2422 struct snd_ctl_elem_value *ucontrol)
2423{
2424 ucontrol->value.integer.value[0] = usb_switch_enable;
2425 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2426 ucontrol->value.integer.value[0]);
2427 return 0;
2428}
2429
2430static int msm_routing_put_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2431 struct snd_ctl_elem_value *ucontrol)
2432{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302433 struct snd_soc_dapm_widget *widget =
2434 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302435 struct snd_soc_dapm_update *update = NULL;
2436
2437 pr_debug("%s: USB Switch enable %ld\n", __func__,
2438 ucontrol->value.integer.value[0]);
2439 if (ucontrol->value.integer.value[0])
2440 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2441 1, update);
2442 else
2443 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2444 0, update);
2445 usb_switch_enable = ucontrol->value.integer.value[0];
2446 return 1;
2447}
2448
2449static int msm_routing_get_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2450 struct snd_ctl_elem_value *ucontrol)
2451{
2452 ucontrol->value.integer.value[0] = pri_mi2s_switch_enable;
2453 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2454 ucontrol->value.integer.value[0]);
2455 return 0;
2456}
2457
2458static int msm_routing_put_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2459 struct snd_ctl_elem_value *ucontrol)
2460{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302461 struct snd_soc_dapm_widget *widget =
2462 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302463 struct snd_soc_dapm_update *update = NULL;
2464
2465 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2466 ucontrol->value.integer.value[0]);
2467 if (ucontrol->value.integer.value[0])
2468 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2469 update);
2470 else
2471 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2472 update);
2473 pri_mi2s_switch_enable = ucontrol->value.integer.value[0];
2474 return 1;
2475}
2476
2477static int msm_routing_get_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2478 struct snd_ctl_elem_value *ucontrol)
2479{
2480 ucontrol->value.integer.value[0] = sec_mi2s_switch_enable;
2481 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2482 ucontrol->value.integer.value[0]);
2483 return 0;
2484}
2485
2486static int msm_routing_put_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2487 struct snd_ctl_elem_value *ucontrol)
2488{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302489 struct snd_soc_dapm_widget *widget =
2490 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302491 struct snd_soc_dapm_update *update = NULL;
2492
2493 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2494 ucontrol->value.integer.value[0]);
2495 if (ucontrol->value.integer.value[0])
2496 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2497 update);
2498 else
2499 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2500 update);
2501 sec_mi2s_switch_enable = ucontrol->value.integer.value[0];
2502 return 1;
2503}
2504
2505static int msm_routing_get_tert_mi2s_switch_mixer(
2506 struct snd_kcontrol *kcontrol,
2507 struct snd_ctl_elem_value *ucontrol)
2508{
2509 ucontrol->value.integer.value[0] = tert_mi2s_switch_enable;
2510 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2511 ucontrol->value.integer.value[0]);
2512 return 0;
2513}
2514
2515static int msm_routing_put_tert_mi2s_switch_mixer(
2516 struct snd_kcontrol *kcontrol,
2517 struct snd_ctl_elem_value *ucontrol)
2518{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302519 struct snd_soc_dapm_widget *widget =
2520 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302521 struct snd_soc_dapm_update *update = NULL;
2522
2523 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2524 ucontrol->value.integer.value[0]);
2525 if (ucontrol->value.integer.value[0])
2526 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2527 update);
2528 else
2529 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2530 update);
2531 tert_mi2s_switch_enable = ucontrol->value.integer.value[0];
2532 return 1;
2533}
2534
2535static int msm_routing_get_quat_mi2s_switch_mixer(
2536 struct snd_kcontrol *kcontrol,
2537 struct snd_ctl_elem_value *ucontrol)
2538{
2539 ucontrol->value.integer.value[0] = quat_mi2s_switch_enable;
2540 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2541 ucontrol->value.integer.value[0]);
2542 return 0;
2543}
2544
2545static int msm_routing_put_quat_mi2s_switch_mixer(
2546 struct snd_kcontrol *kcontrol,
2547 struct snd_ctl_elem_value *ucontrol)
2548{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302549 struct snd_soc_dapm_widget *widget =
2550 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302551 struct snd_soc_dapm_update *update = NULL;
2552
2553 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2554 ucontrol->value.integer.value[0]);
2555 if (ucontrol->value.integer.value[0])
2556 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2557 update);
2558 else
2559 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2560 update);
2561 quat_mi2s_switch_enable = ucontrol->value.integer.value[0];
2562 return 1;
2563}
2564
Rohit Kumara5077932017-09-10 22:05:05 +05302565static int msm_routing_get_quin_mi2s_switch_mixer(
2566 struct snd_kcontrol *kcontrol,
2567 struct snd_ctl_elem_value *ucontrol)
2568{
2569 ucontrol->value.integer.value[0] = quin_mi2s_switch_enable;
2570 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2571 ucontrol->value.integer.value[0]);
2572 return 0;
2573}
2574
2575static int msm_routing_put_quin_mi2s_switch_mixer(
2576 struct snd_kcontrol *kcontrol,
2577 struct snd_ctl_elem_value *ucontrol)
2578{
2579 struct snd_soc_dapm_widget *widget =
2580 snd_soc_dapm_kcontrol_widget(kcontrol);
2581 struct snd_soc_dapm_update *update = NULL;
2582
2583 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2584 ucontrol->value.integer.value[0]);
2585 if (ucontrol->value.integer.value[0])
2586 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2587 update);
2588 else
2589 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2590 update);
2591 quin_mi2s_switch_enable = ucontrol->value.integer.value[0];
2592 return 1;
2593}
2594
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302595static int msm_routing_get_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2596 struct snd_ctl_elem_value *ucontrol)
2597{
2598 ucontrol->value.integer.value[0] = fm_pcmrx_switch_enable;
2599 pr_debug("%s: FM Switch enable %ld\n", __func__,
2600 ucontrol->value.integer.value[0]);
2601 return 0;
2602}
2603
2604static int msm_routing_put_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2605 struct snd_ctl_elem_value *ucontrol)
2606{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302607 struct snd_soc_dapm_widget *widget =
2608 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302609 struct snd_soc_dapm_update *update = NULL;
2610
2611 pr_debug("%s: FM Switch enable %ld\n", __func__,
2612 ucontrol->value.integer.value[0]);
2613 if (ucontrol->value.integer.value[0])
2614 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2615 update);
2616 else
2617 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2618 update);
2619 fm_pcmrx_switch_enable = ucontrol->value.integer.value[0];
2620 return 1;
2621}
2622
2623static int msm_routing_lsm_port_get(struct snd_kcontrol *kcontrol,
2624 struct snd_ctl_elem_value *ucontrol)
2625{
2626 ucontrol->value.integer.value[0] = lsm_port_index;
2627 return 0;
2628}
2629
2630static int msm_routing_lsm_port_put(struct snd_kcontrol *kcontrol,
2631 struct snd_ctl_elem_value *ucontrol)
2632{
2633 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
2634 int mux = ucontrol->value.enumerated.item[0];
2635 int lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2636
2637 if (mux >= e->items) {
2638 pr_err("%s: Invalid mux value %d\n", __func__, mux);
2639 return -EINVAL;
2640 }
2641
2642 pr_debug("%s: LSM enable %ld\n", __func__,
2643 ucontrol->value.integer.value[0]);
2644 switch (ucontrol->value.integer.value[0]) {
2645 case 1:
2646 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_0_TX;
2647 break;
2648 case 2:
2649 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_1_TX;
2650 break;
2651 case 3:
2652 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_2_TX;
2653 break;
2654 case 4:
2655 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_3_TX;
2656 break;
2657 case 5:
2658 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_4_TX;
2659 break;
2660 case 6:
2661 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2662 break;
2663 case 7:
2664 lsm_port = AFE_PORT_ID_TERTIARY_MI2S_TX;
2665 break;
2666 case 8:
2667 lsm_port = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2668 break;
2669 case 9:
2670 lsm_port = ADM_LSM_PORT_ID;
2671 break;
2672 case 10:
2673 lsm_port = AFE_PORT_ID_INT3_MI2S_TX;
2674 break;
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +05302675 case 11:
2676 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
2677 break;
2678 case 12:
2679 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_1;
2680 break;
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302681 case 13:
2682 lsm_port = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
2683 break;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05302684 case 14:
2685 lsm_port = AFE_PORT_ID_QUINARY_TDM_TX;
2686 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302687 default:
2688 pr_err("Default lsm port");
2689 break;
2690 }
2691 set_lsm_port(lsm_port);
2692 lsm_port_index = ucontrol->value.integer.value[0];
2693
2694 return 0;
2695}
2696
2697static int msm_routing_lsm_func_get(struct snd_kcontrol *kcontrol,
2698 struct snd_ctl_elem_value *ucontrol)
2699{
2700 int i;
2701 u16 port_id;
2702 enum afe_mad_type mad_type;
2703
2704 pr_debug("%s: enter\n", __func__);
2705 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
2706 if (!strnstr(kcontrol->id.name, lsm_port_text[i],
2707 strlen(lsm_port_text[i])))
2708 break;
2709
2710 if (i-- == ARRAY_SIZE(lsm_port_text)) {
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07002711 pr_warn("%s: Invalid id name %s\n", __func__,
2712 kcontrol->id.name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302713 return -EINVAL;
2714 }
2715
2716 port_id = i * 2 + 1 + SLIMBUS_0_RX;
2717
2718 /*Check for Tertiary/Quaternary/INT3 TX port*/
2719 if (strnstr(kcontrol->id.name, lsm_port_text[7],
2720 strlen(lsm_port_text[7])))
2721 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
2722
2723 if (strnstr(kcontrol->id.name, lsm_port_text[8],
2724 strlen(lsm_port_text[8])))
2725 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2726
2727 if (strnstr(kcontrol->id.name, lsm_port_text[10],
2728 strlen(lsm_port_text[10])))
2729 port_id = AFE_PORT_ID_INT3_MI2S_TX;
2730
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302731 if (strnstr(kcontrol->id.name, lsm_port_text[13],
2732 strlen(lsm_port_text[13])))
2733 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
2734
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05302735 if (strnstr(kcontrol->id.name, lsm_port_text[14],
2736 strlen(lsm_port_text[14])))
2737 port_id = AFE_PORT_ID_QUINARY_TDM_TX;
2738
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302739 mad_type = afe_port_get_mad_type(port_id);
2740 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
2741 mad_type);
2742 switch (mad_type) {
2743 case MAD_HW_NONE:
2744 ucontrol->value.integer.value[0] = MADNONE;
2745 break;
2746 case MAD_HW_AUDIO:
2747 ucontrol->value.integer.value[0] = MADAUDIO;
2748 break;
2749 case MAD_HW_BEACON:
2750 ucontrol->value.integer.value[0] = MADBEACON;
2751 break;
2752 case MAD_HW_ULTRASOUND:
2753 ucontrol->value.integer.value[0] = MADULTRASOUND;
2754 break;
2755 case MAD_SW_AUDIO:
2756 ucontrol->value.integer.value[0] = MADSWAUDIO;
2757 break;
2758 default:
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07002759 pr_warn("%s: Unknown\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302760 return -EINVAL;
2761 }
2762 return 0;
2763}
2764
2765static int msm_routing_lsm_func_put(struct snd_kcontrol *kcontrol,
2766 struct snd_ctl_elem_value *ucontrol)
2767{
2768 int i;
2769 u16 port_id;
2770 enum afe_mad_type mad_type;
2771
2772 pr_debug("%s: enter\n", __func__);
2773 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
2774 if (strnstr(kcontrol->id.name, lsm_port_text[i],
2775 strlen(lsm_port_text[i])))
2776 break;
2777
2778 if (i-- == ARRAY_SIZE(lsm_port_text)) {
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07002779 pr_warn("%s: Invalid id name %s\n", __func__,
2780 kcontrol->id.name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302781 return -EINVAL;
2782 }
2783
2784 port_id = i * 2 + 1 + SLIMBUS_0_RX;
2785 switch (ucontrol->value.integer.value[0]) {
2786 case MADNONE:
2787 mad_type = MAD_HW_NONE;
2788 break;
2789 case MADAUDIO:
2790 mad_type = MAD_HW_AUDIO;
2791 break;
2792 case MADBEACON:
2793 mad_type = MAD_HW_BEACON;
2794 break;
2795 case MADULTRASOUND:
2796 mad_type = MAD_HW_ULTRASOUND;
2797 break;
2798 case MADSWAUDIO:
2799 mad_type = MAD_SW_AUDIO;
2800 break;
2801 default:
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07002802 pr_warn("%s: Unknown\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302803 return -EINVAL;
2804 }
2805
2806 /*Check for Tertiary/Quaternary/INT3 TX port*/
2807 if (strnstr(kcontrol->id.name, lsm_port_text[7],
2808 strlen(lsm_port_text[7])))
2809 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
2810
2811 if (strnstr(kcontrol->id.name, lsm_port_text[8],
2812 strlen(lsm_port_text[8])))
2813 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2814
2815 if (strnstr(kcontrol->id.name, lsm_port_text[10],
2816 strlen(lsm_port_text[10])))
2817 port_id = AFE_PORT_ID_INT3_MI2S_TX;
2818
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302819 if (strnstr(kcontrol->id.name, lsm_port_text[13],
2820 strlen(lsm_port_text[13])))
2821 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
2822
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05302823 if (strnstr(kcontrol->id.name, lsm_port_text[14],
2824 strlen(lsm_port_text[14])))
2825 port_id = AFE_PORT_ID_QUINARY_TDM_TX;
2826
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302827 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
2828 mad_type);
2829 return afe_port_set_mad_type(port_id, mad_type);
2830}
2831
2832static const char *const adm_override_chs_text[] = {"Zero", "One", "Two"};
2833
2834static SOC_ENUM_SINGLE_EXT_DECL(slim_7_rx_adm_override_chs,
2835 adm_override_chs_text);
2836
2837static int msm_routing_adm_get_backend_idx(struct snd_kcontrol *kcontrol)
2838{
2839 int backend_id;
2840
2841 if (strnstr(kcontrol->id.name, "SLIM7_RX", sizeof("SLIM7_RX"))) {
2842 backend_id = MSM_BACKEND_DAI_SLIMBUS_7_RX;
2843 } else {
2844 pr_err("%s: unsupported backend id: %s",
2845 __func__, kcontrol->id.name);
2846 return -EINVAL;
2847 }
2848
2849 return backend_id;
2850}
2851static int msm_routing_adm_channel_config_get(
2852 struct snd_kcontrol *kcontrol,
2853 struct snd_ctl_elem_value *ucontrol)
2854{
2855 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
2856
2857 if (backend_id >= 0) {
2858 mutex_lock(&routing_lock);
2859 ucontrol->value.integer.value[0] =
2860 msm_bedais[backend_id].adm_override_ch;
2861 pr_debug("%s: adm channel count %ld for BE:%d\n", __func__,
2862 ucontrol->value.integer.value[0], backend_id);
2863 mutex_unlock(&routing_lock);
2864 }
2865
2866 return 0;
2867}
2868
2869static int msm_routing_adm_channel_config_put(
2870 struct snd_kcontrol *kcontrol,
2871 struct snd_ctl_elem_value *ucontrol)
2872{
2873 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
2874
2875 if (backend_id >= 0) {
2876 mutex_lock(&routing_lock);
2877 msm_bedais[backend_id].adm_override_ch =
2878 ucontrol->value.integer.value[0];
2879 pr_debug("%s:updating BE :%d adm channels: %d\n",
2880 __func__, backend_id,
2881 msm_bedais[backend_id].adm_override_ch);
2882 mutex_unlock(&routing_lock);
2883 }
2884
2885 return 0;
2886}
2887
2888static const struct snd_kcontrol_new adm_channel_config_controls[] = {
2889 SOC_ENUM_EXT("SLIM7_RX ADM Channels", slim_7_rx_adm_override_chs,
2890 msm_routing_adm_channel_config_get,
2891 msm_routing_adm_channel_config_put),
2892};
2893
2894static int msm_routing_slim_0_rx_aanc_mux_get(struct snd_kcontrol *kcontrol,
2895 struct snd_ctl_elem_value *ucontrol)
2896{
2897
2898 mutex_lock(&routing_lock);
2899 ucontrol->value.integer.value[0] = slim0_rx_aanc_fb_port;
2900 mutex_unlock(&routing_lock);
2901 pr_debug("%s: AANC Mux Port %ld\n", __func__,
2902 ucontrol->value.integer.value[0]);
2903 return 0;
2904};
2905
2906static int msm_routing_slim_0_rx_aanc_mux_put(struct snd_kcontrol *kcontrol,
2907 struct snd_ctl_elem_value *ucontrol)
2908{
2909 struct aanc_data aanc_info;
2910
2911 mutex_lock(&routing_lock);
2912 memset(&aanc_info, 0x00, sizeof(aanc_info));
2913 pr_debug("%s: AANC Mux Port %ld\n", __func__,
2914 ucontrol->value.integer.value[0]);
2915 slim0_rx_aanc_fb_port = ucontrol->value.integer.value[0];
2916 if (ucontrol->value.integer.value[0] == 0) {
2917 aanc_info.aanc_active = false;
2918 aanc_info.aanc_tx_port = 0;
2919 aanc_info.aanc_rx_port = 0;
2920 } else {
2921 aanc_info.aanc_active = true;
2922 aanc_info.aanc_rx_port = SLIMBUS_0_RX;
2923 aanc_info.aanc_tx_port =
2924 (SLIMBUS_0_RX - 1 + (slim0_rx_aanc_fb_port * 2));
2925 }
2926 afe_set_aanc_info(&aanc_info);
2927 mutex_unlock(&routing_lock);
2928 return 0;
2929};
2930static int msm_routing_get_port_mixer(struct snd_kcontrol *kcontrol,
2931 struct snd_ctl_elem_value *ucontrol)
2932{
2933 int idx = 0, shift = 0;
2934 struct soc_mixer_control *mc =
2935 (struct soc_mixer_control *)kcontrol->private_value;
2936
Meng Wang05d5e9a2018-03-28 16:45:03 +08002937 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
2938 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302939
2940 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
2941 pr_err("%s: Invalid idx = %d\n", __func__, idx);
2942 return -EINVAL;
2943 }
2944
2945 if (test_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08002946 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302947 ucontrol->value.integer.value[0] = 1;
2948 else
2949 ucontrol->value.integer.value[0] = 0;
2950
Meng Wang05d5e9a2018-03-28 16:45:03 +08002951 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302952 ucontrol->value.integer.value[0]);
2953
2954 return 0;
2955}
2956
2957static int msm_routing_put_port_mixer(struct snd_kcontrol *kcontrol,
2958 struct snd_ctl_elem_value *ucontrol)
2959{
2960 int idx = 0, shift = 0;
2961 struct soc_mixer_control *mc =
2962 (struct soc_mixer_control *)kcontrol->private_value;
2963
Meng Wang05d5e9a2018-03-28 16:45:03 +08002964 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
2965 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302966
2967 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
2968 pr_err("%s: Invalid idx = %d\n", __func__, idx);
2969 return -EINVAL;
2970 }
2971
Meng Wang05d5e9a2018-03-28 16:45:03 +08002972 pr_debug("%s: shift 0x%x rshift 0x%x val %ld idx %d reminder shift %d\n",
2973 __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302974 ucontrol->value.integer.value[0], idx, shift);
2975
2976 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002977 afe_loopback(1, msm_bedais[mc->shift].port_id,
2978 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302979 set_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08002980 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302981 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002982 afe_loopback(0, msm_bedais[mc->shift].port_id,
2983 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302984 clear_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08002985 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302986 }
2987
2988 return 1;
2989}
2990
2991static int msm_pcm_get_channel_rule_index(struct snd_kcontrol *kcontrol,
2992 struct snd_ctl_elem_value *ucontrol)
2993{
2994 u16 fe_id = 0;
2995
2996 fe_id = ((struct soc_mixer_control *)
2997 kcontrol->private_value)->shift;
2998 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
2999 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3000 return -EINVAL;
3001 }
3002
3003 ucontrol->value.integer.value[0] = channel_mixer[fe_id].rule;
3004
3005 return 0;
3006}
3007
3008static int msm_pcm_put_channel_rule_index(struct snd_kcontrol *kcontrol,
3009 struct snd_ctl_elem_value *ucontrol)
3010{
3011 u16 fe_id = 0;
3012
3013 fe_id = ((struct soc_mixer_control *)
3014 kcontrol->private_value)->shift;
3015 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3016 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3017 return -EINVAL;
3018 }
3019
3020 channel_mixer[fe_id].rule = ucontrol->value.integer.value[0];
3021
3022 return 1;
3023}
3024
3025static int msm_pcm_get_out_chs(struct snd_kcontrol *kcontrol,
3026 struct snd_ctl_elem_value *ucontrol)
3027{
3028 u16 fe_id = 0;
3029
3030 fe_id = ((struct soc_multi_mixer_control *)
3031 kcontrol->private_value)->shift;
3032 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3033 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3034 return -EINVAL;
3035 }
3036
3037 ucontrol->value.integer.value[0] =
3038 channel_mixer[fe_id].output_channel;
3039 return 0;
3040}
3041
3042static int msm_pcm_put_out_chs(struct snd_kcontrol *kcontrol,
3043 struct snd_ctl_elem_value *ucontrol)
3044{
3045 u16 fe_id = 0;
3046
3047 fe_id = ((struct soc_multi_mixer_control *)
3048 kcontrol->private_value)->shift;
3049 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3050 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3051 return -EINVAL;
3052 }
3053
3054 pr_debug("%s: fe_id is %d, output channels = %d\n", __func__,
3055 fe_id,
3056 (unsigned int)(ucontrol->value.integer.value[0]));
3057 channel_mixer[fe_id].output_channel =
3058 (unsigned int)(ucontrol->value.integer.value[0]);
3059
3060 return 1;
3061}
3062
3063static const char *const ch_mixer[] = {"Disable", "Enable"};
3064
3065/* If new backend is added, need update this array */
3066static const char *const be_name[] = {
3067"ZERO", "PRI_I2S_RX", "PRI_I2S_TX", "SLIM_0_RX",
3068"SLIM_0_TX", "HDMI_RX", "INT_BT_SCO_RX", "INT_BT_SCO_TX",
3069"INT_FM_RX", "INT_FM_TX", "AFE_PCM_RX", "AFE_PCM_TX",
3070"AUXPCM_RX", "AUXPCM_TX", "VOICE_PLAYBACK_TX", "VOICE2_PLAYBACK_TX",
3071"INCALL_RECORD_RX", "INCALL_RECORD_TX", "MI2S_RX", "MI2S_TX",
3072"SEC_I2S_RX", "SLIM_1_RX", "SLIM_1_TX", "SLIM_2_RX",
3073"SLIM_2_TX", "SLIM_3_RX", "SLIM_3_TX", "SLIM_4_RX",
3074"SLIM_4_TX", "SLIM_5_RX", "SLIM_5_TX", "SLIM_6_RX",
3075"SLIM_6_TX", "SLIM_7_RX", "SLIM_7_TX", "SLIM_8_RX",
3076"SLIM_8_TX", "EXTPROC_RX", "EXTPROC_TX", "EXPROC_EC_TX",
3077"QUAT_MI2S_RX", "QUAT_MI2S_TX", "SECOND_MI2S_RX", "SECOND_MI2S_TX",
3078"PRI_MI2S_RX", "PRI_MI2S_TX", "TERT_MI2S_RX", "TERT_MI2S_TX",
Ralf Herzc8701f72018-06-20 11:37:35 +02003079"AUDIO_I2S_RX", "SEC_AUXPCM_RX", "SEC_AUXPCM_TX", "PRI_SPDIF_RX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303080"SECOND_MI2S_RX_SD1", "QUIN_MI2S_RX", "QUIN_MI2S_TX", "SENARY_MI2S_TX",
3081"PRI_TDM_RX_0", "PRI_TDM_TX_0", "PRI_TDM_RX_1", "PRI_TDM_TX_1",
3082"PRI_TDM_RX_2", "PRI_TDM_TX_2", "PRI_TDM_RX_3", "PRI_TDM_TX_3",
3083"PRI_TDM_RX_4", "PRI_TDM_TX_4", "PRI_TDM_RX_5", "PRI_TDM_TX_5",
3084"PRI_TDM_RX_6", "PRI_TDM_TX_6", "PRI_TDM_RX_7", "PRI_TDM_TX_7",
3085"SEC_TDM_RX_0", "SEC_TDM_TX_0", "SEC_TDM_RX_1", "SEC_TDM_TX_1",
3086"SEC_TDM_RX_2", "SEC_TDM_TX_2", "SEC_TDM_RX_3", "SEC_TDM_TX_3",
3087"SEC_TDM_RX_4", "SEC_TDM_TX_4", "SEC_TDM_RX_5", "SEC_TDM_TX_5",
3088"SEC_TDM_RX_6", "SEC_TDM_TX_6", "SEC_TDM_RX_7", "SEC_TDM_TX_7",
3089"TERT_TDM_RX_0", "TERT_TDM_TX_0", "TERT_TDM_RX_1", "TERT_TDM_TX_1",
3090"TERT_TDM_RX_2", "TERT_TDM_TX_2", "TERT_TDM_RX_3", "TERT_TDM_TX_3",
3091"TERT_TDM_RX_4", "TERT_TDM_TX_4", "TERT_TDM_RX_5", "TERT_TDM_TX_5",
3092"TERT_TDM_RX_6", "TERT_TDM_TX_6", "TERT_TDM_RX_7", "TERT_TDM_TX_7",
3093"QUAT_TDM_RX_0", "QUAT_TDM_TX_0", "QUAT_TDM_RX_1", "QUAT_TDM_TX_1",
3094"QUAT_TDM_RX_2", "QUAT_TDM_TX_2", "QUAT_TDM_RX_3", "QUAT_TDM_TX_3",
3095"QUAT_TDM_RX_4", "QUAT_TDM_TX_4", "QUAT_TDM_RX_5", "QUAT_TDM_TX_5",
3096"QUAT_TDM_RX_6", "QUAT_TDM_TX_6", "QUAT_TDM_RX_7", "QUAT_TDM_TX_7",
Rohit Kumara5077932017-09-10 22:05:05 +05303097"QUIN_TDM_RX_0", "QUIN_TDM_TX_0", "QUIN_TDM_RX_1", "QUIN_TDM_TX_1",
3098"QUIN_TDM_RX_2", "QUIN_TDM_TX_2", "QUIN_TDM_RX_3", "QUIN_TDM_TX_3",
3099"QUIN_TDM_RX_4", "QUIN_TDM_TX_4", "QUIN_TDM_RX_5", "QUIN_TDM_TX_5",
3100"QUIN_TDM_RX_6", "QUIN_TDM_TX_6", "QUIN_TDM_RX_7", "QUIN_TDM_TX_7",
Karthikeyan Mani57550082018-05-03 18:43:58 -07003101"INT_BT_A2DP_RX", "USB_RX", "USB_TX", "DISPLAY_PORT_RX", "DISPLAY_PORT_RX1",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303102"TERT_AUXPCM_RX", "TERT_AUXPCM_TX", "QUAT_AUXPCM_RX", "QUAT_AUXPCM_TX",
Rohit Kumara5077932017-09-10 22:05:05 +05303103"QUIN_AUXPCM_RX", "QUIN_AUXPCM_TX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303104"INT0_MI2S_RX", "INT0_MI2S_TX", "INT1_MI2S_RX", "INT1_MI2S_TX",
3105"INT2_MI2S_RX", "INT2_MI2S_TX", "INT3_MI2S_RX", "INT3_MI2S_TX",
3106"INT4_MI2S_RX", "INT4_MI2S_TX", "INT5_MI2S_RX", "INT5_MI2S_TX",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303107"INT6_MI2S_RX", "INT6_MI2S_TX", "WSA_CDC_DMA_RX_0",
3108"WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_RX_1", "WSA_CDC_DMA_TX_1",
Ralf Herzc8701f72018-06-20 11:37:35 +02003109"WSA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_1",
Aditya Bavanari1e84a932018-06-18 19:40:08 +05303110"RX_CDC_DMA_RX_0", "TX_CDC_DMA_TX_0", "RX_CDC_DMA_RX_1", "TX_CDC_DMA_TX_1",
3111"RX_CDC_DMA_RX_2", "TX_CDC_DMA_TX_2", "RX_CDC_DMA_RX_3", "TX_CDC_DMA_TX_3",
3112"RX_CDC_DMA_RX_4", "TX_CDC_DMA_TX_4", "RX_CDC_DMA_RX_5", "TX_CDC_DMA_TX_5",
3113"RX_CDC_DMA_RX_6", "RX_CDC_DMA_RX_7",
3114"PRI_SPDIF_TX", "SEC_SPDIF_RX", "SEC_SPDIF_TX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303115};
3116
3117static SOC_ENUM_SINGLE_DECL(mm1_channel_mux,
3118 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, ch_mixer);
3119static SOC_ENUM_SINGLE_DECL(mm2_channel_mux,
3120 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA2, ch_mixer);
3121static SOC_ENUM_SINGLE_DECL(mm3_channel_mux,
3122 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA3, ch_mixer);
3123static SOC_ENUM_SINGLE_DECL(mm4_channel_mux,
3124 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA4, ch_mixer);
3125
3126static SOC_ENUM_DOUBLE_DECL(mm1_ch1_enum,
3127 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 0, be_name);
3128static SOC_ENUM_DOUBLE_DECL(mm1_ch2_enum,
3129 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 1, be_name);
3130static SOC_ENUM_DOUBLE_DECL(mm1_ch3_enum,
3131 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 2, be_name);
3132static SOC_ENUM_DOUBLE_DECL(mm1_ch4_enum,
3133 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 3, be_name);
3134static SOC_ENUM_DOUBLE_DECL(mm1_ch5_enum,
3135 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 4, be_name);
3136static SOC_ENUM_DOUBLE_DECL(mm1_ch6_enum,
3137 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 5, be_name);
3138static SOC_ENUM_DOUBLE_DECL(mm1_ch7_enum,
3139 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 6, be_name);
3140static SOC_ENUM_DOUBLE_DECL(mm1_ch8_enum,
3141 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 7, be_name);
3142
3143static int msm_pcm_get_ctl_enum_info(struct snd_ctl_elem_info *uinfo,
3144 unsigned int channels,
3145 unsigned int items, const char *const names[])
3146{
3147 if (uinfo->value.enumerated.item >= items)
3148 uinfo->value.enumerated.item = items - 1;
3149
3150 WARN(strlen(names[uinfo->value.enumerated.item]) >=
3151 sizeof(uinfo->value.enumerated.name),
3152 "ALSA: too long item name '%s'\n",
3153 names[uinfo->value.enumerated.item]);
3154 strlcpy(uinfo->value.enumerated.name,
3155 names[uinfo->value.enumerated.item],
3156 sizeof(uinfo->value.enumerated.name));
3157 return 0;
3158}
3159
3160static int msm_pcm_channel_mixer_info(struct snd_kcontrol *kcontrol,
3161 struct snd_ctl_elem_info *uinfo)
3162{
3163 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3164
3165 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3166 uinfo->count = 1;
3167
3168 uinfo->value.enumerated.items = ARRAY_SIZE(ch_mixer);
3169 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3170
3171 return 0;
3172}
3173static int msm_pcm_channel_mixer_get(struct snd_kcontrol *kcontrol,
3174 struct snd_ctl_elem_value *ucontrol)
3175{
3176 u16 fe_id = 0;
3177
3178 fe_id = ((struct soc_enum *)
3179 kcontrol->private_value)->shift_l;
3180 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3181 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3182 return -EINVAL;
3183 }
3184
3185 pr_debug("%s: FE %d %s\n", __func__,
3186 fe_id,
3187 channel_mixer[fe_id].enable ? "Enabled" : "Disabled");
3188 ucontrol->value.enumerated.item[0] = channel_mixer[fe_id].enable;
3189 return 0;
3190}
3191
3192static int msm_pcm_channel_mixer_put(struct snd_kcontrol *kcontrol,
3193 struct snd_ctl_elem_value *ucontrol)
3194{
3195 u16 fe_id = 0;
3196
3197 fe_id = ((struct soc_enum *)
3198 kcontrol->private_value)->shift_l;
3199 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3200 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3201 return -EINVAL;
3202 }
3203
3204 channel_mixer[fe_id].enable = ucontrol->value.enumerated.item[0];
3205 pr_debug("%s: %s FE %d\n", __func__,
3206 channel_mixer[fe_id].enable ? "Enable" : "Disable",
3207 fe_id);
3208 return 0;
3209}
3210
3211static int msm_pcm_channel_input_be_info(struct snd_kcontrol *kcontrol,
3212 struct snd_ctl_elem_info *uinfo)
3213{
3214 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3215
3216 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3217 uinfo->count = 1;
3218
3219 uinfo->value.enumerated.items = ARRAY_SIZE(be_name);
3220 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3221
3222 return 0;
3223}
3224
3225static int msm_pcm_channel_input_be_put(struct snd_kcontrol *kcontrol,
3226 struct snd_ctl_elem_value *ucontrol)
3227{
3228 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3229 u16 fe_id = 0, in_ch = 0;
3230
3231 fe_id = e->shift_l;
3232 in_ch = e->shift_r;
3233 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3234 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3235 return -EINVAL;
3236 }
3237 if (in_ch >= ADM_MAX_CHANNELS) {
3238 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3239 return -EINVAL;
3240 }
3241
3242 channel_input[fe_id][in_ch] = ucontrol->value.enumerated.item[0];
3243 return 1;
3244}
3245
3246static int msm_pcm_channel_input_be_get(struct snd_kcontrol *kcontrol,
3247 struct snd_ctl_elem_value *ucontrol)
3248{
3249 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3250 u16 fe_id = 0, in_ch = 0;
3251
3252 fe_id = e->shift_l;
3253 in_ch = e->shift_r;
3254 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3255 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3256 return -EINVAL;
3257 }
3258 if (in_ch >= ADM_MAX_CHANNELS) {
3259 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3260 return -EINVAL;
3261 }
3262
3263 ucontrol->value.enumerated.item[0] = channel_input[fe_id][in_ch];
3264 return 1;
3265}
3266
3267
3268static int msm_pcm_channel_weight_info(struct snd_kcontrol *kcontrol,
3269 struct snd_ctl_elem_info *uinfo)
3270{
3271 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
3272 uinfo->count = ADM_MAX_CHANNELS;
3273 uinfo->value.integer.min = 0;
3274 uinfo->value.integer.max = WEIGHT_0_DB;
3275
3276 return 0;
3277}
3278
3279static int msm_pcm_channel_weight_put(struct snd_kcontrol *kcontrol,
3280 struct snd_ctl_elem_value *ucontrol)
3281{
3282 u16 fe_id = 0, out_ch = 0;
3283 int i, weight;
3284
3285 fe_id = ((struct soc_multi_mixer_control *)
3286 kcontrol->private_value)->shift;
3287 out_ch = ((struct soc_multi_mixer_control *)
3288 kcontrol->private_value)->rshift;
3289 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3290 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3291 return -EINVAL;
3292 }
3293 if (out_ch >= ADM_MAX_CHANNELS) {
3294 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3295 return -EINVAL;
3296 }
3297
3298 pr_debug("%s: FE_ID: %d, channel weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld\n",
3299 __func__, fe_id,
3300 ucontrol->value.integer.value[0],
3301 ucontrol->value.integer.value[1],
3302 ucontrol->value.integer.value[2],
3303 ucontrol->value.integer.value[3],
3304 ucontrol->value.integer.value[4],
3305 ucontrol->value.integer.value[5],
3306 ucontrol->value.integer.value[6],
3307 ucontrol->value.integer.value[7]);
3308
3309 for (i = 0; i < ADM_MAX_CHANNELS; ++i) {
3310 weight = ucontrol->value.integer.value[i];
3311 channel_mixer[fe_id].channel_weight[out_ch][i] = weight;
3312 pr_debug("%s: FE_ID %d, output %d input %d weight %d\n",
3313 __func__, fe_id, out_ch, i,
3314 channel_mixer[fe_id].channel_weight[out_ch][i]);
3315 }
3316
3317 return 0;
3318}
3319
3320static int msm_pcm_channel_weight_get(struct snd_kcontrol *kcontrol,
3321 struct snd_ctl_elem_value *ucontrol)
3322{
3323 u16 fe_id = 0, out_ch = 0;
3324 int i;
3325
3326 fe_id = ((struct soc_multi_mixer_control *)
3327 kcontrol->private_value)->shift;
3328 out_ch = ((struct soc_multi_mixer_control *)
3329 kcontrol->private_value)->rshift;
3330 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3331 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3332 return -EINVAL;
3333 }
3334 if (out_ch >= ADM_MAX_CHANNELS) {
3335 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3336 return -EINVAL;
3337 }
3338
3339 for (i = 0; i < ADM_MAX_CHANNELS; ++i)
3340 ucontrol->value.integer.value[i] =
3341 channel_mixer[fe_id].channel_weight[out_ch][i];
3342
3343 pr_debug("%s: FE_ID: %d, weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld",
3344 __func__, fe_id,
3345 ucontrol->value.integer.value[0],
3346 ucontrol->value.integer.value[1],
3347 ucontrol->value.integer.value[2],
3348 ucontrol->value.integer.value[3],
3349 ucontrol->value.integer.value[4],
3350 ucontrol->value.integer.value[5],
3351 ucontrol->value.integer.value[6],
3352 ucontrol->value.integer.value[7]);
3353
3354 return 0;
3355}
3356
3357static const struct snd_kcontrol_new channel_mixer_controls[] = {
3358 SOC_SINGLE_EXT("MultiMedia1 Channel Rule", SND_SOC_NOPM,
3359 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3360 msm_pcm_get_channel_rule_index,
3361 msm_pcm_put_channel_rule_index),
3362 SOC_SINGLE_EXT("MultiMedia2 Channel Rule", SND_SOC_NOPM,
3363 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3364 msm_pcm_get_channel_rule_index,
3365 msm_pcm_put_channel_rule_index),
3366 SOC_SINGLE_EXT("MultiMedia3 Channel Rule", SND_SOC_NOPM,
3367 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3368 msm_pcm_get_channel_rule_index,
3369 msm_pcm_put_channel_rule_index),
3370 SOC_SINGLE_EXT("MultiMedia4 Channel Rule", SND_SOC_NOPM,
3371 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3372 msm_pcm_get_channel_rule_index,
3373 msm_pcm_put_channel_rule_index),
3374 SOC_SINGLE_EXT("MultiMedia5 Channel Rule", SND_SOC_NOPM,
3375 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3376 msm_pcm_get_channel_rule_index,
3377 msm_pcm_put_channel_rule_index),
3378 SOC_SINGLE_EXT("MultiMedia6 Channel Rule", SND_SOC_NOPM,
3379 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3380 msm_pcm_get_channel_rule_index,
3381 msm_pcm_put_channel_rule_index),
3382
3383 SOC_SINGLE_EXT("MultiMedia1 Channels", SND_SOC_NOPM,
3384 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3385 msm_pcm_get_out_chs,
3386 msm_pcm_put_out_chs),
3387 SOC_SINGLE_EXT("MultiMedia2 Channels", SND_SOC_NOPM,
3388 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3389 msm_pcm_get_out_chs,
3390 msm_pcm_put_out_chs),
3391 SOC_SINGLE_EXT("MultiMedia3 Channels", SND_SOC_NOPM,
3392 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3393 msm_pcm_get_out_chs,
3394 msm_pcm_put_out_chs),
3395 SOC_SINGLE_EXT("MultiMedia4 Channels", SND_SOC_NOPM,
3396 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3397 msm_pcm_get_out_chs,
3398 msm_pcm_put_out_chs),
3399 SOC_SINGLE_EXT("MultiMedia5 Channels", SND_SOC_NOPM,
3400 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3401 msm_pcm_get_out_chs,
3402 msm_pcm_put_out_chs),
3403 SOC_SINGLE_EXT("MultiMedia6 Channels", SND_SOC_NOPM,
3404 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3405 msm_pcm_get_out_chs,
3406 msm_pcm_put_out_chs),
3407 {
3408 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3409 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3410 .name = "MultiMedia1 Channel Mixer",
3411 .info = msm_pcm_channel_mixer_info,
3412 .get = msm_pcm_channel_mixer_get,
3413 .put = msm_pcm_channel_mixer_put,
3414 .private_value = (unsigned long)&(mm1_channel_mux)
3415 },
3416 {
3417 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3418 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3419 .name = "MultiMedia2 Channel Mixer",
3420 .info = msm_pcm_channel_mixer_info,
3421 .get = msm_pcm_channel_mixer_get,
3422 .put = msm_pcm_channel_mixer_put,
3423 .private_value = (unsigned long)&(mm2_channel_mux)
3424 },
3425 {
3426 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3427 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3428 .name = "MultiMedia3 Channel Mixer",
3429 .info = msm_pcm_channel_mixer_info,
3430 .get = msm_pcm_channel_mixer_get,
3431 .put = msm_pcm_channel_mixer_put,
3432 .private_value = (unsigned long)&(mm3_channel_mux)
3433 },
3434 {
3435 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3436 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3437 .name = "MultiMedia4 Channel Mixer",
3438 .info = msm_pcm_channel_mixer_info,
3439 .get = msm_pcm_channel_mixer_get,
3440 .put = msm_pcm_channel_mixer_put,
3441 .private_value = (unsigned long)&(mm4_channel_mux)
3442 },
3443 {
3444 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3445 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3446 .name = "MultiMedia1 Output Channel1",
3447 .info = msm_pcm_channel_weight_info,
3448 .get = msm_pcm_channel_weight_get,
3449 .put = msm_pcm_channel_weight_put,
3450 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3451 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 0,}
3452 },
3453 {
3454 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3455 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3456 .name = "MultiMedia1 Output Channel2",
3457 .info = msm_pcm_channel_weight_info,
3458 .get = msm_pcm_channel_weight_get,
3459 .put = msm_pcm_channel_weight_put,
3460 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3461 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 1, }
3462 },
3463 {
3464 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3465 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3466 .name = "MultiMedia1 Output Channel3",
3467 .info = msm_pcm_channel_weight_info,
3468 .get = msm_pcm_channel_weight_get,
3469 .put = msm_pcm_channel_weight_put,
3470 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3471 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 2,}
3472 },
3473 {
3474 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3475 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3476 .name = "MultiMedia1 Output Channel4",
3477 .info = msm_pcm_channel_weight_info,
3478 .get = msm_pcm_channel_weight_get,
3479 .put = msm_pcm_channel_weight_put,
3480 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3481 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 3,}
3482 },
3483 {
3484 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3485 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3486 .name = "MultiMedia1 Output Channel5",
3487 .info = msm_pcm_channel_weight_info,
3488 .get = msm_pcm_channel_weight_get,
3489 .put = msm_pcm_channel_weight_put,
3490 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3491 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 4,}
3492 },
3493 {
3494 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3495 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3496 .name = "MultiMedia1 Output Channel6",
3497 .info = msm_pcm_channel_weight_info,
3498 .get = msm_pcm_channel_weight_get,
3499 .put = msm_pcm_channel_weight_put,
3500 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3501 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 5,}
3502 },
3503 {
3504 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3505 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3506 .name = "MultiMedia1 Output Channel7",
3507 .info = msm_pcm_channel_weight_info,
3508 .get = msm_pcm_channel_weight_get,
3509 .put = msm_pcm_channel_weight_put,
3510 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3511 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 6,}
3512 },
3513 {
3514 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3515 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3516 .name = "MultiMedia1 Output Channel8",
3517 .info = msm_pcm_channel_weight_info,
3518 .get = msm_pcm_channel_weight_get,
3519 .put = msm_pcm_channel_weight_put,
3520 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3521 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 7,}
3522 },
3523 {
3524 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3525 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3526 .name = "MultiMedia2 Output Channel1",
3527 .info = msm_pcm_channel_weight_info,
3528 .get = msm_pcm_channel_weight_get,
3529 .put = msm_pcm_channel_weight_put,
3530 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3531 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 0,}
3532 },
3533 {
3534 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3535 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3536 .name = "MultiMedia2 Output Channel2",
3537 .info = msm_pcm_channel_weight_info,
3538 .get = msm_pcm_channel_weight_get,
3539 .put = msm_pcm_channel_weight_put,
3540 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3541 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 1,}
3542 },
3543 {
3544 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3545 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3546 .name = "MultiMedia2 Output Channel3",
3547 .info = msm_pcm_channel_weight_info,
3548 .get = msm_pcm_channel_weight_get,
3549 .put = msm_pcm_channel_weight_put,
3550 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3551 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 2,}
3552 },
3553 {
3554 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3555 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3556 .name = "MultiMedia3 Output Channel1",
3557 .info = msm_pcm_channel_weight_info,
3558 .get = msm_pcm_channel_weight_get,
3559 .put = msm_pcm_channel_weight_put,
3560 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3561 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 0,}
3562 },
3563 {
3564 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3565 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3566 .name = "MultiMedia3 Output Channel2",
3567 .info = msm_pcm_channel_weight_info,
3568 .get = msm_pcm_channel_weight_get,
3569 .put = msm_pcm_channel_weight_put,
3570 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3571 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 1,}
3572 },
3573 {
3574 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3575 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3576 .name = "MultiMedia1 Channel1",
3577 .info = msm_pcm_channel_input_be_info,
3578 .get = msm_pcm_channel_input_be_get,
3579 .put = msm_pcm_channel_input_be_put,
3580 .private_value = (unsigned long)&(mm1_ch1_enum)
3581 },
3582 {
3583 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3584 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3585 .name = "MultiMedia1 Channel2",
3586 .info = msm_pcm_channel_input_be_info,
3587 .get = msm_pcm_channel_input_be_get,
3588 .put = msm_pcm_channel_input_be_put,
3589 .private_value = (unsigned long)&(mm1_ch2_enum)
3590 },
3591 {
3592 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3593 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3594 .name = "MultiMedia1 Channel3",
3595 .info = msm_pcm_channel_input_be_info,
3596 .get = msm_pcm_channel_input_be_get,
3597 .put = msm_pcm_channel_input_be_put,
3598 .private_value = (unsigned long)&(mm1_ch3_enum)
3599 },
3600 {
3601 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3602 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3603 .name = "MultiMedia1 Channel4",
3604 .info = msm_pcm_channel_input_be_info,
3605 .get = msm_pcm_channel_input_be_get,
3606 .put = msm_pcm_channel_input_be_put,
3607 .private_value = (unsigned long)&(mm1_ch4_enum)
3608 },
3609 {
3610 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3611 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3612 .name = "MultiMedia1 Channel5",
3613 .info = msm_pcm_channel_input_be_info,
3614 .get = msm_pcm_channel_input_be_get,
3615 .put = msm_pcm_channel_input_be_put,
3616 .private_value = (unsigned long)&(mm1_ch5_enum)
3617 },
3618 {
3619 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3620 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3621 .name = "MultiMedia1 Channel6",
3622 .info = msm_pcm_channel_input_be_info,
3623 .get = msm_pcm_channel_input_be_get,
3624 .put = msm_pcm_channel_input_be_put,
3625 .private_value = (unsigned long)&(mm1_ch6_enum)
3626 },
3627 {
3628 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3629 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3630 .name = "MultiMedia1 Channel7",
3631 .info = msm_pcm_channel_input_be_info,
3632 .get = msm_pcm_channel_input_be_get,
3633 .put = msm_pcm_channel_input_be_put,
3634 .private_value = (unsigned long)&(mm1_ch7_enum)
3635 },
3636 {
3637 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3638 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3639 .name = "MultiMedia1 Channel8",
3640 .info = msm_pcm_channel_input_be_info,
3641 .get = msm_pcm_channel_input_be_get,
3642 .put = msm_pcm_channel_input_be_put,
3643 .private_value = (unsigned long)&(mm1_ch8_enum)
3644 },
3645};
3646static int msm_ec_ref_ch_get(struct snd_kcontrol *kcontrol,
3647 struct snd_ctl_elem_value *ucontrol)
3648{
3649 ucontrol->value.integer.value[0] = msm_ec_ref_ch;
3650 pr_debug("%s: msm_ec_ref_ch = %ld\n", __func__,
3651 ucontrol->value.integer.value[0]);
3652 return 0;
3653}
3654
3655static int msm_ec_ref_ch_put(struct snd_kcontrol *kcontrol,
3656 struct snd_ctl_elem_value *ucontrol)
3657{
3658 msm_ec_ref_ch = ucontrol->value.integer.value[0];
3659 pr_debug("%s: msm_ec_ref_ch = %d\n", __func__, msm_ec_ref_ch);
3660 adm_num_ec_ref_rx_chans(msm_ec_ref_ch);
3661 return 0;
3662}
3663
3664static const char *const ec_ref_ch_text[] = {"Zero", "One", "Two", "Three",
3665 "Four", "Five", "Six", "Seven", "Eight"};
3666
3667static int msm_ec_ref_bit_format_get(struct snd_kcontrol *kcontrol,
3668 struct snd_ctl_elem_value *ucontrol)
3669{
3670 switch (msm_ec_ref_bit_format) {
3671 case SNDRV_PCM_FORMAT_S24_LE:
3672 ucontrol->value.integer.value[0] = 2;
3673 break;
3674 case SNDRV_PCM_FORMAT_S16_LE:
3675 ucontrol->value.integer.value[0] = 1;
3676 break;
3677 default:
3678 ucontrol->value.integer.value[0] = 0;
3679 break;
3680 }
3681 pr_debug("%s: msm_ec_ref_bit_format = %ld\n",
3682 __func__, ucontrol->value.integer.value[0]);
3683 return 0;
3684}
3685
3686static int msm_ec_ref_bit_format_put(struct snd_kcontrol *kcontrol,
3687 struct snd_ctl_elem_value *ucontrol)
3688{
3689 u16 bit_width = 0;
3690
3691 switch (ucontrol->value.integer.value[0]) {
3692 case 2:
3693 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S24_LE;
3694 break;
3695 case 1:
3696 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
3697 break;
3698 default:
3699 msm_ec_ref_bit_format = 0;
3700 break;
3701 }
3702
3703 if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S16_LE)
3704 bit_width = 16;
3705 else if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S24_LE)
3706 bit_width = 24;
3707
3708 pr_debug("%s: msm_ec_ref_bit_format = %d\n",
3709 __func__, msm_ec_ref_bit_format);
3710 adm_ec_ref_rx_bit_width(bit_width);
3711 return 0;
3712}
3713
3714static char const *ec_ref_bit_format_text[] = {"0", "S16_LE", "S24_LE"};
3715
3716static int msm_ec_ref_rate_get(struct snd_kcontrol *kcontrol,
3717 struct snd_ctl_elem_value *ucontrol)
3718{
3719 ucontrol->value.integer.value[0] = msm_ec_ref_sampling_rate;
3720 pr_debug("%s: msm_ec_ref_sampling_rate = %ld\n",
3721 __func__, ucontrol->value.integer.value[0]);
3722 return 0;
3723}
3724
3725static int msm_ec_ref_rate_put(struct snd_kcontrol *kcontrol,
3726 struct snd_ctl_elem_value *ucontrol)
3727{
3728 switch (ucontrol->value.integer.value[0]) {
3729 case 0:
3730 msm_ec_ref_sampling_rate = 0;
3731 break;
3732 case 1:
3733 msm_ec_ref_sampling_rate = 8000;
3734 break;
3735 case 2:
3736 msm_ec_ref_sampling_rate = 16000;
3737 break;
3738 case 3:
3739 msm_ec_ref_sampling_rate = 32000;
3740 break;
3741 case 4:
3742 msm_ec_ref_sampling_rate = 44100;
3743 break;
3744 case 5:
3745 msm_ec_ref_sampling_rate = 48000;
3746 break;
3747 case 6:
3748 msm_ec_ref_sampling_rate = 96000;
3749 break;
3750 case 7:
3751 msm_ec_ref_sampling_rate = 192000;
3752 break;
3753 case 8:
3754 msm_ec_ref_sampling_rate = 384000;
3755 break;
3756 default:
3757 msm_ec_ref_sampling_rate = 48000;
3758 break;
3759 }
3760 pr_debug("%s: msm_ec_ref_sampling_rate = %d\n",
3761 __func__, msm_ec_ref_sampling_rate);
3762 adm_ec_ref_rx_sampling_rate(msm_ec_ref_sampling_rate);
3763 return 0;
3764}
3765
3766static const char *const ec_ref_rate_text[] = {"0", "8000", "16000",
3767 "32000", "44100", "48000", "96000", "192000", "384000"};
3768
3769static const struct soc_enum msm_route_ec_ref_params_enum[] = {
3770 SOC_ENUM_SINGLE_EXT(9, ec_ref_ch_text),
3771 SOC_ENUM_SINGLE_EXT(3, ec_ref_bit_format_text),
3772 SOC_ENUM_SINGLE_EXT(9, ec_ref_rate_text),
3773};
3774
3775static const struct snd_kcontrol_new ec_ref_param_controls[] = {
3776 SOC_ENUM_EXT("EC Reference Channels", msm_route_ec_ref_params_enum[0],
3777 msm_ec_ref_ch_get, msm_ec_ref_ch_put),
3778 SOC_ENUM_EXT("EC Reference Bit Format", msm_route_ec_ref_params_enum[1],
3779 msm_ec_ref_bit_format_get, msm_ec_ref_bit_format_put),
3780 SOC_ENUM_EXT("EC Reference SampleRate", msm_route_ec_ref_params_enum[2],
3781 msm_ec_ref_rate_get, msm_ec_ref_rate_put),
3782};
3783
3784static int msm_routing_ec_ref_rx_get(struct snd_kcontrol *kcontrol,
3785 struct snd_ctl_elem_value *ucontrol)
3786{
3787 pr_debug("%s: ec_ref_rx = %d", __func__, msm_route_ec_ref_rx);
3788 mutex_lock(&routing_lock);
3789 ucontrol->value.integer.value[0] = msm_route_ec_ref_rx;
3790 mutex_unlock(&routing_lock);
3791 return 0;
3792}
3793
3794static int msm_routing_ec_ref_rx_put(struct snd_kcontrol *kcontrol,
3795 struct snd_ctl_elem_value *ucontrol)
3796{
3797 int ec_ref_port_id;
Asish Bhattacharya34504582017-08-08 12:55:01 +05303798 struct snd_soc_dapm_widget *widget =
3799 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303800 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3801 struct snd_soc_dapm_update *update = NULL;
3802
3803
3804 mutex_lock(&routing_lock);
3805 switch (ucontrol->value.integer.value[0]) {
3806 case 0:
3807 msm_route_ec_ref_rx = 0;
3808 ec_ref_port_id = AFE_PORT_INVALID;
3809 break;
3810 case 1:
3811 msm_route_ec_ref_rx = 1;
3812 ec_ref_port_id = SLIMBUS_0_RX;
3813 break;
3814 case 2:
3815 msm_route_ec_ref_rx = 2;
3816 ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_RX;
3817 break;
3818 case 3:
3819 msm_route_ec_ref_rx = 3;
3820 ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
3821 break;
3822 case 4:
3823 msm_route_ec_ref_rx = 4;
3824 ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
3825 break;
3826 case 5:
3827 msm_route_ec_ref_rx = 5;
3828 ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
3829 break;
3830 case 6:
3831 msm_route_ec_ref_rx = 6;
3832 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
3833 break;
3834 case 7:
3835 msm_route_ec_ref_rx = 7;
3836 ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_RX;
3837 break;
3838 case 9:
3839 msm_route_ec_ref_rx = 9;
3840 ec_ref_port_id = SLIMBUS_5_RX;
3841 break;
3842 case 10:
3843 msm_route_ec_ref_rx = 10;
3844 ec_ref_port_id = SLIMBUS_1_TX;
3845 break;
3846 case 11:
3847 msm_route_ec_ref_rx = 11;
3848 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_TX_1;
3849 break;
3850 case 12:
3851 msm_route_ec_ref_rx = 12;
3852 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX;
3853 break;
3854 case 13:
3855 msm_route_ec_ref_rx = 13;
3856 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_1;
3857 break;
3858 case 14:
3859 msm_route_ec_ref_rx = 14;
3860 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_2;
3861 break;
3862 case 15:
3863 msm_route_ec_ref_rx = 15;
3864 ec_ref_port_id = SLIMBUS_6_RX;
3865 break;
3866 case 16:
3867 msm_route_ec_ref_rx = 16;
3868 ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_RX;
3869 break;
3870 case 17:
3871 msm_route_ec_ref_rx = 17;
3872 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_RX;
3873 break;
3874 case 18:
3875 msm_route_ec_ref_rx = 18;
3876 ec_ref_port_id = AFE_PORT_ID_TERTIARY_TDM_TX;
3877 break;
3878 case 19:
3879 msm_route_ec_ref_rx = 19;
3880 ec_ref_port_id = AFE_PORT_ID_USB_RX;
3881 break;
3882 case 20:
3883 msm_route_ec_ref_rx = 20;
3884 ec_ref_port_id = AFE_PORT_ID_INT0_MI2S_RX;
3885 break;
3886 case 21:
3887 msm_route_ec_ref_rx = 21;
3888 ec_ref_port_id = AFE_PORT_ID_INT4_MI2S_RX;
3889 break;
3890 case 22:
3891 msm_route_ec_ref_rx = 22;
3892 ec_ref_port_id = AFE_PORT_ID_INT3_MI2S_TX;
3893 break;
Aalique Grahamee4fd7d52017-11-28 13:24:13 -08003894 case 23:
3895 msm_route_ec_ref_rx = 23;
3896 ec_ref_port_id = AFE_PORT_ID_HDMI_OVER_DP_RX;
3897 break;
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303898 case 24:
3899 msm_route_ec_ref_rx = 24;
3900 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_0;
3901 break;
3902 case 25:
3903 msm_route_ec_ref_rx = 25;
3904 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_1;
3905 break;
3906 case 26:
3907 msm_route_ec_ref_rx = 26;
3908 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_0;
3909 break;
3910 case 27:
3911 msm_route_ec_ref_rx = 27;
3912 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_1;
3913 break;
3914 case 28:
3915 msm_route_ec_ref_rx = 28;
3916 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_2;
3917 break;
Zhou Songb167db12018-07-02 17:14:00 +08003918 case 29:
3919 msm_route_ec_ref_rx = 29;
3920 ec_ref_port_id = SLIMBUS_7_RX;
3921 break;
Aditya Bavanari1e84a932018-06-18 19:40:08 +05303922 case 30:
3923 msm_route_ec_ref_rx = 30;
3924 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_0;
3925 break;
3926 case 31:
3927 msm_route_ec_ref_rx = 31;
3928 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_1;
3929 break;
3930 case 32:
3931 msm_route_ec_ref_rx = 32;
3932 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_2;
3933 break;
3934 case 33:
3935 msm_route_ec_ref_rx = 33;
3936 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_3;
3937 break;
3938 case 34:
3939 msm_route_ec_ref_rx = 34;
3940 ec_ref_port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_0;
3941 break;
Derek Chen2bb55772018-10-24 00:17:15 -07003942 case 35:
3943 msm_route_ec_ref_rx = 35;
3944 ec_ref_port_id = AFE_PORT_ID_TERTIARY_TDM_RX_2;
3945 break;
3946 case 36:
3947 msm_route_ec_ref_rx = 36;
3948 ec_ref_port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
3949 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303950 default:
3951 msm_route_ec_ref_rx = 0; /* NONE */
3952 pr_err("%s EC ref rx %ld not valid\n",
3953 __func__, ucontrol->value.integer.value[0]);
3954 ec_ref_port_id = AFE_PORT_INVALID;
3955 break;
3956 }
Surendar Karkae7507512018-07-20 15:46:54 +05303957 msm_ec_ref_port_id = ec_ref_port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303958 adm_ec_ref_rx_id(ec_ref_port_id);
3959 pr_debug("%s: msm_route_ec_ref_rx = %d\n",
3960 __func__, msm_route_ec_ref_rx);
3961 mutex_unlock(&routing_lock);
3962 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol,
3963 msm_route_ec_ref_rx, e, update);
3964 return 0;
3965}
3966
3967static const char *const ec_ref_rx[] = { "None", "SLIM_RX", "I2S_RX",
3968 "PRI_MI2S_TX", "SEC_MI2S_TX",
3969 "TERT_MI2S_TX", "QUAT_MI2S_TX", "SEC_I2S_RX", "PROXY_RX",
3970 "SLIM_5_RX", "SLIM_1_TX", "QUAT_TDM_TX_1",
3971 "QUAT_TDM_RX_0", "QUAT_TDM_RX_1", "QUAT_TDM_RX_2", "SLIM_6_RX",
3972 "TERT_MI2S_RX", "QUAT_MI2S_RX", "TERT_TDM_TX_0", "USB_AUDIO_RX",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303973 "INT0_MI2S_RX", "INT4_MI2S_RX", "INT3_MI2S_TX", "DISPLAY_PORT",
3974 "WSA_CDC_DMA_RX_0", "WSA_CDC_DMA_RX_1",
Zhou Songb167db12018-07-02 17:14:00 +08003975 "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_2",
Aditya Bavanari1e84a932018-06-18 19:40:08 +05303976 "SLIM_7_RX", "RX_CDC_DMA_RX_0", "RX_CDC_DMA_RX_1", "RX_CDC_DMA_RX_2",
Derek Chen2bb55772018-10-24 00:17:15 -07003977 "RX_CDC_DMA_RX_3", "TX_CDC_DMA_TX_0", "TERT_TDM_RX_2", "SEC_TDM_TX_0",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303978};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303979
3980static const struct soc_enum msm_route_ec_ref_rx_enum[] = {
3981 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_rx), ec_ref_rx),
3982};
3983
3984static const struct snd_kcontrol_new ext_ec_ref_mux_ul1 =
3985 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL1 MUX Mux",
3986 msm_route_ec_ref_rx_enum[0],
3987 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3988
3989static const struct snd_kcontrol_new ext_ec_ref_mux_ul2 =
3990 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL2 MUX Mux",
3991 msm_route_ec_ref_rx_enum[0],
3992 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3993
3994static const struct snd_kcontrol_new ext_ec_ref_mux_ul3 =
3995 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL3 MUX Mux",
3996 msm_route_ec_ref_rx_enum[0],
3997 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3998
3999static const struct snd_kcontrol_new ext_ec_ref_mux_ul4 =
4000 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL4 MUX Mux",
4001 msm_route_ec_ref_rx_enum[0],
4002 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4003
4004static const struct snd_kcontrol_new ext_ec_ref_mux_ul5 =
4005 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL5 MUX Mux",
4006 msm_route_ec_ref_rx_enum[0],
4007 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4008
4009static const struct snd_kcontrol_new ext_ec_ref_mux_ul6 =
4010 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL6 MUX Mux",
4011 msm_route_ec_ref_rx_enum[0],
4012 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4013
4014static const struct snd_kcontrol_new ext_ec_ref_mux_ul8 =
4015 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL8 MUX Mux",
4016 msm_route_ec_ref_rx_enum[0],
4017 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4018
4019static const struct snd_kcontrol_new ext_ec_ref_mux_ul9 =
4020 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL9 MUX Mux",
4021 msm_route_ec_ref_rx_enum[0],
4022 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4023
Asish Bhattacharya34504582017-08-08 12:55:01 +05304024static const struct snd_kcontrol_new ext_ec_ref_mux_ul16 =
4025 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL16 MUX Mux",
4026 msm_route_ec_ref_rx_enum[0],
4027 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4028
Laxminath Kasam38070be2017-08-17 18:21:59 +05304029static const struct snd_kcontrol_new ext_ec_ref_mux_ul10 =
4030 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL10 MUX Mux",
4031 msm_route_ec_ref_rx_enum[0],
4032 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4033
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304034static const struct snd_kcontrol_new ext_ec_ref_mux_ul17 =
4035 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL17 MUX Mux",
4036 msm_route_ec_ref_rx_enum[0],
4037 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4038
4039static const struct snd_kcontrol_new ext_ec_ref_mux_ul18 =
4040 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL18 MUX Mux",
4041 msm_route_ec_ref_rx_enum[0],
4042 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4043
4044static const struct snd_kcontrol_new ext_ec_ref_mux_ul19 =
4045 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL19 MUX Mux",
4046 msm_route_ec_ref_rx_enum[0],
4047 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4048
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304049static const struct snd_kcontrol_new ext_ec_ref_mux_ul28 =
4050 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL28 MUX Mux",
4051 msm_route_ec_ref_rx_enum[0],
4052 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4053
4054static const struct snd_kcontrol_new ext_ec_ref_mux_ul29 =
4055 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL29 MUX Mux",
4056 msm_route_ec_ref_rx_enum[0],
4057 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4058
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304059static int msm_routing_ext_ec_get(struct snd_kcontrol *kcontrol,
4060 struct snd_ctl_elem_value *ucontrol)
4061{
4062 pr_debug("%s: ext_ec_ref_rx = %x\n", __func__, msm_route_ext_ec_ref);
4063
4064 mutex_lock(&routing_lock);
4065 ucontrol->value.integer.value[0] = msm_route_ext_ec_ref;
4066 mutex_unlock(&routing_lock);
4067 return 0;
4068}
4069
4070static int msm_routing_ext_ec_put(struct snd_kcontrol *kcontrol,
4071 struct snd_ctl_elem_value *ucontrol)
4072{
Asish Bhattacharya34504582017-08-08 12:55:01 +05304073 struct snd_soc_dapm_widget *widget =
4074 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304075 int mux = ucontrol->value.enumerated.item[0];
4076 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
4077 int ret = 1;
4078 bool state = true;
4079 uint16_t ext_ec_ref_port_id;
4080 struct snd_soc_dapm_update *update = NULL;
4081
4082 if (mux >= e->items) {
4083 pr_err("%s: Invalid mux value %d\n", __func__, mux);
4084 return -EINVAL;
4085 }
4086
4087 mutex_lock(&routing_lock);
4088 msm_route_ext_ec_ref = ucontrol->value.integer.value[0];
4089
4090 switch (msm_route_ext_ec_ref) {
4091 case EXT_EC_REF_PRI_MI2S_TX:
4092 ext_ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
4093 break;
4094 case EXT_EC_REF_SEC_MI2S_TX:
4095 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
4096 break;
4097 case EXT_EC_REF_TERT_MI2S_TX:
4098 ext_ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
4099 break;
4100 case EXT_EC_REF_QUAT_MI2S_TX:
4101 ext_ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
4102 break;
4103 case EXT_EC_REF_QUIN_MI2S_TX:
4104 ext_ec_ref_port_id = AFE_PORT_ID_QUINARY_MI2S_TX;
4105 break;
4106 case EXT_EC_REF_SLIM_1_TX:
4107 ext_ec_ref_port_id = SLIMBUS_1_TX;
4108 break;
Karthikeyan Manibfba0542018-06-20 15:20:28 -07004109 case EXT_EC_REF_SEC_TDM_TX:
4110 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
4111 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304112 case EXT_EC_REF_NONE:
4113 default:
4114 ext_ec_ref_port_id = AFE_PORT_INVALID;
4115 state = false;
4116 break;
4117 }
4118
4119 pr_debug("%s: val = %d ext_ec_ref_port_id = 0x%0x state = %d\n",
4120 __func__, msm_route_ext_ec_ref, ext_ec_ref_port_id, state);
4121
4122 if (!voc_set_ext_ec_ref_port_id(ext_ec_ref_port_id, state)) {
4123 mutex_unlock(&routing_lock);
4124 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol, mux, e,
4125 update);
4126 } else {
4127 ret = -EINVAL;
4128 mutex_unlock(&routing_lock);
4129 }
4130 return ret;
4131}
4132
4133static const char * const ext_ec_ref_rx[] = {"NONE", "PRI_MI2S_TX",
4134 "SEC_MI2S_TX", "TERT_MI2S_TX",
4135 "QUAT_MI2S_TX", "QUIN_MI2S_TX",
Karthikeyan Manibfba0542018-06-20 15:20:28 -07004136 "SLIM_1_TX", "SEC_TDM_TX"};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304137
4138static const struct soc_enum msm_route_ext_ec_ref_rx_enum[] = {
4139 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ext_ec_ref_rx), ext_ec_ref_rx),
4140};
4141
4142static const struct snd_kcontrol_new voc_ext_ec_mux =
4143 SOC_DAPM_ENUM_EXT("VOC_EXT_EC MUX Mux", msm_route_ext_ec_ref_rx_enum[0],
4144 msm_routing_ext_ec_get, msm_routing_ext_ec_put);
4145
4146
4147static const struct snd_kcontrol_new pri_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004148 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4149 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304150 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4151 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004152 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4153 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304154 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4155 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004156 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4157 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304158 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4159 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004160 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4161 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304162 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4163 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004164 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4165 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304166 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4167 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004168 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4169 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304170 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4171 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004172 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4173 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304174 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4175 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004176 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4177 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304178 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4179 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004180 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4181 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304182 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4183 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004184 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4185 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304186 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4187 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004188 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4189 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304190 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4191 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004192 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4193 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304194 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4195 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004196 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4197 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304198 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4199 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004200 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4201 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304202 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4203 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004204 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4205 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304206 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4207 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004208 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4209 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304210 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4211 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004212 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4213 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304214 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4215 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004216 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4217 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304218 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4219 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004220 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4221 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304222 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4223 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304224 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4225 MSM_BACKEND_DAI_PRI_I2S_RX,
4226 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4227 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004228 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4229 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304230 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4231 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004232 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4233 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304234 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4235 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304236};
4237
4238static const struct snd_kcontrol_new sec_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004239 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4240 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304241 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4242 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004243 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4244 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304245 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4246 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004247 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4248 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304249 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4250 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004251 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4252 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304253 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4254 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004255 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4256 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304257 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4258 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004259 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4260 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304261 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4262 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004263 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4264 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304265 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4266 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004267 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4268 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304269 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4270 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004271 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4272 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304273 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4274 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004275 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4276 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304277 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4278 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004279 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4280 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304281 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4282 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004283 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4284 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304285 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4286 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004287 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4288 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304289 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4290 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004291 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4292 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304293 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4294 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004295 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4296 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304297 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4298 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004299 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4300 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304301 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4302 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004303 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4304 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304305 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4306 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004307 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4308 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304309 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4310 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004311 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4312 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304313 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4314 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304315 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4316 MSM_BACKEND_DAI_SEC_I2S_RX,
4317 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4318 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004319 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4320 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304321 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4322 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004323 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4324 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304325 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4326 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304327};
4328
Ralf Herzc8701f72018-06-20 11:37:35 +02004329static const struct snd_kcontrol_new pri_spdif_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004330 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004331 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304332 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4333 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004334 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004335 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304336 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4337 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004338 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004339 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304340 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4341 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004342 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004343 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304344 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4345 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004346 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004347 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304348 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4349 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004350 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004351 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304352 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4353 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004354 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004355 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304356 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4357 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004358 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004359 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304360 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4361 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004362 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004363 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304364 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4365 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004366 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004367 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304368 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4369 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004370 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004371 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304372 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4373 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004374 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004375 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304376 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4377 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004378 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004379 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304380 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4381 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004382 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004383 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304384 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4385 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004386 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004387 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304388 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4389 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004390 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004391 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304392 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4393 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004394 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004395 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304396 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4397 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004398 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004399 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304400 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4401 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004402 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004403 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304404 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4405 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304406 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4407 MSM_BACKEND_DAI_PRI_SPDIF_RX,
4408 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4409 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004410 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004411 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304412 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4413 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004414 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004415 MSM_BACKEND_DAI_PRI_SPDIF_RX,
4416 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4417 msm_routing_put_audio_mixer),
4418};
4419
4420static const struct snd_kcontrol_new sec_spdif_rx_mixer_controls[] = {
4421 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4422 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4423 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4424 msm_routing_put_audio_mixer),
4425 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4426 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4427 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4428 msm_routing_put_audio_mixer),
4429 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4430 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4431 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4432 msm_routing_put_audio_mixer),
4433 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4434 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4435 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4436 msm_routing_put_audio_mixer),
4437 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4438 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4439 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4440 msm_routing_put_audio_mixer),
4441 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4442 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4443 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4444 msm_routing_put_audio_mixer),
4445 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4446 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4447 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4448 msm_routing_put_audio_mixer),
4449 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4450 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4451 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4452 msm_routing_put_audio_mixer),
4453 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4454 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4455 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4456 msm_routing_put_audio_mixer),
4457 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4458 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4459 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4460 msm_routing_put_audio_mixer),
4461 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4462 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4463 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4464 msm_routing_put_audio_mixer),
4465 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4466 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4467 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4468 msm_routing_put_audio_mixer),
4469 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4470 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4471 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4472 msm_routing_put_audio_mixer),
4473 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4474 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4475 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4476 msm_routing_put_audio_mixer),
4477 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4478 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4479 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4480 msm_routing_put_audio_mixer),
4481 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4482 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4483 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4484 msm_routing_put_audio_mixer),
4485 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4486 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4487 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4488 msm_routing_put_audio_mixer),
4489 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4490 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4491 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4492 msm_routing_put_audio_mixer),
4493 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4494 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4495 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4496 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304497 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4498 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4499 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4500 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02004501 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4502 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4503 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4504 msm_routing_put_audio_mixer),
4505 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4506 MSM_BACKEND_DAI_SEC_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304507 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4508 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304509};
4510
4511static const struct snd_kcontrol_new slimbus_2_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004512 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4513 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304514 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4515 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004516 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4517 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304518 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4519 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004520 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4521 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304522 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4523 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004524 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4525 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304526 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4527 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004528 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4529 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304530 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4531 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004532 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4533 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304534 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4535 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004536 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4537 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304538 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4539 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004540 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4541 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304542 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4543 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004544 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4545 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304546 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4547 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004548 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4549 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304550 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4551 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004552 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4553 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304554 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4555 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004556 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4557 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304558 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4559 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004560 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4561 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304562 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4563 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004564 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4565 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304566 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4567 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004568 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4569 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304570 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4571 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004572 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4573 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304574 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4575 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304576 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4577 MSM_BACKEND_DAI_SLIMBUS_2_RX,
4578 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4579 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304580};
4581
4582static const struct snd_kcontrol_new slimbus_5_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004583 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4584 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304585 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4586 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004587 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4588 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304589 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4590 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004591 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4592 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304593 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4594 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004595 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4596 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304597 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4598 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004599 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4600 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304601 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4602 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004603 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4604 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304605 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4606 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004607 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4608 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304609 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4610 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004611 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4612 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304613 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4614 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004615 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4616 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304617 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4618 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004619 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4620 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304621 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4622 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004623 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4624 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304625 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4626 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004627 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4628 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304629 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4630 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004631 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4632 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304633 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4634 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004635 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4636 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304637 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4638 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004639 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4640 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304641 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4642 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004643 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4644 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304645 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4646 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004647 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4648 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304649 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4650 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004651 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4652 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304653 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4654 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004655 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4656 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304657 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4658 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304659 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4660 MSM_BACKEND_DAI_SLIMBUS_5_RX,
4661 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4662 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004663 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4664 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304665 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4666 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004667 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4668 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304669 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4670 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304671};
4672
4673static const struct snd_kcontrol_new slimbus_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004674 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4675 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304676 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4677 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004678 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4679 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304680 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4681 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004682 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4683 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304684 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4685 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004686 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4687 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304688 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4689 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004690 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4691 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304692 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4693 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004694 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4695 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304696 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4697 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004698 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4699 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304700 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4701 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004702 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4703 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304704 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4705 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004706 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4707 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304708 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4709 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004710 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4711 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304712 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4713 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004714 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4715 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304716 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4717 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004718 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4719 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304720 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4721 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004722 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4723 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304724 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4725 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004726 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4727 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304728 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4729 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004730 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4731 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304732 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4733 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004734 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4735 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304736 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4737 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004738 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4739 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304740 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4741 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004742 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4743 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304744 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4745 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004746 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4747 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304748 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4749 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304750 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4751 MSM_BACKEND_DAI_SLIMBUS_0_RX,
4752 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004754 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4755 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304756 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4757 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004758 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4759 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304760 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4761 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304762};
4763
4764static const struct snd_kcontrol_new mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004765 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4766 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304767 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4768 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004769 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4770 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304771 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4772 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004773 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4774 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304775 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4776 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004777 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4778 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304779 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4780 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004781 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4782 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304783 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4784 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004785 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4786 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304787 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4788 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004789 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4790 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304791 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4792 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004793 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4794 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304795 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4796 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004797 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4798 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304799 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4800 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004801 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4802 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304803 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4804 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004805 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4806 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304807 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4808 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004809 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4810 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304811 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4812 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004813 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4814 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304815 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4816 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004817 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4818 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304819 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4820 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004821 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4822 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304823 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4824 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004825 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4826 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304827 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4828 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004829 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4830 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304831 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4832 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004833 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4834 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304835 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4836 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004837 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4838 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304839 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4840 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304841 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4842 MSM_BACKEND_DAI_MI2S_RX,
4843 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4844 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004845 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4846 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304847 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4848 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004849 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4850 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304851 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4852 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304853};
4854
4855static const struct snd_kcontrol_new quaternary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004856 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4857 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304858 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4859 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004860 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4861 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304862 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4863 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004864 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4865 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304866 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4867 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004868 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4869 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304870 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4871 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004872 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4873 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304874 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4875 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004876 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4877 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304878 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4879 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004880 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4881 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304882 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4883 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004884 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4885 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304886 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4887 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004888 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4889 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304890 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4891 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004892 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4893 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304894 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4895 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004896 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4897 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304898 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4899 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004900 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4901 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304902 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4903 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004904 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4905 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304906 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4907 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004908 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4909 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304910 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4911 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004912 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4913 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304914 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4915 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004916 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4917 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304918 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4919 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004920 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4921 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304922 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4923 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004924 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4925 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304926 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4927 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004928 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4929 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304930 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4931 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304932 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4933 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
4934 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4935 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004936 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4937 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304938 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4939 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004940 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4941 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304942 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4943 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304944};
4945
4946static const struct snd_kcontrol_new quinary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004947 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4948 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304949 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4950 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004951 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4952 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304953 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4954 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004955 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4956 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304957 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4958 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004959 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4960 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304961 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4962 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004963 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4964 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304965 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4966 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004967 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4968 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304969 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4970 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004971 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4972 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304973 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4974 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004975 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4976 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304977 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4978 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004979 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4980 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304981 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4982 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004983 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4984 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304985 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4986 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004987 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4988 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304989 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4990 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004991 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4992 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304993 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4994 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004995 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4996 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304997 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4998 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004999 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5000 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305001 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5002 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005003 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5004 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305005 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5006 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005007 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5008 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305009 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5010 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005011 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5012 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305013 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5014 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005015 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5016 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305017 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5018 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005019 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5020 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305021 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5022 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305023 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5024 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
5025 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5026 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005027 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5028 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305029 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5030 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005031 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5032 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305033 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5034 msm_routing_put_audio_mixer),
5035
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305036};
5037
5038static const struct snd_kcontrol_new tertiary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005039 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5040 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305041 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5042 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005043 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5044 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305045 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5046 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005047 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5048 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305049 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5050 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005051 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5052 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305053 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5054 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005055 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5056 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305057 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5058 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005059 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5060 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305061 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5062 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005063 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5064 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305065 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5066 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005067 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5068 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305069 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5070 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005071 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5072 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305073 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5074 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005075 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5076 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305077 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5078 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005079 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5080 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305081 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5082 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005083 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5084 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305085 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5086 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005087 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5088 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305089 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5090 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005091 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5092 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305093 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5094 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005095 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5096 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305097 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5098 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005099 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5100 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305101 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5102 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005103 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5104 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305105 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5106 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305107 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5108 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
5109 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5110 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005111 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5112 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305113 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5114 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005115 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5116 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305117 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5118 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305119};
5120
5121static const struct snd_kcontrol_new secondary_mi2s_rx2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005122 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5123 MSM_BACKEND_DAI_SECONDARY_MI2S_RX_SD1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305124 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5125 msm_routing_put_audio_mixer),
5126};
5127
5128static const struct snd_kcontrol_new secondary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005129 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5130 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305131 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5132 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005133 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5134 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305135 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5136 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005137 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5138 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305139 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5140 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005141 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5142 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305143 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5144 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005145 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5146 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305147 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5148 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005149 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5150 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305151 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5152 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005153 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5154 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305155 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5156 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005157 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5158 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305159 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005161 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5162 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305163 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5164 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005165 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5166 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305167 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005169 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5170 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305171 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5172 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005173 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5174 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305175 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5176 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005177 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5178 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305179 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5180 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005181 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5182 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305183 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5184 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005185 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5186 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305187 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5188 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005189 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5190 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305191 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5192 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005193 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5194 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305195 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5196 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005197 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5198 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305199 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5200 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005201 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5202 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305203 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5204 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305205 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5206 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
5207 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5208 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005209 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5210 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305211 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5212 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005213 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5214 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305215 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5216 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305217};
5218
5219static const struct snd_kcontrol_new primary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005220 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5221 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305222 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5223 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005224 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5225 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305226 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5227 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005228 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5229 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305230 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5231 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005232 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5233 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305234 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5235 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005236 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5237 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305238 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5239 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005240 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5241 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305242 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5243 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005244 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5245 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305246 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5247 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005248 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5249 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305250 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5251 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005252 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5253 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305254 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5255 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005256 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5257 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305258 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5259 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005260 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5261 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305262 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5263 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005264 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5265 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305266 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5267 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005268 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5269 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305270 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5271 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005272 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5273 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305274 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5275 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005276 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5277 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305278 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5279 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005280 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5281 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305282 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5283 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005284 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5285 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305286 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5287 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005288 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5289 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305290 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5291 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005292 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5293 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305294 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5295 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305296 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5297 MSM_BACKEND_DAI_PRI_MI2S_RX,
5298 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5299 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005300 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5301 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305302 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5303 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005304 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5305 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305306 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5307 msm_routing_put_audio_mixer),
5308
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305309};
5310
5311static const struct snd_kcontrol_new int0_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005312 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5313 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305314 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5315 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005316 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5317 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305318 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5319 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005320 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5321 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305322 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5323 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005324 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5325 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305326 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5327 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005328 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5329 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305330 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5331 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005332 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5333 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305334 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5335 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005336 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5337 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305338 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5339 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005340 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5341 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305342 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5343 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005344 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5345 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305346 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5347 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005348 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5349 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305350 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5351 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005352 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5353 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305354 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5355 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005356 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5357 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305358 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5359 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005360 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5361 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305362 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5363 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005364 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5365 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305366 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5367 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005368 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5369 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305370 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5371 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005372 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5373 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305374 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5375 msm_routing_put_audio_mixer),
5376};
5377
5378static const struct snd_kcontrol_new int4_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005379 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5380 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305381 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5382 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005383 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5384 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305385 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5386 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005387 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5388 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305389 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5390 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005391 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5392 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305393 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5394 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005395 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5396 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305397 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5398 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005399 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5400 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305401 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5402 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005403 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5404 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305405 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5406 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005407 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5408 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305409 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5410 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005411 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5412 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305413 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5414 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005415 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5416 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305417 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5418 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005419 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5420 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305421 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5422 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005423 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5424 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305425 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5426 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005427 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5428 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305429 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5430 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005431 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5432 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305433 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5434 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005435 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5436 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305437 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5438 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005439 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5440 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305441 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5442 msm_routing_put_audio_mixer),
5443};
5444
5445static const struct snd_kcontrol_new hdmi_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005446 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5447 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305448 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5449 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005450 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5451 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305452 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5453 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005454 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5455 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305456 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5457 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005458 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5459 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305460 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5461 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005462 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5463 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305464 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5465 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005466 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5467 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305468 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5469 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005470 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5471 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305472 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5473 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005474 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5475 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305476 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5477 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005478 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5479 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305480 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5481 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005482 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5483 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305484 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5485 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005486 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5487 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305488 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5489 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005490 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5491 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305492 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5493 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005494 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5495 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305496 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5497 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005498 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5499 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305500 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5501 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005502 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5503 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305504 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5505 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005506 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5507 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305508 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5509 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005510 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5511 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305512 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5513 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005514 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5515 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305516 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5517 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005518 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5519 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305520 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5521 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305522 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5523 MSM_BACKEND_DAI_HDMI_RX,
5524 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5525 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005526 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5527 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305528 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5529 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005530 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5531 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305532 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5533 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305534};
5535
5536static const struct snd_kcontrol_new display_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005537 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5538 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305539 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005541 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5542 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305543 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005545 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5546 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305547 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005549 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5550 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305551 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005553 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5554 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305555 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5556 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005557 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5558 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305559 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5560 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005561 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5562 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305563 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5564 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005565 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5566 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305567 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5568 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005569 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5570 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305571 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5572 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005573 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5574 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305575 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5576 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005577 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5578 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305579 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5580 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005581 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5582 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305583 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5584 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005585 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5586 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305587 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5588 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005589 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5590 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305591 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5592 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005593 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5594 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305595 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5596 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005597 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5598 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305599 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5600 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305601 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5602 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
5603 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5604 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305605};
5606
Karthikeyan Mani57550082018-05-03 18:43:58 -07005607static const struct snd_kcontrol_new display_port1_mixer_controls[] = {
5608 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5609 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5610 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5611 msm_routing_put_audio_mixer),
5612 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5613 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5614 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5615 msm_routing_put_audio_mixer),
5616 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5617 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5618 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5619 msm_routing_put_audio_mixer),
5620 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5621 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5622 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5623 msm_routing_put_audio_mixer),
5624 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5625 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5626 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5627 msm_routing_put_audio_mixer),
5628 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5629 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5630 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5631 msm_routing_put_audio_mixer),
5632 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5633 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5634 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5635 msm_routing_put_audio_mixer),
5636 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5637 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5638 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5639 msm_routing_put_audio_mixer),
5640 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5641 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5642 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5643 msm_routing_put_audio_mixer),
5644 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5645 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5646 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5647 msm_routing_put_audio_mixer),
5648 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5649 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5650 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5651 msm_routing_put_audio_mixer),
5652 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5653 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5654 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5655 msm_routing_put_audio_mixer),
5656 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5657 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5658 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5659 msm_routing_put_audio_mixer),
5660 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5661 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5662 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5663 msm_routing_put_audio_mixer),
5664 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5665 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5666 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5667 msm_routing_put_audio_mixer),
5668 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5669 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5670 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5671 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305672 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5673 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5674 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5675 msm_routing_put_audio_mixer),
Karthikeyan Mani57550082018-05-03 18:43:58 -07005676};
5677
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305678 /* incall music delivery mixer */
5679static const struct snd_kcontrol_new incall_music_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005680 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5681 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305682 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5683 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005684 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5685 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305686 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5687 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005688 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5689 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305690 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5691 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005692 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5693 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305694 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5695 msm_routing_put_audio_mixer),
5696};
5697
5698static const struct snd_kcontrol_new incall_music2_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005699 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5700 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305701 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5702 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005703 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5704 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305705 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5706 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005707 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5708 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305709 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5710 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005711 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5712 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305713 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5714 msm_routing_put_audio_mixer),
5715};
5716
5717static const struct snd_kcontrol_new slimbus_4_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005718 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5719 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305720 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5721 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005722 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5723 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305724 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5725 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005726 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5727 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305728 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5729 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005730 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5731 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305732 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5733 msm_routing_put_audio_mixer),
5734};
5735
5736static const struct snd_kcontrol_new slimbus_6_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005737 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5738 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305739 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5740 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005741 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5742 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305743 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5744 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005745 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5746 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305747 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5748 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005749 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5750 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305751 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5752 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005753 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5754 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305755 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5756 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005757 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5758 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305759 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5760 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005761 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5762 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305763 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5764 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005765 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5766 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305767 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5768 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005769 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5770 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305771 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5772 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005773 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5774 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305775 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5776 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005777 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5778 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305779 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5780 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005781 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5782 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305783 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5784 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005785 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5786 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305787 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5788 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005789 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5790 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305791 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5792 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005793 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5794 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305795 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5796 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005797 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5798 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305799 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5800 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305801 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5802 MSM_BACKEND_DAI_SLIMBUS_6_RX,
5803 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5804 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305805};
5806
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305807static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_mixer_controls[] = {
5808 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5809 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5810 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5811 msm_routing_put_audio_mixer),
5812 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5813 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5814 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5815 msm_routing_put_audio_mixer),
5816 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5817 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5818 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5819 msm_routing_put_audio_mixer),
5820 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5821 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5822 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5823 msm_routing_put_audio_mixer),
5824 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5825 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5826 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5827 msm_routing_put_audio_mixer),
5828 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5829 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5830 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5831 msm_routing_put_audio_mixer),
5832 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5833 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5834 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5835 msm_routing_put_audio_mixer),
5836 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5837 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5838 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5839 msm_routing_put_audio_mixer),
5840 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5841 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5842 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5843 msm_routing_put_audio_mixer),
5844 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5845 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5846 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5847 msm_routing_put_audio_mixer),
5848 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5849 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5850 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5851 msm_routing_put_audio_mixer),
5852 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5853 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5854 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5855 msm_routing_put_audio_mixer),
5856 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5857 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5858 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5859 msm_routing_put_audio_mixer),
5860 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5861 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5862 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5863 msm_routing_put_audio_mixer),
5864 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5865 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5866 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5867 msm_routing_put_audio_mixer),
5868 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5869 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5870 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5871 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305872 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5873 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5874 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5875 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305876};
5877
5878static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_mixer_controls[] = {
5879 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5880 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5881 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5882 msm_routing_put_audio_mixer),
5883 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5884 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5885 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5886 msm_routing_put_audio_mixer),
5887 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5888 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5889 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5890 msm_routing_put_audio_mixer),
5891 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5892 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5893 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5894 msm_routing_put_audio_mixer),
5895 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5896 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5897 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5898 msm_routing_put_audio_mixer),
5899 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5900 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5901 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5902 msm_routing_put_audio_mixer),
5903 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5904 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5905 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5906 msm_routing_put_audio_mixer),
5907 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5908 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5909 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5910 msm_routing_put_audio_mixer),
5911 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5912 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5913 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5914 msm_routing_put_audio_mixer),
5915 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5916 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5917 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5918 msm_routing_put_audio_mixer),
5919 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5920 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5921 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5922 msm_routing_put_audio_mixer),
5923 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5924 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5925 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5926 msm_routing_put_audio_mixer),
5927 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5928 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5929 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5930 msm_routing_put_audio_mixer),
5931 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5932 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5933 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5934 msm_routing_put_audio_mixer),
5935 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5936 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5937 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5938 msm_routing_put_audio_mixer),
5939 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5940 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5941 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5942 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305943 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5944 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5945 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5946 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305947};
5948
Aditya Bavanari1e84a932018-06-18 19:40:08 +05305949static const struct snd_kcontrol_new rx_cdc_dma_rx_0_mixer_controls[] = {
5950 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5951 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5952 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5953 msm_routing_put_audio_mixer),
5954 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5955 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5956 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5957 msm_routing_put_audio_mixer),
5958 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5959 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5960 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5961 msm_routing_put_audio_mixer),
5962 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5963 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5964 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5965 msm_routing_put_audio_mixer),
5966 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5967 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5968 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5969 msm_routing_put_audio_mixer),
5970 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5971 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5972 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5973 msm_routing_put_audio_mixer),
5974 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5975 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5976 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5977 msm_routing_put_audio_mixer),
5978 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5979 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5980 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5981 msm_routing_put_audio_mixer),
5982 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5983 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5984 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5985 msm_routing_put_audio_mixer),
5986 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5987 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5988 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5989 msm_routing_put_audio_mixer),
5990 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5991 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5992 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5993 msm_routing_put_audio_mixer),
5994 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5995 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5996 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5997 msm_routing_put_audio_mixer),
5998 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5999 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6000 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6001 msm_routing_put_audio_mixer),
6002 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6003 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6004 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6005 msm_routing_put_audio_mixer),
6006 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6007 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6008 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6009 msm_routing_put_audio_mixer),
6010 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6011 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6012 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6013 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306014 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6015 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6016 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6017 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306018};
6019
6020static const struct snd_kcontrol_new rx_cdc_dma_rx_1_mixer_controls[] = {
6021 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6022 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6023 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6024 msm_routing_put_audio_mixer),
6025 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6026 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6027 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6028 msm_routing_put_audio_mixer),
6029 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6030 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6031 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6032 msm_routing_put_audio_mixer),
6033 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6034 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6035 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6036 msm_routing_put_audio_mixer),
6037 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6038 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6039 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6040 msm_routing_put_audio_mixer),
6041 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6042 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6043 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6044 msm_routing_put_audio_mixer),
6045 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6046 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6047 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6048 msm_routing_put_audio_mixer),
6049 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6050 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6051 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6052 msm_routing_put_audio_mixer),
6053 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6054 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6055 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6056 msm_routing_put_audio_mixer),
6057 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6058 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6059 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6060 msm_routing_put_audio_mixer),
6061 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6062 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6063 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6064 msm_routing_put_audio_mixer),
6065 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6066 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6067 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6068 msm_routing_put_audio_mixer),
6069 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6070 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6071 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6072 msm_routing_put_audio_mixer),
6073 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6074 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6075 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6076 msm_routing_put_audio_mixer),
6077 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6078 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6079 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6080 msm_routing_put_audio_mixer),
6081 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6082 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6083 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6084 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306085 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6086 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6087 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6088 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306089};
6090
6091static const struct snd_kcontrol_new rx_cdc_dma_rx_2_mixer_controls[] = {
6092 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6093 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6094 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6095 msm_routing_put_audio_mixer),
6096 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6097 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6098 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6099 msm_routing_put_audio_mixer),
6100 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6101 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6102 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6103 msm_routing_put_audio_mixer),
6104 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6105 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6106 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6107 msm_routing_put_audio_mixer),
6108 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6109 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6110 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6111 msm_routing_put_audio_mixer),
6112 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6113 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6114 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6115 msm_routing_put_audio_mixer),
6116 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6117 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6118 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6119 msm_routing_put_audio_mixer),
6120 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6121 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6122 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6123 msm_routing_put_audio_mixer),
6124 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6125 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6126 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6127 msm_routing_put_audio_mixer),
6128 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6129 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6130 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6131 msm_routing_put_audio_mixer),
6132 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6133 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6134 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6135 msm_routing_put_audio_mixer),
6136 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6137 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6138 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6139 msm_routing_put_audio_mixer),
6140 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6141 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6142 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6143 msm_routing_put_audio_mixer),
6144 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6145 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6146 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6147 msm_routing_put_audio_mixer),
6148 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6149 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6150 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6151 msm_routing_put_audio_mixer),
6152 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6153 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6154 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6155 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306156 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6157 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6158 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6159 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306160};
6161
6162static const struct snd_kcontrol_new rx_cdc_dma_rx_3_mixer_controls[] = {
6163 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6164 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6165 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6166 msm_routing_put_audio_mixer),
6167 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6168 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6169 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6170 msm_routing_put_audio_mixer),
6171 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6172 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6173 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6174 msm_routing_put_audio_mixer),
6175 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6176 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6177 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6178 msm_routing_put_audio_mixer),
6179 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6180 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6181 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6182 msm_routing_put_audio_mixer),
6183 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6184 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6185 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6186 msm_routing_put_audio_mixer),
6187 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6188 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6189 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6190 msm_routing_put_audio_mixer),
6191 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6192 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6193 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6194 msm_routing_put_audio_mixer),
6195 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6196 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6197 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6198 msm_routing_put_audio_mixer),
6199 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6200 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6201 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6202 msm_routing_put_audio_mixer),
6203 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6204 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6205 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6206 msm_routing_put_audio_mixer),
6207 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6208 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6209 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6210 msm_routing_put_audio_mixer),
6211 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6212 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6213 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6214 msm_routing_put_audio_mixer),
6215 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6216 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6217 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6218 msm_routing_put_audio_mixer),
6219 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6220 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6221 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6222 msm_routing_put_audio_mixer),
6223 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6224 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6225 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6226 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306227 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6228 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6229 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6230 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306231};
6232
6233static const struct snd_kcontrol_new rx_cdc_dma_rx_4_mixer_controls[] = {
6234 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6235 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6236 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6237 msm_routing_put_audio_mixer),
6238 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6239 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6240 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6241 msm_routing_put_audio_mixer),
6242 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6243 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6244 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6245 msm_routing_put_audio_mixer),
6246 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6247 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6248 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6249 msm_routing_put_audio_mixer),
6250 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6251 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6252 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6253 msm_routing_put_audio_mixer),
6254 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6255 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6256 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6257 msm_routing_put_audio_mixer),
6258 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6259 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6260 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6261 msm_routing_put_audio_mixer),
6262 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6263 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6264 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6265 msm_routing_put_audio_mixer),
6266 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6267 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6268 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6269 msm_routing_put_audio_mixer),
6270 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6271 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6272 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6273 msm_routing_put_audio_mixer),
6274 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6275 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6276 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6277 msm_routing_put_audio_mixer),
6278 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6279 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6280 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6281 msm_routing_put_audio_mixer),
6282 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6283 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6284 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6285 msm_routing_put_audio_mixer),
6286 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6287 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6288 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6289 msm_routing_put_audio_mixer),
6290 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6291 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6292 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6293 msm_routing_put_audio_mixer),
6294 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6295 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6296 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6297 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306298 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6299 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6300 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6301 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306302};
6303
6304static const struct snd_kcontrol_new rx_cdc_dma_rx_5_mixer_controls[] = {
6305 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6306 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6307 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6308 msm_routing_put_audio_mixer),
6309 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6310 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6311 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6312 msm_routing_put_audio_mixer),
6313 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6314 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6315 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6316 msm_routing_put_audio_mixer),
6317 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6318 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6319 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6320 msm_routing_put_audio_mixer),
6321 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6322 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6323 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6324 msm_routing_put_audio_mixer),
6325 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6326 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6327 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6328 msm_routing_put_audio_mixer),
6329 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6330 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6331 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6332 msm_routing_put_audio_mixer),
6333 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6334 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6335 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6336 msm_routing_put_audio_mixer),
6337 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6338 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6339 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6340 msm_routing_put_audio_mixer),
6341 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6342 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6343 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6344 msm_routing_put_audio_mixer),
6345 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6346 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6347 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6348 msm_routing_put_audio_mixer),
6349 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6350 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6351 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6352 msm_routing_put_audio_mixer),
6353 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6354 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6355 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6356 msm_routing_put_audio_mixer),
6357 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6358 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6359 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6360 msm_routing_put_audio_mixer),
6361 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6362 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6363 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6364 msm_routing_put_audio_mixer),
6365 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6366 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6367 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6368 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306369 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6370 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6371 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6372 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306373};
6374
6375static const struct snd_kcontrol_new rx_cdc_dma_rx_6_mixer_controls[] = {
6376 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6377 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6378 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6379 msm_routing_put_audio_mixer),
6380 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6381 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6382 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6383 msm_routing_put_audio_mixer),
6384 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6385 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6386 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6387 msm_routing_put_audio_mixer),
6388 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6389 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6390 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6391 msm_routing_put_audio_mixer),
6392 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6393 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6394 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6395 msm_routing_put_audio_mixer),
6396 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6397 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6398 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6399 msm_routing_put_audio_mixer),
6400 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6401 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6402 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6403 msm_routing_put_audio_mixer),
6404 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6405 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6406 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6407 msm_routing_put_audio_mixer),
6408 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6409 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6410 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6411 msm_routing_put_audio_mixer),
6412 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6413 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6414 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6415 msm_routing_put_audio_mixer),
6416 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6417 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6418 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6419 msm_routing_put_audio_mixer),
6420 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6421 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6422 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6423 msm_routing_put_audio_mixer),
6424 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6425 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6426 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6427 msm_routing_put_audio_mixer),
6428 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6429 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6430 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6431 msm_routing_put_audio_mixer),
6432 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6433 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6434 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6435 msm_routing_put_audio_mixer),
6436 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6437 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6438 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6439 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306440 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6441 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6442 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6443 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306444};
6445
6446static const struct snd_kcontrol_new rx_cdc_dma_rx_7_mixer_controls[] = {
6447 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6448 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6449 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6450 msm_routing_put_audio_mixer),
6451 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6452 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6453 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6454 msm_routing_put_audio_mixer),
6455 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6456 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6457 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6458 msm_routing_put_audio_mixer),
6459 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6460 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6461 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6462 msm_routing_put_audio_mixer),
6463 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6464 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6465 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6466 msm_routing_put_audio_mixer),
6467 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6468 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6469 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6470 msm_routing_put_audio_mixer),
6471 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6472 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6473 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6474 msm_routing_put_audio_mixer),
6475 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6476 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6477 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6478 msm_routing_put_audio_mixer),
6479 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6480 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6481 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6482 msm_routing_put_audio_mixer),
6483 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6484 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6485 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6486 msm_routing_put_audio_mixer),
6487 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6488 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6489 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6490 msm_routing_put_audio_mixer),
6491 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6492 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6493 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6494 msm_routing_put_audio_mixer),
6495 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6496 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6497 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6498 msm_routing_put_audio_mixer),
6499 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6500 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6501 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6502 msm_routing_put_audio_mixer),
6503 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6504 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6505 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6506 msm_routing_put_audio_mixer),
6507 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6508 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6509 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6510 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306511 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6512 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6513 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6514 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306515};
6516
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306517static const struct snd_kcontrol_new slimbus_7_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006518 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6519 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306520 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6521 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006522 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6523 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306524 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6525 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006526 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6527 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306528 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6529 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006530 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6531 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306532 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6533 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006534 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6535 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306536 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6537 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006538 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6539 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306540 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6541 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006542 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6543 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306544 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6545 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006546 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6547 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306548 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6549 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006550 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6551 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306552 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6553 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006554 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6555 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306556 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6557 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006558 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6559 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306560 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6561 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006562 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6563 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306564 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6565 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006566 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6567 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306568 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6569 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006570 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6571 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306572 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6573 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006574 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6575 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306576 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6577 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006578 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6579 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306580 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6581 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306582 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6583 MSM_BACKEND_DAI_SLIMBUS_7_RX,
6584 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6585 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306586};
6587
Surendar Karka3ef3d812018-09-28 18:52:35 +05306588static const struct snd_kcontrol_new slimbus_9_rx_mixer_controls[] = {
6589 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6590 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6591 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6592 msm_routing_put_audio_mixer),
6593 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6594 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6595 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6596 msm_routing_put_audio_mixer),
6597 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6598 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6599 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6600 msm_routing_put_audio_mixer),
6601 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6602 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6603 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6604 msm_routing_put_audio_mixer),
6605 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6606 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6607 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6608 msm_routing_put_audio_mixer),
6609 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6610 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6611 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6612 msm_routing_put_audio_mixer),
6613 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6614 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6615 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6616 msm_routing_put_audio_mixer),
6617 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6618 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6619 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6620 msm_routing_put_audio_mixer),
6621 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6622 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6623 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6624 msm_routing_put_audio_mixer),
6625 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6626 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6627 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6628 msm_routing_put_audio_mixer),
6629 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6630 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6631 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6632 msm_routing_put_audio_mixer),
6633 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6634 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6635 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6636 msm_routing_put_audio_mixer),
6637 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6638 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6639 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6640 msm_routing_put_audio_mixer),
6641 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6642 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6643 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6644 msm_routing_put_audio_mixer),
6645 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6646 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6647 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6648 msm_routing_put_audio_mixer),
6649 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6650 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6651 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6652 msm_routing_put_audio_mixer),
6653 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6654 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6655 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6656 msm_routing_put_audio_mixer),
6657};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306658static const struct snd_kcontrol_new usb_audio_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006659 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6660 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306661 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6662 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006663 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6664 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306665 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6666 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006667 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6668 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306669 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6670 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006671 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6672 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306673 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6674 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006675 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6676 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306677 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6678 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006679 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6680 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306681 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6682 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006683 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6684 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306685 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6686 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006687 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6688 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306689 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6690 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006691 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6692 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306693 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6694 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006695 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6696 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306697 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6698 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006699 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6700 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306701 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6702 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006703 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6704 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306705 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6706 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006707 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6708 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306709 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6710 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006711 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6712 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306713 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6714 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006715 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6716 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306717 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6718 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006719 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6720 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306721 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6722 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306723 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6724 MSM_BACKEND_DAI_USB_RX,
6725 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6726 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306727};
6728
6729static const struct snd_kcontrol_new int_bt_sco_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006730 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6731 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306732 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6733 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006734 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6735 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306736 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6737 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006738 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6739 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306740 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6741 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006742 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6743 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306744 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6745 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006746 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6747 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306748 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6749 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006750 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6751 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306752 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006754 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6755 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306756 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6757 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006758 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6759 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306760 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6761 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006762 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6763 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306764 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6765 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006766 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6767 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306768 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6769 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006770 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6771 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306772 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6773 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006774 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6775 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306776 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6777 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006778 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6779 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306780 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6781 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006782 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6783 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306784 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6785 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006786 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6787 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306788 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6789 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006790 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6791 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306792 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6793 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006794 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6795 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306796 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6797 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006798 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6799 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306800 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6801 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006802 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6803 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306804 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6805 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306806 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6807 MSM_BACKEND_DAI_INT_BT_SCO_RX,
6808 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6809 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006810 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6811 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306812 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6813 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006814 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6815 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306816 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6817 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306818};
6819
6820static const struct snd_kcontrol_new int_bt_a2dp_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006821 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6822 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306823 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6824 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006825 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6826 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306827 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6828 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006829 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6830 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306831 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6832 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006833 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6834 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306835 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6836 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006837 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6838 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306839 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6840 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006841 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6842 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306843 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6844 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006845 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6846 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306847 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6848 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006849 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6850 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306851 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6852 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006853 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6854 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306855 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6856 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006857 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6858 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306859 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6860 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006861 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6862 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306863 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6864 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006865 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6866 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306867 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6868 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006869 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6870 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306871 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6872 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006873 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6874 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306875 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6876 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006877 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6878 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306879 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6880 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006881 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6882 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306883 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6884 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306885 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6886 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
6887 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6888 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306889};
6890
6891static const struct snd_kcontrol_new int_fm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006892 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6893 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306894 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6895 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006896 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6897 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306898 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6899 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006900 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6901 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306902 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6903 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006904 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6905 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306906 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6907 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006908 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6909 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306910 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6911 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006912 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6913 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306914 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6915 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006916 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6917 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306918 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6919 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006920 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6921 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306922 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6923 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006924 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6925 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306926 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6927 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006928 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6929 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306930 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6931 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006932 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6933 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306934 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6935 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006936 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6937 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306938 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6939 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006940 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6941 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306942 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6943 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006944 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6945 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306946 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6947 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006948 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6949 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306950 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6951 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006952 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6953 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306954 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6955 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006956 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6957 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306958 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6959 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006960 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6961 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306962 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6963 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006964 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6965 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306966 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6967 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306968 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6969 MSM_BACKEND_DAI_INT_FM_RX,
6970 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6971 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006972 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6973 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306974 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6975 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006976 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6977 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306978 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6979 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306980};
6981
6982static const struct snd_kcontrol_new afe_pcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006983 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6984 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306985 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6986 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006987 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6988 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306989 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6990 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006991 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6992 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306993 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6994 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006995 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6996 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306997 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6998 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006999 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7000 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307001 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7002 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007003 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7004 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307005 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7006 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007007 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7008 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307009 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7010 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007011 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7012 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307013 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7014 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007015 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7016 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307017 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7018 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007019 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7020 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307021 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7022 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007023 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7024 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307025 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7026 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007027 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7028 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307029 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7030 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007031 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7032 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307033 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7034 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007035 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7036 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307037 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7038 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007039 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7040 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307041 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7042 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007043 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7044 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307045 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7046 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007047 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7048 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307049 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7050 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007051 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7052 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307053 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7054 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007055 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7056 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307057 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7058 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307059 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7060 MSM_BACKEND_DAI_AFE_PCM_RX,
7061 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7062 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007063 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7064 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307065 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7066 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007067 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7068 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307069 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7070 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307071};
7072
7073static const struct snd_kcontrol_new auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007074 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7075 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307076 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7077 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007078 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7079 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307080 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7081 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007082 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7083 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307084 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7085 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007086 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7087 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307088 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7089 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007090 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7091 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307092 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7093 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007094 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7095 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307096 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7097 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007098 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7099 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307100 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7101 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007102 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7103 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307104 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7105 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007106 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7107 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307108 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7109 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007110 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7111 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307112 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7113 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007114 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7115 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307116 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7117 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007118 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7119 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307120 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7121 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007122 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7123 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307124 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7125 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007126 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7127 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307128 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7129 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007130 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7131 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307132 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7133 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007134 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7135 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307136 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7137 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007138 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7139 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307140 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7141 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007142 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7143 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307144 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7145 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007146 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7147 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307148 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7149 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007150 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7151 MSM_BACKEND_DAI_AUXPCM_RX,
7152 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7153 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307154 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7155 MSM_BACKEND_DAI_AUXPCM_RX,
7156 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7157 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007158 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7159 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307160 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7161 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007162 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7163 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307164 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7165 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307166};
7167
7168static const struct snd_kcontrol_new sec_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007169 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7170 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307171 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7172 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007173 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7174 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307175 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7176 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007177 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7178 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307179 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7180 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007181 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7182 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307183 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7184 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007185 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7186 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307187 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7188 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007189 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7190 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307191 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7192 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007193 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7194 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307195 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7196 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007197 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7198 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307199 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7200 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007201 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7202 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307203 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7204 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007205 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7206 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307207 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7208 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007209 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7210 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307211 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7212 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007213 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7214 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307215 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7216 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007217 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7218 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307219 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7220 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007221 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7222 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307223 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7224 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007225 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7226 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307227 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7228 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007229 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7230 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307231 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7232 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007233 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7234 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307235 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7236 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007237 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7238 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307239 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7240 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007241 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7242 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307243 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7244 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007245 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7246 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
7247 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7248 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307249 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7250 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
7251 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7252 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007253 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7254 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307255 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7256 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007257 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7258 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307259 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7260 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307261};
7262
7263static const struct snd_kcontrol_new tert_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007264 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7265 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307266 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7267 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007268 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7269 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307270 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7271 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007272 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7273 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307274 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7275 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007276 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7277 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307278 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7279 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007280 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7281 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307282 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7283 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007284 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7285 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307286 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7287 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007288 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7289 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307290 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7291 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007292 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7293 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307294 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7295 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007296 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7297 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307298 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7299 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007300 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7301 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307302 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7303 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007304 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7305 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307306 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7307 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007308 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7309 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307310 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7311 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007312 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7313 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307314 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7315 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007316 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7317 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307318 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7319 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007320 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7321 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307322 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7323 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007324 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7325 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307326 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7327 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307328 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7329 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
7330 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7331 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307332};
7333
7334static const struct snd_kcontrol_new quat_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007335 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7336 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307337 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7338 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007339 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7340 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307341 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7342 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007343 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7344 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307345 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7346 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007347 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7348 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307349 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7350 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007351 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7352 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307353 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7354 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007355 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7356 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307357 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7358 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007359 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7360 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307361 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7362 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007363 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7364 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307365 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7366 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007367 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7368 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307369 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7370 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007371 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7372 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307373 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7374 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007375 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7376 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307377 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7378 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007379 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7380 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307381 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7382 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007383 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7384 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307385 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7386 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007387 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7388 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307389 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7390 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007391 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7392 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307393 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7394 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007395 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7396 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307397 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7398 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307399 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7400 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
7401 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7402 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307403};
7404
Rohit Kumara5077932017-09-10 22:05:05 +05307405static const struct snd_kcontrol_new quin_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007406 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7407 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307408 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7409 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007410 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7411 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307412 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7413 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007414 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7415 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307416 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7417 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007418 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7419 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307420 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7421 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007422 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7423 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307424 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7425 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007426 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7427 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307428 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7429 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007430 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7431 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307432 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7433 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007434 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7435 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307436 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7437 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007438 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7439 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307440 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7441 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007442 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7443 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307444 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7445 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007446 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7447 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307448 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7449 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007450 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7451 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307452 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7453 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007454 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7455 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307456 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7457 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007458 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7459 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307460 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7461 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007462 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7463 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307464 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7465 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007466 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7467 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307468 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7469 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307470 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7471 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
7472 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7473 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05307474};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307475static const struct snd_kcontrol_new pri_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007476 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7477 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307478 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7479 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007480 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7481 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307482 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7483 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007484 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7485 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307486 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7487 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007488 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7489 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307490 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7491 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007492 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7493 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307494 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7495 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007496 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7497 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307498 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7499 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007500 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7501 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307502 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7503 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007504 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7505 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307506 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7507 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007508 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7509 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307510 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7511 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007512 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7513 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307514 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7515 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007516 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7517 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307518 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7519 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007520 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7521 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307522 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7523 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007524 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7525 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307526 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7527 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007528 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7529 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307530 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7531 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007532 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7533 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307534 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7535 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007536 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7537 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307538 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7539 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007540 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7541 MSM_BACKEND_DAI_PRI_TDM_RX_0,
7542 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7543 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307544};
7545
7546static const struct snd_kcontrol_new pri_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007547 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7548 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307549 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7550 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007551 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7552 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307553 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7554 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007555 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7556 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307557 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7558 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007559 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7560 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307561 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7562 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007563 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7564 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307565 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7566 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007567 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7568 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307569 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7570 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007571 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7572 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307573 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7574 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007575 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7576 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307577 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7578 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007579 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7580 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307581 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7582 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007583 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7584 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307585 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7586 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007587 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7588 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307589 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7590 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007591 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7592 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307593 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7594 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007595 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7596 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307597 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7598 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007599 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7600 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307601 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7602 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007603 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7604 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307605 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7606 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007607 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7608 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307609 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7610 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007611 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7612 MSM_BACKEND_DAI_PRI_TDM_RX_1,
7613 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7614 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307615};
7616
7617static const struct snd_kcontrol_new pri_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007618 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7619 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307620 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7621 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007622 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7623 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307624 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7625 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007626 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7627 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307628 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7629 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007630 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7631 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307632 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7633 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007634 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7635 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307636 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7637 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007638 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7639 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307640 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7641 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007642 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7643 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307644 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7645 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007646 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7647 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307648 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7649 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007650 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7651 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307652 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7653 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007654 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7655 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307656 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7657 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007658 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7659 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307660 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7661 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007662 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7663 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307664 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7665 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007666 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7667 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307668 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7669 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007670 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7671 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307672 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7673 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007674 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7675 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307676 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7677 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007678 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7679 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307680 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7681 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007682 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7683 MSM_BACKEND_DAI_PRI_TDM_RX_2,
7684 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7685 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307686};
7687
7688static const struct snd_kcontrol_new pri_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007689 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7690 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307691 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7692 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007693 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7694 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307695 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7696 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007697 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7698 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307699 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7700 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007701 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7702 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307703 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7704 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007705 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7706 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307707 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7708 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007709 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7710 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307711 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7712 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007713 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7714 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307715 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7716 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007717 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7718 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307719 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7720 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007721 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7722 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307723 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7724 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007725 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7726 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307727 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7728 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007729 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7730 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307731 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7732 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007733 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7734 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307735 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7736 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007737 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7738 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307739 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7740 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007741 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7742 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307743 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7744 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007745 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7746 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307747 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7748 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007749 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7750 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307751 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7752 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007753 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7754 MSM_BACKEND_DAI_PRI_TDM_RX_3,
7755 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7756 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307757};
7758
7759static const struct snd_kcontrol_new pri_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007760 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7761 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307762 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7763 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007764 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7765 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307766 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7767 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007768 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7769 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307770 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7771 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007772 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7773 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307774 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7775 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007776 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7777 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307778 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7779 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007780 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7781 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307782 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7783 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007784 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7785 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307786 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7787 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007788 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7789 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307790 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7791 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007792 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7793 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307794 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7795 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007796 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7797 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307798 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7799 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007800 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7801 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307802 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7803 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007804 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7805 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307806 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7807 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007808 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7809 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307810 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7811 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007812 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7813 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307814 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7815 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007816 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7817 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307818 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7819 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007820 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7821 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307822 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7823 msm_routing_put_audio_mixer),
7824};
7825
7826static const struct snd_kcontrol_new sec_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007827 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7828 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307829 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7830 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007831 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7832 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307833 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7834 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007835 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7836 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307837 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7838 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007839 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7840 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307841 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7842 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007843 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7844 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307845 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7846 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007847 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7848 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307849 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7850 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007851 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7852 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307853 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7854 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007855 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7856 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307857 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7858 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007859 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7860 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307861 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7862 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007863 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7864 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307865 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7866 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007867 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7868 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307869 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7870 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007871 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7872 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307873 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7874 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007875 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7876 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307877 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7878 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007879 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7880 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307881 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7882 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007883 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7884 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307885 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7886 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007887 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7888 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307889 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7890 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007891 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7892 MSM_BACKEND_DAI_SEC_TDM_RX_0,
7893 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7894 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307895};
7896
7897static const struct snd_kcontrol_new sec_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007898 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7899 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307900 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7901 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007902 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7903 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307904 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7905 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007906 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7907 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307908 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7909 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007910 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7911 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307912 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7913 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007914 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7915 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307916 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7917 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007918 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7919 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307920 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7921 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007922 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7923 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307924 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7925 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007926 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7927 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307928 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7929 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007930 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7931 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307932 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7933 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007934 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7935 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307936 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7937 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007938 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7939 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307940 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7941 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007942 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7943 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307944 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7945 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007946 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7947 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307948 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7949 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007950 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7951 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307952 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7953 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007954 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7955 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307956 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7957 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007958 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7959 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307960 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7961 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007962 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7963 MSM_BACKEND_DAI_SEC_TDM_RX_1,
7964 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7965 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307966};
7967
7968static const struct snd_kcontrol_new sec_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007969 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7970 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307971 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7972 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007973 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7974 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307975 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7976 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007977 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7978 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307979 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7980 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007981 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7982 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307983 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7984 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007985 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7986 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307987 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7988 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007989 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7990 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307991 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7992 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007993 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7994 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307995 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7996 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007997 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7998 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307999 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8000 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008001 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8002 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308003 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8004 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008005 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8006 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308007 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8008 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008009 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8010 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308011 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8012 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008013 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8014 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308015 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8016 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008017 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8018 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308019 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8020 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008021 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8022 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308023 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8024 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008025 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8026 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308027 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8028 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008029 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8030 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308031 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8032 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008033 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8034 MSM_BACKEND_DAI_SEC_TDM_RX_2,
8035 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8036 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308037};
8038
8039static const struct snd_kcontrol_new sec_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008040 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8041 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308042 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8043 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008044 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8045 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308046 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8047 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008048 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8049 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308050 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8051 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008052 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8053 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308054 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8055 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008056 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8057 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308058 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8059 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008060 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8061 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308062 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8063 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008064 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8065 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308066 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8067 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008068 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8069 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308070 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8071 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008072 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8073 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308074 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8075 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008076 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8077 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308078 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8079 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008080 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8081 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308082 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8083 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008084 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8085 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308086 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8087 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008088 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8089 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308090 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8091 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008092 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8093 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308094 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8095 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008096 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8097 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308098 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8099 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008100 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8101 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308102 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8103 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008104 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8105 MSM_BACKEND_DAI_SEC_TDM_RX_3,
8106 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8107 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308108};
8109
8110static const struct snd_kcontrol_new sec_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008111 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8112 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308113 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8114 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008115 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8116 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308117 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8118 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008119 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8120 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308121 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8122 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008123 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8124 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308125 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8126 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008127 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8128 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308129 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8130 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008131 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8132 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308133 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8134 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008135 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8136 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308137 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8138 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008139 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8140 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308141 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8142 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008143 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8144 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308145 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8146 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008147 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8148 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308149 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8150 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008151 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8152 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308153 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8154 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008155 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8156 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308157 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8158 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008159 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8160 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308161 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8162 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008163 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8164 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308165 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8166 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008167 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8168 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308169 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8170 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008171 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8172 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308173 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8174 msm_routing_put_audio_mixer),
8175};
8176
8177static const struct snd_kcontrol_new tert_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008178 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8179 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308180 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8181 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008182 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8183 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308184 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8185 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008186 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8187 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308188 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8189 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008190 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8191 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308192 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8193 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008194 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8195 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308196 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8197 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008198 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8199 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308200 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8201 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008202 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8203 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308204 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8205 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008206 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8207 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308208 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8209 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008210 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8211 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308212 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8213 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008214 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8215 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308216 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8217 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008218 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8219 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308220 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8221 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008222 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8223 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308224 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8225 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008226 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8227 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308228 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8229 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008230 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8231 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308232 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8233 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008234 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8235 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308236 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8237 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008238 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8239 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308240 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8241 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008242 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8243 MSM_BACKEND_DAI_TERT_TDM_RX_0,
8244 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8245 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308246};
8247
8248static const struct snd_kcontrol_new tert_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008249 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8250 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308251 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8252 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008253 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8254 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308255 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8256 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008257 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8258 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308259 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8260 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008261 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8262 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308263 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8264 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008265 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8266 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308267 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8268 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008269 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8270 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308271 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8272 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008273 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8274 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308275 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8276 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008277 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8278 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308279 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8280 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008281 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8282 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308283 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8284 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008285 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8286 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308287 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8288 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008289 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8290 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308291 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8292 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008293 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8294 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308295 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8296 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008297 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8298 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308299 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8300 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008301 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8302 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308303 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8304 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008305 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8306 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308307 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8308 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008309 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8310 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308311 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8312 msm_routing_put_audio_mixer),
8313};
8314
8315static const struct snd_kcontrol_new tert_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008316 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8317 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308318 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8319 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008320 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8321 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308322 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8323 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008324 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8325 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308326 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8327 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008328 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8329 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308330 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8331 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008332 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8333 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308334 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8335 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008336 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8337 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308338 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8339 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008340 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8341 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308342 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8343 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008344 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8345 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308346 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8347 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008348 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8349 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308350 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8351 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008352 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8353 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308354 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8355 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008356 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8357 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308358 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8359 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008360 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8361 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308362 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8363 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008364 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8365 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308366 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8367 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008368 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8369 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308370 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8371 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008372 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8373 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308374 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8375 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008376 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8377 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308378 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8379 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008380 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8381 MSM_BACKEND_DAI_TERT_TDM_RX_1,
8382 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8383 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308384};
8385
8386static const struct snd_kcontrol_new tert_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008387 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8388 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308389 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8390 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008391 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8392 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308393 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8394 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008395 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8396 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308397 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8398 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008399 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8400 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308401 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8402 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008403 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8404 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308405 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8406 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008407 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8408 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308409 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8410 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008411 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8412 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308413 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8414 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008415 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8416 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308417 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8418 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008419 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8420 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308421 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8422 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008423 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8424 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308425 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8426 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008427 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8428 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308429 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8430 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008431 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8432 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308433 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8434 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008435 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8436 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308437 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8438 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008439 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8440 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308441 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8442 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008443 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8444 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308445 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8446 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008447 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8448 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308449 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8450 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008451 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8452 MSM_BACKEND_DAI_TERT_TDM_RX_2,
8453 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8454 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308455};
8456
8457static const struct snd_kcontrol_new tert_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008458 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8459 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308460 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8461 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008462 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8463 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308464 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8465 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008466 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8467 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308468 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8469 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008470 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8471 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308472 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8473 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008474 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8475 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308476 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8477 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008478 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8479 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308480 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8481 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008482 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8483 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308484 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8485 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008486 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8487 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308488 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8489 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008490 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8491 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308492 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8493 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008494 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8495 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308496 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8497 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008498 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8499 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308500 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8501 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008502 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8503 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308504 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8505 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008506 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8507 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308508 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8509 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008510 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8511 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308512 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8513 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008514 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8515 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308516 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8517 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008518 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8519 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308520 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8521 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008522 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8523 MSM_BACKEND_DAI_TERT_TDM_RX_3,
8524 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8525 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308526};
8527
8528static const struct snd_kcontrol_new tert_tdm_rx_4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008529 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8530 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308531 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008533 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8534 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308535 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008537 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8538 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308539 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008541 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8542 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308543 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008545 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8546 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308547 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008549 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8550 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308551 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008553 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8554 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308555 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8556 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008557 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8558 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308559 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8560 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008561 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8562 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308563 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8564 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008565 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8566 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308567 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8568 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008569 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8570 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308571 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8572 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008573 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8574 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308575 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8576 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008577 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8578 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308579 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8580 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008581 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8582 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308583 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8584 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008585 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8586 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308587 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8588 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008589 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8590 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308591 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8592 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008593 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8594 MSM_BACKEND_DAI_TERT_TDM_RX_4,
8595 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8596 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308597};
8598
8599static const struct snd_kcontrol_new quat_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008600 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8601 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308602 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8603 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008604 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8605 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308606 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8607 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008608 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8609 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308610 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8611 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008612 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8613 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308614 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8615 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008616 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8617 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308618 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8619 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008620 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8621 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308622 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8623 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008624 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8625 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308626 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8627 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008628 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8629 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308630 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8631 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008632 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8633 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308634 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8635 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008636 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8637 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308638 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8639 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008640 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8641 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308642 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8643 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008644 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8645 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308646 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8647 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008648 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8649 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308650 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8651 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008652 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8653 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308654 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8655 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008656 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8657 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308658 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8659 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008660 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8661 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308662 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8663 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008664 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8665 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308666 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8667 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008668 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8669 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
8670 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8671 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308672};
8673
8674static const struct snd_kcontrol_new quat_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008675 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8676 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308677 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8678 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008679 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8680 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308681 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8682 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008683 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8684 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308685 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8686 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008687 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8688 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308689 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8690 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008691 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8692 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308693 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8694 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008695 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8696 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308697 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8698 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008699 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8700 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308701 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8702 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008703 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8704 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308705 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8706 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008707 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8708 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308709 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8710 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008711 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8712 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308713 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8714 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008715 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8716 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308717 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8718 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008719 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8720 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308721 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8722 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008723 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8724 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308725 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8726 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008727 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8728 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308729 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8730 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008731 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8732 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308733 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8734 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008735 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8736 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308737 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8738 msm_routing_put_audio_mixer),
8739};
8740
8741static const struct snd_kcontrol_new quat_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008742 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8743 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308744 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8745 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008746 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8747 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308748 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8749 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008750 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8751 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308752 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008754 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8755 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308756 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8757 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008758 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8759 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308760 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8761 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008762 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8763 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308764 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8765 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008766 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8767 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308768 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8769 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008770 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8771 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308772 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8773 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008774 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8775 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308776 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8777 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008778 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8779 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308780 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8781 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008782 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8783 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308784 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8785 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008786 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8787 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308788 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8789 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008790 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8791 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308792 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8793 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008794 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8795 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308796 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8797 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008798 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8799 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308800 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8801 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008802 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8803 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308804 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8805 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008806 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8807 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308808 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8809 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008810 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8811 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
8812 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8813 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308814};
8815
8816static const struct snd_kcontrol_new quat_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008817 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8818 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308819 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8820 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008821 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8822 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308823 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8824 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008825 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8826 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308827 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8828 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008829 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8830 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308831 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8832 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008833 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8834 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308835 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8836 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008837 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8838 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308839 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8840 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008841 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8842 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308843 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8844 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008845 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8846 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308847 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8848 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008849 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8850 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308851 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8852 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008853 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8854 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308855 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8856 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008857 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8858 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308859 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8860 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008861 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8862 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308863 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8864 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008865 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8866 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308867 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8868 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008869 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8870 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308871 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8872 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008873 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8874 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308875 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8876 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008877 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8878 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308879 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8880 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008881 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8882 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308883 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8884 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008885 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8886 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
8887 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8888 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308889};
8890
8891static const struct snd_kcontrol_new quat_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008892 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8893 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308894 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8895 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008896 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8897 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308898 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8899 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008900 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8901 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308902 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8903 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008904 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8905 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308906 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8907 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008908 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8909 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308910 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8911 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008912 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8913 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308914 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8915 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008916 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8917 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308918 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8919 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008920 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8921 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308922 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8923 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008924 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8925 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308926 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8927 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008928 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8929 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308930 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8931 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008932 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8933 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308934 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8935 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008936 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8937 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308938 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8939 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008940 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8941 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308942 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8943 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008944 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8945 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308946 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8947 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008948 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8949 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308950 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8951 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008952 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8953 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308954 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8955 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008956 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8957 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308958 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8959 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008960 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8961 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
8962 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8963 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308964};
8965
Rohit Kumara5077932017-09-10 22:05:05 +05308966static const struct snd_kcontrol_new quin_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008967 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8968 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308969 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8970 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008971 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8972 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308973 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8974 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008975 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8976 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308977 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8978 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008979 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8980 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308981 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8982 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008983 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8984 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308985 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8986 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008987 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8988 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308989 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8990 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008991 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8992 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308993 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8994 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008995 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8996 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308997 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8998 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008999 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9000 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309001 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9002 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009003 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9004 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309005 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9006 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009007 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9008 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309009 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9010 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009011 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9012 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309013 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9014 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009015 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9016 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309017 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9018 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009019 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9020 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309021 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9022 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009023 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9024 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309025 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9026 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009027 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9028 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309029 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9030 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009031 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9032 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309033 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9034 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009035 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9036 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
9037 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9038 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309039};
9040
9041static const struct snd_kcontrol_new quin_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009042 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9043 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309044 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9045 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009046 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9047 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309048 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9049 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009050 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9051 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309052 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9053 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009054 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9055 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309056 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9057 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009058 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9059 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309060 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9061 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009062 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9063 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309064 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9065 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009066 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9067 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309068 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9069 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009070 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9071 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309072 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9073 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009074 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9075 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309076 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9077 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009078 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9079 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309080 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9081 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009082 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9083 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309084 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9085 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009086 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9087 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309088 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9089 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009090 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9091 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309092 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9093 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009094 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9095 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309096 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9097 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009098 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9099 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309100 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9101 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009102 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9103 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309104 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9105 msm_routing_put_audio_mixer),
9106};
9107
9108static const struct snd_kcontrol_new quin_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009109 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9110 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309111 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9112 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009113 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9114 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309115 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9116 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009117 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9118 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309119 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9120 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009121 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9122 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309123 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9124 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009125 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9126 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309127 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9128 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009129 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9130 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309131 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9132 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009133 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9134 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309135 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9136 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009137 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9138 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309139 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9140 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009141 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9142 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309143 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9144 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009145 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9146 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309147 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9148 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009149 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9150 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309151 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9152 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009153 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9154 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309155 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9156 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009157 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9158 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309159 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009161 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9162 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309163 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9164 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009165 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9166 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309167 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009169 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9170 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309171 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9172 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009173 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9174 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309175 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9176 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009177 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9178 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
9179 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9180 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309181};
9182
9183static const struct snd_kcontrol_new quin_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009184 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9185 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309186 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9187 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009188 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9189 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309190 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9191 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009192 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9193 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309194 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9195 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009196 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9197 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309198 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9199 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009200 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9201 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309202 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9203 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009204 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9205 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309206 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9207 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009208 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9209 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309210 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9211 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009212 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9213 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309214 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9215 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009216 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9217 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309218 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9219 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009220 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9221 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309222 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9223 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009224 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9225 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309226 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9227 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009228 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9229 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309230 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9231 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009232 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9233 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309234 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9235 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009236 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9237 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309238 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9239 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009240 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9241 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309242 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9243 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009244 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9245 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309246 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9247 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009248 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9249 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309250 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9251 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009252 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9253 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
9254 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9255 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309256};
9257
9258static const struct snd_kcontrol_new quin_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009259 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9260 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309261 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9262 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009263 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9264 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309265 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9266 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009267 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9268 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309269 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9270 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009271 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9272 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309273 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9274 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009275 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9276 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309277 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9278 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009279 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9280 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309281 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9282 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009283 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9284 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309285 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9286 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009287 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9288 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309289 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9290 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009291 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9292 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309293 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9294 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009295 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9296 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309297 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9298 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009299 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9300 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309301 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9302 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009303 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9304 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309305 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9306 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009307 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9308 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309309 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9310 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009311 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9312 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309313 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9314 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009315 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9316 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309317 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9318 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009319 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9320 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309321 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9322 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009323 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9324 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309325 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9326 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009327 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9328 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
9329 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9330 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309331};
9332
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309333static const struct snd_kcontrol_new mmul1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009334 SOC_DOUBLE_EXT("PRI_TX", SND_SOC_NOPM,
9335 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309336 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9337 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009338 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9339 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309340 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9341 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009342 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9343 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309344 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9345 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009346 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9347 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309348 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9349 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009350 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9351 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309352 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9353 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009354 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9355 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309356 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9357 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009358 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9359 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309360 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9361 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009362 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9363 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309364 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9365 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009366 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9367 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309368 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9369 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009370 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
9371 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309372 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9373 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009374 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
9375 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309376 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9377 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009378 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
9379 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309380 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9381 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009382 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
9383 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309384 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9385 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009386 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
9387 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05309388 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9389 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009390 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9391 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309392 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9393 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009394 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9395 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309396 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9397 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009398 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9399 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309400 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9401 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009402 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9403 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309404 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9405 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009406 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9407 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309408 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9409 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009410 SOC_DOUBLE_EXT("SLIM_4_TX", SND_SOC_NOPM,
9411 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309412 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9413 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009414 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9415 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309416 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9417 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009418 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
9419 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309420 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9421 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009422 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9423 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309424 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9425 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009426 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9427 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309428 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9429 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009430 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9431 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309432 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9433 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009434 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9435 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309436 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9437 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009438 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9439 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309440 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9441 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009442 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9443 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309444 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9445 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009446 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9447 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309448 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9449 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009450 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9451 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309452 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9453 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009454 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9455 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309456 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9457 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009458 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9459 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309460 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9461 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009462 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9463 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309464 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9465 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009466 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9467 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309468 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9469 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009470 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9471 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309472 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9473 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009474 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9475 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309476 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9477 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009478 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9479 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309480 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9481 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009482 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9483 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309484 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9485 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009486 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9487 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309488 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9489 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009490 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9491 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309492 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9493 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009494 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9495 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309496 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9497 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009498 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9499 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309500 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9501 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009502 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
9503 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309504 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9505 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009506 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
9507 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309508 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9509 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009510 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9511 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309512 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9513 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309514 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9515 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9516 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9517 msm_routing_put_audio_mixer),
9518 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9519 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9520 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9521 msm_routing_put_audio_mixer),
9522 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9523 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9524 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9525 msm_routing_put_audio_mixer),
9526 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9527 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9528 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9529 msm_routing_put_audio_mixer),
9530 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9531 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9532 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9533 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309534 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9535 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9536 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9537 msm_routing_put_audio_mixer),
9538 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9539 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9540 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9541 msm_routing_put_audio_mixer),
9542 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9543 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9544 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9545 msm_routing_put_audio_mixer),
9546 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9547 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9548 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9549 msm_routing_put_audio_mixer),
9550 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9551 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9552 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9553 msm_routing_put_audio_mixer),
9554 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9555 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9556 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9557 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009558 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9559 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9560 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9561 msm_routing_put_audio_mixer),
9562 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9563 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9564 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9565 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +05309566 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
9567 MSM_BACKEND_DAI_SLIMBUS_9_TX,
9568 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9569 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +05309570 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
9571 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
9572 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9573 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309574};
9575
9576static const struct snd_kcontrol_new mmul2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009577 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9578 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309579 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9580 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009581 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9582 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309583 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9584 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009585 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9586 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309587 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9588 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009589 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9590 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309591 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9592 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009593 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9594 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309595 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9596 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009597 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9598 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309599 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9600 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009601 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9602 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309603 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9604 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009605 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9606 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309607 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9608 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009609 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9610 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309611 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9612 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009613 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9614 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309615 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9616 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009617 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
9618 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309619 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9620 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009621 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
9622 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309623 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9624 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009625 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9626 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309627 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9628 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009629 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9630 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309631 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9632 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009633 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9634 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309635 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9636 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009637 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9638 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309639 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9640 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009641 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9642 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309643 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9644 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009645 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9646 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309647 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9648 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009649 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9650 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309651 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9652 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009653 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9654 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309655 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9656 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009657 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9658 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309659 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9660 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009661 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9662 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309663 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9664 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009665 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9666 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309667 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9668 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009669 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9670 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309671 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9672 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009673 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9674 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309675 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9676 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009677 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9678 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309679 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9680 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009681 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9682 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309683 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9684 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009685 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9686 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309687 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9688 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009689 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9690 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309691 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9692 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009693 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9694 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309695 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9696 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009697 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9698 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309699 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9700 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009701 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9702 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309703 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9704 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009705 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
9706 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309707 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9708 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009709 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9710 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309711 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9712 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309713 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9714 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9715 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9716 msm_routing_put_audio_mixer),
9717 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9718 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9719 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9720 msm_routing_put_audio_mixer),
9721 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9722 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9723 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9724 msm_routing_put_audio_mixer),
9725 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9726 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9727 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9728 msm_routing_put_audio_mixer),
9729 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9730 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9731 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9732 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309733 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9734 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9735 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9736 msm_routing_put_audio_mixer),
9737 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9738 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9739 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9740 msm_routing_put_audio_mixer),
9741 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9742 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9743 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9744 msm_routing_put_audio_mixer),
9745 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9746 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9747 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9748 msm_routing_put_audio_mixer),
9749 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9750 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9751 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9752 msm_routing_put_audio_mixer),
9753 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9754 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9755 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9756 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009757 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9758 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9759 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9760 msm_routing_put_audio_mixer),
9761 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9762 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9763 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9764 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +05309765 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
9766 MSM_BACKEND_DAI_SLIMBUS_9_TX,
9767 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9768 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +05309769 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
9770 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
9771 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9772 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309773};
9774
9775static const struct snd_kcontrol_new mmul3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009776 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9777 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309778 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9779 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009780 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9781 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309782 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9783 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009784 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9785 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309786 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9787 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009788 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9789 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309790 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9791 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009792 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9793 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309794 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9795 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009796 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
9797 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309798 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9799 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009800 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
9801 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309802 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9803 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009804 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
9805 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309806 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9807 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009808 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
9809 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309810 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9811 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009812 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
9813 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05309814 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9815 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009816 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9817 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309818 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9819 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009820 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9821 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309822 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9823 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009824 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9825 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309826 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9827 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009828 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9829 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309830 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9831 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009832 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9833 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309834 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9835 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009836 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9837 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309838 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9839 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009840 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9841 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309842 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9843 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009844 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9845 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309846 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9847 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009848 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9849 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309850 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9851 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009852 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9853 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309854 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9855 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009856 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9857 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309858 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9859 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009860 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9861 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309862 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9863 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009864 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9865 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309866 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9867 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009868 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9869 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309870 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9871 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009872 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9873 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309874 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9875 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009876 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9877 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309878 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9879 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009880 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9881 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309882 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9883 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009884 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9885 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309886 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9887 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009888 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9889 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309890 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9891 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009892 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9893 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309894 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9895 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009896 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9897 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309898 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9899 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009900 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9901 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309902 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9903 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009904 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9905 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309906 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9907 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009908 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9909 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309910 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9911 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309912 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9913 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9914 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9915 msm_routing_put_audio_mixer),
9916 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9917 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9918 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9919 msm_routing_put_audio_mixer),
9920 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9921 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9922 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9923 msm_routing_put_audio_mixer),
9924 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9925 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9926 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9927 msm_routing_put_audio_mixer),
9928 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9929 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9930 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9931 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309932 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9933 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9934 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9935 msm_routing_put_audio_mixer),
9936 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9937 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9938 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9939 msm_routing_put_audio_mixer),
9940 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9941 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9942 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9943 msm_routing_put_audio_mixer),
9944 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9945 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9946 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9947 msm_routing_put_audio_mixer),
9948 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9949 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9950 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9951 msm_routing_put_audio_mixer),
9952 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9953 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9954 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9955 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009956 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9957 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9958 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9959 msm_routing_put_audio_mixer),
9960 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9961 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9962 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9963 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +05309964 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
9965 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
9966 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9967 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309968};
9969
9970static const struct snd_kcontrol_new mmul4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009971 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9972 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309973 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9974 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009975 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9976 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309977 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9978 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009979 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9980 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309981 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9982 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009983 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9984 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309985 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9986 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009987 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9988 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309989 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9990 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009991 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9992 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309993 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9994 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009995 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9996 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309997 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9998 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009999 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10000 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010001 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10002 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010003 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10004 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010005 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10006 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010007 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10008 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010009 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10010 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010011 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10012 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010013 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10014 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010015 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10016 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010017 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10018 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010019 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10020 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010021 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10022 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010023 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10024 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010025 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10026 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010027 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10028 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010029 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10030 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010031 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10032 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010033 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10034 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010035 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10036 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010037 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10038 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010039 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10040 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010041 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10042 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010043 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10044 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010045 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10046 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010047 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10048 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010049 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10050 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010051 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10052 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010053 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10054 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010055 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10056 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010057 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10058 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010059 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10060 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010061 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10062 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010063 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10064 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010065 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10066 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010067 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10068 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010069 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10070 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010071 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10072 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010073 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10074 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010075 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10076 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010077 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10078 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010079 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10080 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010081 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10082 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010083 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10084 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010085 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10086 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010087 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10088 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010089 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10090 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010091 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10092 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010093 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10094 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010095 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10096 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010097 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10098 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010099 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10100 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010101 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10102 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010103 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10104 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10105 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10106 msm_routing_put_audio_mixer),
10107 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10108 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10109 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10110 msm_routing_put_audio_mixer),
10111 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10112 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10113 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10114 msm_routing_put_audio_mixer),
10115 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10116 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10117 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10118 msm_routing_put_audio_mixer),
10119 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10120 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10121 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10122 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010123 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10124 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10125 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10126 msm_routing_put_audio_mixer),
10127 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10128 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10129 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10130 msm_routing_put_audio_mixer),
10131 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10132 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10133 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10134 msm_routing_put_audio_mixer),
10135 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10136 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10137 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10138 msm_routing_put_audio_mixer),
10139 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10140 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10141 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10142 msm_routing_put_audio_mixer),
10143 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10144 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10145 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10146 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010147 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10148 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10149 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10150 msm_routing_put_audio_mixer),
10151 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10152 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10153 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10154 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010155 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10156 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10157 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10158 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010159};
10160
10161static const struct snd_kcontrol_new mmul5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010162 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10163 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010164 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10165 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010166 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10167 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010168 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10169 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010170 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
10171 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010172 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10173 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010174 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10175 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010176 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10177 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010178 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10179 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010180 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10181 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010182 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
10183 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010184 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10185 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010186 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
10187 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010188 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10189 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010190 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
10191 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010192 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10193 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010194 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
10195 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010196 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10197 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010198 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
10199 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010200 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10201 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010202 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10203 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010204 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10205 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010206 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10207 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010208 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10209 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010210 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10211 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010212 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10213 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010214 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10215 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010216 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10217 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010218 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10219 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010220 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10221 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010222 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10223 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010224 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10225 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010226 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10227 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010228 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10229 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010230 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10231 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010232 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10233 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010234 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10235 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010236 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10237 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010238 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10239 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010240 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10241 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010242 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10243 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010244 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10245 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010246 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10247 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010248 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10249 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010250 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10251 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010252 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10253 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010254 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10255 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010256 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10257 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010258 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10259 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010260 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10261 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010262 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10263 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010264 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10265 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010266 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10267 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010268 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10269 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010270 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10271 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010272 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10273 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010274 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10275 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010276 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10277 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010278 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10279 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010280 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10281 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010282 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10283 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010284 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10285 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010286 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10287 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010288 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10289 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010290 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10291 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010292 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10293 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010294 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10295 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010296 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10297 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010298 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10299 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010300 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10301 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010302 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10303 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010304 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10305 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010306 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10307 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010308 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10309 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010310 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
10311 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010312 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10313 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010314 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10315 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010316 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10317 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010318 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10319 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10320 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10321 msm_routing_put_audio_mixer),
10322 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10323 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10324 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10325 msm_routing_put_audio_mixer),
10326 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10327 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10328 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10329 msm_routing_put_audio_mixer),
10330 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10331 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10332 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10333 msm_routing_put_audio_mixer),
10334 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10335 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10336 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10337 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010338 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10339 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10340 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10341 msm_routing_put_audio_mixer),
10342 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10343 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10344 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10345 msm_routing_put_audio_mixer),
10346 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10347 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10348 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10349 msm_routing_put_audio_mixer),
10350 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10351 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10352 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10353 msm_routing_put_audio_mixer),
10354 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10355 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10356 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10357 msm_routing_put_audio_mixer),
10358 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10359 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10360 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10361 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010362 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10363 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10364 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10365 msm_routing_put_audio_mixer),
10366 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10367 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10368 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10369 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053010370 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
10371 MSM_BACKEND_DAI_SLIMBUS_9_TX,
10372 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10373 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010374 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10375 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10376 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10377 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010378};
10379
10380static const struct snd_kcontrol_new mmul6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010381 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10382 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010383 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10384 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010385 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10386 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010387 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10388 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010389 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10390 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010391 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10392 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010393 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10394 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010395 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10396 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010397 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10398 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010399 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10400 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010401 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10402 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010403 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10404 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010405 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10406 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010407 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10408 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010409 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10410 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010411 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10412 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010413 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
10414 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010415 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10416 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010417 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
10418 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010419 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10420 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010421 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
10422 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010423 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10424 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010425 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
10426 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010427 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10428 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010429 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
10430 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010431 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10432 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010433 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10434 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010435 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10436 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010437 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10438 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010439 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10440 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010441 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10442 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010443 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10444 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010445 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10446 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010447 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10448 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010449 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10450 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010451 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10452 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010453 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10454 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010455 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10456 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010457 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10458 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010459 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10460 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010461 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10462 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010463 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10464 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010465 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10466 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010467 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10468 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010469 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10470 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010471 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10472 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010473 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10474 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010475 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10476 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010477 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10478 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010479 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10480 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010481 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10482 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010483 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10484 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010485 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10486 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010487 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10488 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010489 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10490 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010491 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10492 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010493 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10494 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010495 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10496 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010497 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10498 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010499 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10500 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010501 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10502 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010503 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10504 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010505 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10506 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010507 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10508 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010509 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10510 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010511 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10512 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010513 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10514 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010515 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10516 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010517 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10518 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10519 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10520 msm_routing_put_audio_mixer),
10521 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10522 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10523 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10524 msm_routing_put_audio_mixer),
10525 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10526 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10527 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10528 msm_routing_put_audio_mixer),
10529 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10530 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10531 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10532 msm_routing_put_audio_mixer),
10533 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10534 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10535 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10536 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010537 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10538 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10539 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10540 msm_routing_put_audio_mixer),
10541 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10542 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10543 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10544 msm_routing_put_audio_mixer),
10545 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10546 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10547 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10548 msm_routing_put_audio_mixer),
10549 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10550 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10551 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10552 msm_routing_put_audio_mixer),
10553 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10554 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10555 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10556 msm_routing_put_audio_mixer),
10557 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10558 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10559 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10560 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010561 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10562 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10563 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10564 msm_routing_put_audio_mixer),
10565 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10566 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10567 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10568 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010569 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10570 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10571 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10572 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010573};
10574
10575static const struct snd_kcontrol_new mmul8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010576 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10577 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010578 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10579 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010580 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10581 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010582 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10583 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010584 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10585 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010586 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10587 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010588 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10589 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010590 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010592 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10593 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010594 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10595 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010596 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10597 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010598 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10599 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010600 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10601 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010602 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10603 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010604 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10605 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010606 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10607 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010608 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10609 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010610 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10611 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010612 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10613 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010614 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10615 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010616 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10617 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010618 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10619 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010620 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10621 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010622 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10623 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010624 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
10625 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010626 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10627 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010628 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10629 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010630 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10631 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010632 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10633 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010634 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10635 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010636 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10637 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010638 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10639 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010640 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10641 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010642 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10643 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010644 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10645 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010646 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10647 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010648 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10649 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010650 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10651 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010652 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10653 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010654 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10655 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010656 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10657 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010658 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10659 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010660 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10661 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010662 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10663 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010664 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10665 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010666 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10667 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010668 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10669 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010670 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10671 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010672 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10673 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010674 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10675 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010676 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10677 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010678 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10679 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010680 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10681 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010682 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10683 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010684 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10685 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010686 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10687 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010688 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10689 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010690 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10691 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010692 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10693 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010694 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10695 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010696 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10697 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010698 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10699 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010700 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10701 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010702 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10703 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010704 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10705 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010706 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10707 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010708 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10709 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010710 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10711 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010712 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10713 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010714 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10715 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010716 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10717 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10718 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10719 msm_routing_put_audio_mixer),
10720 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10721 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10722 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10723 msm_routing_put_audio_mixer),
10724 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10725 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10726 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10727 msm_routing_put_audio_mixer),
10728 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10729 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10730 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10731 msm_routing_put_audio_mixer),
10732 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10733 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10734 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10735 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010736 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10737 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10738 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10739 msm_routing_put_audio_mixer),
10740 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10741 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10742 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10743 msm_routing_put_audio_mixer),
10744 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10745 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10746 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10747 msm_routing_put_audio_mixer),
10748 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10749 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10750 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10751 msm_routing_put_audio_mixer),
10752 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10753 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10754 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10755 msm_routing_put_audio_mixer),
10756 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10757 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10758 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10759 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010760 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10761 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10762 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10763 msm_routing_put_audio_mixer),
10764 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10765 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10766 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10767 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053010768 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
10769 MSM_BACKEND_DAI_SLIMBUS_9_TX,
10770 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10771 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010772 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10773 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10774 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10775 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010776};
10777
Asish Bhattacharya34504582017-08-08 12:55:01 +053010778static const struct snd_kcontrol_new mmul16_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010779 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10780 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010781 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10782 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010783 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10784 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010785 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10786 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010787 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10788 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010789 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10790 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010791 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10792 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010793 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10794 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010795 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10796 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010797 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10798 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010799 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10800 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010801 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10802 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010803 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10804 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010805 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10806 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010807 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10808 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010809 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10810 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010811 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10812 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010813 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10814 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010815 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10816 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010817 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10818 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010819 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10820 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010821 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10822 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010823 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10824 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010825 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10826 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010827 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
10828 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010829 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10830 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010831 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10832 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010833 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10834 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010835 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10836 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010837 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10838 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010839 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10840 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010841 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10842 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010843 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10844 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010845 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10846 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010847 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10848 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010849 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10850 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010851 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10852 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010853 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10854 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010855 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10856 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010857 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10858 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010859 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10860 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010861 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10862 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010863 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10864 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010865 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10866 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010867 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10868 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010869 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10870 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010871 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10872 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010873 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10874 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010875 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10876 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010877 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10878 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010879 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10880 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010881 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10882 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010883 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10884 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010885 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10886 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010887 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10888 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010889 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10890 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010891 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10892 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010893 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10894 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010895 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10896 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010897 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10898 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010899 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10900 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010901 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10902 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010903 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
10904 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010905 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10906 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010907 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
10908 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010909 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10910 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010911 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
10912 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010913 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10914 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010915 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
10916 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010917 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10918 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010919 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10920 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10921 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10922 msm_routing_put_audio_mixer),
10923 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10924 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10925 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10926 msm_routing_put_audio_mixer),
10927 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10928 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10929 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10930 msm_routing_put_audio_mixer),
10931 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10932 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10933 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10934 msm_routing_put_audio_mixer),
10935 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10936 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10937 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10938 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010939 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10940 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10941 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10942 msm_routing_get_audio_mixer,
10943 msm_routing_put_audio_mixer),
10944 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10945 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10946 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10947 msm_routing_get_audio_mixer,
10948 msm_routing_put_audio_mixer),
10949 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10950 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10951 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10952 msm_routing_get_audio_mixer,
10953 msm_routing_put_audio_mixer),
10954 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10955 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10956 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10957 msm_routing_get_audio_mixer,
10958 msm_routing_put_audio_mixer),
10959 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10960 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10961 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10962 msm_routing_get_audio_mixer,
10963 msm_routing_put_audio_mixer),
10964 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10965 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10966 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10967 msm_routing_get_audio_mixer,
10968 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010969 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10970 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10971 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10972 msm_routing_put_audio_mixer),
10973 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10974 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10975 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10976 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053010977 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
10978 MSM_BACKEND_DAI_SLIMBUS_9_TX,
10979 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10980 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010981 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10982 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10983 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10984 msm_routing_put_audio_mixer),
Asish Bhattacharya34504582017-08-08 12:55:01 +053010985};
10986
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010987static const struct snd_kcontrol_new mmul9_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010988 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10989 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010990 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10991 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010992 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10993 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010994 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10995 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010996 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10997 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010998 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10999 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011000 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11001 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011002 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11003 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011004 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11005 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011006 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11007 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011008 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11009 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011010 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11011 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011012 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11013 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011014 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11015 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011016 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11017 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011018 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11019 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011020 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11021 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011022 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011024 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11025 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011026 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11027 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011028 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11029 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011030 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11031 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011032 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11033 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011034 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11035 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011036 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11037 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011038 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11039 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011040 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11041 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011042 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11043 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011044 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11045 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011046 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11047 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011048 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11049 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011050 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11051 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011052 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11053 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011054 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11055 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011056 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11057 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011058 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11059 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011060 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11061 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011062 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11063 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011064 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11065 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011066 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11067 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011068 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11069 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11070 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11071 msm_routing_put_audio_mixer),
11072 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11073 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11074 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11075 msm_routing_put_audio_mixer),
11076 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11077 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11078 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11079 msm_routing_put_audio_mixer),
11080 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11081 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11082 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11083 msm_routing_put_audio_mixer),
11084 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11085 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11086 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11087 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011088 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11089 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11090 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11091 msm_routing_put_audio_mixer),
11092 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11093 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11094 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11095 msm_routing_put_audio_mixer),
11096 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11097 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11098 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11099 msm_routing_put_audio_mixer),
11100 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11101 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11102 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11103 msm_routing_put_audio_mixer),
11104 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11105 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11106 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11107 msm_routing_put_audio_mixer),
11108 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11109 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11110 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11111 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011112 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11113 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11114 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11115 msm_routing_put_audio_mixer),
11116 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11117 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11118 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11119 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011120 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11121 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11122 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11123 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011124};
11125
Laxminath Kasam38070be2017-08-17 18:21:59 +053011126static const struct snd_kcontrol_new mmul10_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011127 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11128 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011129 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11130 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011131 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11132 MSM_BACKEND_DAI_PRI_MI2S_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011133 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11134 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011135 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11136 MSM_BACKEND_DAI_INT_FM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011137 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11138 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011139 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11140 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011141 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11142 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011143 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11144 MSM_BACKEND_DAI_AFE_PCM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011145 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11146 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011147 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11148 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011149 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11150 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011151 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11152 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011153 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11154 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011155 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11156 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011157 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11158 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011159 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11160 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Vikram Panduranga72863152017-09-06 15:47:35 -070011161 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11162 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011163 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11164 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011165 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11166 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011167 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11168 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011169 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11170 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011171 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11172 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011173 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11174 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011175 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11176 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011177 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11178 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011179 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11180 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011181 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11182 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011183 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11184 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011185 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11186 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011187 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11188 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011189 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11190 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011191 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11192 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011193 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11194 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011195 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
11196 MSM_BACKEND_DAI_USB_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011197 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11198 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011199 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11200 MSM_BACKEND_DAI_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011201 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11202 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011203 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
11204 MSM_BACKEND_DAI_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011205 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11206 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011207 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
11208 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011209 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11210 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011211 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
11212 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011213 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11214 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011215 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
11216 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011217 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11218 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011219 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11220 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011221 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11222 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011223 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
11224 MSM_BACKEND_DAI_INT2_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011225 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11226 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011227 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11228 MSM_BACKEND_DAI_INT3_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011229 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11230 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011231 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11232 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11233 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11234 msm_routing_put_audio_mixer),
11235 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11236 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11237 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11238 msm_routing_put_audio_mixer),
11239 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11240 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11241 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11242 msm_routing_put_audio_mixer),
11243 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11244 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11245 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11246 msm_routing_put_audio_mixer),
11247 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11248 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11249 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11250 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011251 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11252 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11253 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11254 msm_routing_get_audio_mixer,
11255 msm_routing_put_audio_mixer),
11256 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11257 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11258 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11259 msm_routing_get_audio_mixer,
11260 msm_routing_put_audio_mixer),
11261 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11262 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11263 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11264 msm_routing_get_audio_mixer,
11265 msm_routing_put_audio_mixer),
11266 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11267 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11268 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11269 msm_routing_get_audio_mixer,
11270 msm_routing_put_audio_mixer),
11271 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11272 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11273 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11274 msm_routing_get_audio_mixer,
11275 msm_routing_put_audio_mixer),
11276 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11277 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11278 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11279 msm_routing_get_audio_mixer,
11280 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011281 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11282 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11283 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11284 msm_routing_put_audio_mixer),
11285 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11286 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11287 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11288 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053011289 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
11290 MSM_BACKEND_DAI_SLIMBUS_9_TX,
11291 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11292 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011293 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11294 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11295 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11296 msm_routing_put_audio_mixer),
Laxminath Kasam38070be2017-08-17 18:21:59 +053011297};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011298static const struct snd_kcontrol_new mmul17_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011299 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11300 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011301 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11302 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011303 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11304 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011305 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11306 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011307 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11308 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011309 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11310 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011311 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11312 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011313 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11314 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011315 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11316 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011317 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11318 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011319 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11320 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011321 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11322 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011323 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11324 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011325 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11326 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011327 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11328 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011329 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11330 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011331 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11332 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11333 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11334 msm_routing_put_audio_mixer),
11335 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11336 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11337 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11338 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011339 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11340 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11341 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11342 msm_routing_put_audio_mixer),
11343 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11344 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11345 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11346 msm_routing_put_audio_mixer),
11347 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11348 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11349 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11350 msm_routing_put_audio_mixer),
11351 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11352 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11353 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11354 msm_routing_put_audio_mixer),
11355 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11356 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11357 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11358 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011359 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11360 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11361 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11362 msm_routing_get_audio_mixer,
11363 msm_routing_put_audio_mixer),
11364 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11365 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11366 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11367 msm_routing_get_audio_mixer,
11368 msm_routing_put_audio_mixer),
11369 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11370 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11371 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11372 msm_routing_get_audio_mixer,
11373 msm_routing_put_audio_mixer),
11374 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11375 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11376 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11377 msm_routing_get_audio_mixer,
11378 msm_routing_put_audio_mixer),
11379 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11380 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11381 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11382 msm_routing_get_audio_mixer,
11383 msm_routing_put_audio_mixer),
11384 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11385 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11386 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11387 msm_routing_get_audio_mixer,
11388 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011389 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11390 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11391 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11392 msm_routing_put_audio_mixer),
11393 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11394 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11395 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11396 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011397 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11398 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11399 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11400 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011401};
11402
11403static const struct snd_kcontrol_new mmul18_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011404 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11405 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011406 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11407 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011408 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11409 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011410 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11411 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011412 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11413 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011414 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11415 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011416 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11417 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
11418 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11419 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011420 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11421 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11422 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11423 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011424 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11425 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011426 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11427 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011428 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11429 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011430 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11431 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011432 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11433 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011434 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11435 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011436 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11437 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011438 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11439 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011440 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11441 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011442 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11443 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011444 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11445 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011446 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11447 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011448 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11449 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11450 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11451 msm_routing_put_audio_mixer),
11452 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11453 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11454 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11455 msm_routing_put_audio_mixer),
11456 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11457 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11458 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11459 msm_routing_put_audio_mixer),
11460 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11461 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11462 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11463 msm_routing_put_audio_mixer),
11464 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11465 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11466 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11467 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011468 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11469 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11470 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11471 msm_routing_get_audio_mixer,
11472 msm_routing_put_audio_mixer),
11473 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11474 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11475 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11476 msm_routing_get_audio_mixer,
11477 msm_routing_put_audio_mixer),
11478 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11479 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11480 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11481 msm_routing_get_audio_mixer,
11482 msm_routing_put_audio_mixer),
11483 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11484 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11485 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11486 msm_routing_get_audio_mixer,
11487 msm_routing_put_audio_mixer),
11488 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11489 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11490 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11491 msm_routing_get_audio_mixer,
11492 msm_routing_put_audio_mixer),
11493 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11494 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11495 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11496 msm_routing_get_audio_mixer,
11497 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011498 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11499 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11500 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11501 msm_routing_put_audio_mixer),
11502 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11503 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11504 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11505 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011506 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11507 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11508 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11509 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011510};
11511
11512static const struct snd_kcontrol_new mmul19_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011513 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11514 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011515 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11516 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011517 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11518 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011519 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11520 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011521 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11522 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011523 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11524 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011525 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11526 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011527 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11528 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011529 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11530 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011531 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011533 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11534 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011535 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011537 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11538 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011539 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011541 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11542 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011543 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11544 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011545 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11546 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11547 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11548 msm_routing_put_audio_mixer),
11549 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11550 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11551 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11552 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011553 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11554 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11555 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11556 msm_routing_put_audio_mixer),
11557 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11558 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11559 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11560 msm_routing_put_audio_mixer),
11561 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11562 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11563 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11564 msm_routing_put_audio_mixer),
11565 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11566 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11567 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11568 msm_routing_put_audio_mixer),
11569 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11570 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11571 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11572 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011573 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11574 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11575 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11576 msm_routing_get_audio_mixer,
11577 msm_routing_put_audio_mixer),
11578 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11579 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11580 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11581 msm_routing_get_audio_mixer,
11582 msm_routing_put_audio_mixer),
11583 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11584 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11585 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11586 msm_routing_get_audio_mixer,
11587 msm_routing_put_audio_mixer),
11588 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11589 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11590 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11591 msm_routing_get_audio_mixer,
11592 msm_routing_put_audio_mixer),
11593 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11594 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11595 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11596 msm_routing_get_audio_mixer,
11597 msm_routing_put_audio_mixer),
11598 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11599 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11600 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11601 msm_routing_get_audio_mixer,
11602 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011603 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11604 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11605 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11606 msm_routing_put_audio_mixer),
11607 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11608 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11609 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11610 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011611 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11612 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11613 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11614 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011615};
11616
11617static const struct snd_kcontrol_new mmul20_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011618 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11619 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011620 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11621 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011622 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11623 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011624 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11625 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011626 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11627 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011628 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11629 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011630 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11631 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011632 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11633 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011634 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11635 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053011636 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11637 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011638 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11639 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011640 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11641 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011642 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11643 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011644 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11645 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011646 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11647 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011648 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11649 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011650 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11651 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011652 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11653 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011654 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11655 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011656 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11657 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011658 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11659 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011660 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11661 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011662 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11663 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011664 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11665 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011666 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11667 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011668 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11669 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011670 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11671 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011672 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11673 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011674 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11675 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011676 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11677 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011678 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11679 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011680 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11681 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011682 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11683 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011684 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11685 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011686 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11687 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011688 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11689 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011690 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11691 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011692 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11693 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011694 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11695 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011696 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11697 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011698 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11699 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011700 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11701 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011702 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11703 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011704 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11705 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011706 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11707 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011708 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11709 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011710 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11711 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011712 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11713 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011714 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11715 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011716 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11717 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011718 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11719 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11720 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11721 msm_routing_put_audio_mixer),
11722 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11723 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11724 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11725 msm_routing_put_audio_mixer),
11726 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11727 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11728 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11729 msm_routing_put_audio_mixer),
11730 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11731 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11732 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11733 msm_routing_put_audio_mixer),
11734 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11735 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11736 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11737 msm_routing_put_audio_mixer),
11738 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11739 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11740 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11741 msm_routing_put_audio_mixer),
11742 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11743 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11744 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11745 msm_routing_put_audio_mixer),
11746 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11747 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11748 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11749 msm_routing_put_audio_mixer),
11750 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11751 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11752 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11753 msm_routing_put_audio_mixer),
11754 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11755 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11756 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11757 msm_routing_put_audio_mixer),
11758 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11759 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11760 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11761 msm_routing_put_audio_mixer),
11762 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11763 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11764 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11765 msm_routing_put_audio_mixer),
11766 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11767 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11768 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11769 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011770 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11771 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11772 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11773 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011774};
11775
11776static const struct snd_kcontrol_new mmul21_mixer_controls[] = {
11777 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11778 MSM_BACKEND_DAI_AUXPCM_TX,
11779 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11780 msm_routing_put_audio_mixer),
11781 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11782 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
11783 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11784 msm_routing_put_audio_mixer),
11785 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11786 MSM_BACKEND_DAI_PRI_TDM_TX_0,
11787 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11788 msm_routing_put_audio_mixer),
11789 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11790 MSM_BACKEND_DAI_PRI_TDM_TX_1,
11791 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11792 msm_routing_put_audio_mixer),
11793 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11794 MSM_BACKEND_DAI_PRI_TDM_TX_2,
11795 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11796 msm_routing_put_audio_mixer),
11797 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11798 MSM_BACKEND_DAI_PRI_TDM_TX_3,
11799 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11800 msm_routing_put_audio_mixer),
11801 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11802 MSM_BACKEND_DAI_SEC_TDM_TX_0,
11803 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11804 msm_routing_put_audio_mixer),
11805 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11806 MSM_BACKEND_DAI_SEC_TDM_TX_1,
11807 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11808 msm_routing_put_audio_mixer),
11809 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11810 MSM_BACKEND_DAI_SEC_TDM_TX_2,
11811 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11812 msm_routing_put_audio_mixer),
11813 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11814 MSM_BACKEND_DAI_SEC_TDM_TX_3,
11815 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11816 msm_routing_put_audio_mixer),
11817 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11818 MSM_BACKEND_DAI_TERT_TDM_TX_0,
11819 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11820 msm_routing_put_audio_mixer),
11821 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11822 MSM_BACKEND_DAI_TERT_TDM_TX_1,
11823 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11824 msm_routing_put_audio_mixer),
11825 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11826 MSM_BACKEND_DAI_TERT_TDM_TX_2,
11827 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11828 msm_routing_put_audio_mixer),
11829 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11830 MSM_BACKEND_DAI_TERT_TDM_TX_3,
11831 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11832 msm_routing_put_audio_mixer),
11833 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11834 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
11835 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11836 msm_routing_put_audio_mixer),
11837 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11838 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
11839 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11840 msm_routing_put_audio_mixer),
11841 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11842 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
11843 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11844 msm_routing_put_audio_mixer),
11845 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11846 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
11847 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11848 msm_routing_put_audio_mixer),
11849 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11850 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
11851 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11852 msm_routing_put_audio_mixer),
11853 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11854 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11855 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11856 msm_routing_put_audio_mixer),
11857 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11858 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11859 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11860 msm_routing_put_audio_mixer),
11861 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11862 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11863 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11864 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011865 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011866 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11867 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011868 msm_routing_put_audio_mixer),
11869 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011870 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11871 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011872 msm_routing_put_audio_mixer),
11873 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011874 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11875 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011876 msm_routing_put_audio_mixer),
11877 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011878 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11879 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011880 msm_routing_put_audio_mixer),
11881 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011882 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11883 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011884 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011885 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011886 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11887 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11888 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011889 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011890 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11891 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11892 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011893 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011894 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11895 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11896 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011897 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011898 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11899 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11900 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011901 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011902 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11903 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11904 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011905 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011906 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11907 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11908 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011909 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11910 MSM_BACKEND_DAI_PRI_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011911 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020011912 msm_routing_put_audio_mixer),
11913 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11914 MSM_BACKEND_DAI_SEC_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011915 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020011916 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011917 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11918 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11919 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11920 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011921};
11922
Surendar Karkac1cde372018-08-14 18:56:24 +053011923static const struct snd_kcontrol_new mmul27_mixer_controls[] = {
11924 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11925 MSM_BACKEND_DAI_SLIMBUS_0_TX,
11926 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11927 msm_routing_put_audio_mixer),
11928 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11929 MSM_BACKEND_DAI_SLIMBUS_6_TX,
11930 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11931 msm_routing_put_audio_mixer),
11932 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11933 MSM_BACKEND_DAI_SLIMBUS_7_TX,
11934 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11935 msm_routing_put_audio_mixer),
11936 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11937 MSM_BACKEND_DAI_PRI_MI2S_TX,
11938 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11939 msm_routing_put_audio_mixer),
11940 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11941 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
11942 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11943 msm_routing_put_audio_mixer),
11944 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11945 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11946 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11947 msm_routing_put_audio_mixer),
11948 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11949 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11950 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11951 msm_routing_put_audio_mixer),
11952 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11953 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
11954 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11955 msm_routing_put_audio_mixer),
11956 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11957 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11958 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11959 msm_routing_put_audio_mixer),
11960 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11961 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11962 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11963 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053011964 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
11965 MSM_BACKEND_DAI_SLIMBUS_9_TX,
11966 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11967 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011968 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11969 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11970 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11971 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053011972};
11973
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011974static const struct snd_kcontrol_new mmul28_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011975 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11976 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011977 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11978 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011979 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11980 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011981 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11982 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011983 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11984 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011985 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11986 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011987 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11988 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011989 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11990 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011991 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11992 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011993 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11994 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011995 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11996 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011997 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11998 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011999 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
12000 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012001 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12002 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012003 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
12004 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012005 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12006 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080012007 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12008 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
12009 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12010 msm_routing_put_audio_mixer),
12011 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12012 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
12013 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12014 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012015 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12016 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12017 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12018 msm_routing_put_audio_mixer),
12019 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12020 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12021 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12022 msm_routing_put_audio_mixer),
12023 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12024 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12025 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12026 msm_routing_put_audio_mixer),
12027 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12028 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12029 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12030 msm_routing_put_audio_mixer),
12031 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12032 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12033 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12034 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012035 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12036 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12037 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12038 msm_routing_get_audio_mixer,
12039 msm_routing_put_audio_mixer),
12040 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12041 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12042 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12043 msm_routing_get_audio_mixer,
12044 msm_routing_put_audio_mixer),
12045 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12046 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12047 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12048 msm_routing_get_audio_mixer,
12049 msm_routing_put_audio_mixer),
12050 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12051 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12052 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12053 msm_routing_get_audio_mixer,
12054 msm_routing_put_audio_mixer),
12055 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12056 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12057 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12058 msm_routing_get_audio_mixer,
12059 msm_routing_put_audio_mixer),
12060 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12061 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12062 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12063 msm_routing_get_audio_mixer,
12064 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012065 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12066 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12067 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12068 msm_routing_put_audio_mixer),
12069 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12070 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12071 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12072 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012073 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12074 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12075 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12076 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012077};
12078
12079static const struct snd_kcontrol_new mmul29_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012080 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12081 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012082 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12083 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012084 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12085 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012086 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12087 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012088 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12089 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012090 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12091 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012092 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12093 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012094 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12095 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012096 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12097 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012098 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12099 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012100 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12101 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012102 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12103 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012104 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
12105 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012106 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12107 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012108 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
12109 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012110 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12111 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080012112 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12113 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
12114 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12115 msm_routing_put_audio_mixer),
12116 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12117 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
12118 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12119 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012120 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12121 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12122 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12123 msm_routing_put_audio_mixer),
12124 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12125 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12126 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12127 msm_routing_put_audio_mixer),
12128 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12129 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12130 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12131 msm_routing_put_audio_mixer),
12132 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12133 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12134 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12135 msm_routing_put_audio_mixer),
12136 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12137 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12138 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12139 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012140 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12141 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12142 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12143 msm_routing_get_audio_mixer,
12144 msm_routing_put_audio_mixer),
12145 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12146 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12147 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12148 msm_routing_get_audio_mixer,
12149 msm_routing_put_audio_mixer),
12150 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12151 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12152 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12153 msm_routing_get_audio_mixer,
12154 msm_routing_put_audio_mixer),
12155 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12156 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12157 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12158 msm_routing_get_audio_mixer,
12159 msm_routing_put_audio_mixer),
12160 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12161 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12162 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12163 msm_routing_get_audio_mixer,
12164 msm_routing_put_audio_mixer),
12165 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12166 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12167 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12168 msm_routing_get_audio_mixer,
12169 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012170 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12171 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12172 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12173 msm_routing_put_audio_mixer),
12174 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12175 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12176 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12177 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012178 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12179 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12180 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12181 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012182};
12183
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012184static const struct snd_kcontrol_new pri_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012185 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12186 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012187 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12188 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012189 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12190 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012191 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12192 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012193 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12194 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012195 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12196 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012197 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12198 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012199 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12200 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012201 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12202 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012203 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12204 msm_routing_put_voice_mixer),
12205};
12206
12207static const struct snd_kcontrol_new sec_i2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012208 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12209 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012210 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12211 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012212 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12213 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012214 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12215 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012216 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12217 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012218 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12219 msm_routing_put_voice_mixer),
12220};
12221
12222static const struct snd_kcontrol_new sec_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012223 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12224 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012225 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12226 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012227 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12228 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012229 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12230 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012231 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12232 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012233 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12234 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012235 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12236 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012237 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12238 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012239 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12240 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012241 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12242 msm_routing_put_voice_mixer),
12243};
12244
12245static const struct snd_kcontrol_new slimbus_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012246 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12247 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012248 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12249 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012250 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12251 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012252 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12253 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012254 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12255 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012256 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12257 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012258 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12259 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012260 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12261 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012262 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12263 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012264 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12265 msm_routing_put_voice_mixer),
12266};
12267
12268static const struct snd_kcontrol_new slimbus_6_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012269 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12270MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012271 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12272 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012273 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12274MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012275 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12276 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012277 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12278MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012279 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12280 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012281 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12282MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012283 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12284 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012285 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12286MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012287 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12288 msm_routing_put_voice_mixer),
12289};
12290
12291static const struct snd_kcontrol_new usb_audio_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012292 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12293 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012294 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12295 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012296 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12297 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012298 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12299 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012300 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12301 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012302 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12303 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012304 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12305 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012306 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12307 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012308 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12309 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012310 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12311 msm_routing_put_voice_mixer),
12312};
12313
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012314static const struct snd_kcontrol_new display_port_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012315 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12316MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012317 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12318 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012319 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12320MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012321 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12322 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012323 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12324MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012325 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12326 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012327 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12328MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012329 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12330 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012331 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12332MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012333 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12334 msm_routing_put_voice_mixer),
12335};
12336
Karthikeyan Mani57550082018-05-03 18:43:58 -070012337static const struct snd_kcontrol_new display_port_rx1_voice_mixer_controls[] = {
12338 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12339 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12340 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12341 msm_routing_put_voice_mixer),
12342 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12343 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12344 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12345 msm_routing_put_voice_mixer),
12346 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12347 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12348 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12349 msm_routing_put_voice_mixer),
12350 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12351 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12352 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12353 msm_routing_put_voice_mixer),
12354 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12355 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12356 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12357 msm_routing_put_voice_mixer),
12358};
12359
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012360static const struct snd_kcontrol_new bt_sco_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012361 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12362 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012363 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12364 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012365 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12366 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012367 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12368 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012369 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12370 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012371 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12372 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012373 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12374 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012375 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12376 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012377 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12378 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012379 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12380 msm_routing_put_voice_mixer),
12381};
12382
12383static const struct snd_kcontrol_new mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012384 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12385 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012386 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12387 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012388 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12389 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012390 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12391 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012392 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12393 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012394 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12395 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012396 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12397 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012398 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12399 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012400 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12401 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012402 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12403 msm_routing_put_voice_mixer),
12404};
12405
12406static const struct snd_kcontrol_new pri_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012407 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12408MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012409 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12410 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012411 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12412MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012413 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12414 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012415 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12416MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012417 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12418 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012419 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12420MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012421 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12422 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012423 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12424MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012425 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12426 msm_routing_put_voice_mixer),
12427};
12428
12429static const struct snd_kcontrol_new int0_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012430 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12431MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012432 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12433 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012434 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12435MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012436 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12437 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012438 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12439MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012440 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12441 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012442 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12443MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012444 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12445 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012446 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12447MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012448 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12449 msm_routing_put_voice_mixer),
12450};
12451
12452static const struct snd_kcontrol_new int4_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012453 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12454 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012455 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12456 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012457 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12458 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012459 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12460 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012461 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12462 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012463 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12464 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012465 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12466 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012467 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12468 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012469 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12470 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012471 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12472 msm_routing_put_voice_mixer),
12473};
12474
12475static const struct snd_kcontrol_new tert_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012476 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12477 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012478 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12479 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012480 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12481 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012482 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12483 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012484 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12485 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012486 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12487 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012488 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12489 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012490 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12491 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012492 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12493 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012494 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12495 msm_routing_put_voice_mixer),
12496};
12497
12498static const struct snd_kcontrol_new quat_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012499 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12500 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012501 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12502 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012503 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12504 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012505 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12506 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012507 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12508 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012509 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12510 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012511 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12512 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012513 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12514 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012515 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12516 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012517 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12518 msm_routing_put_voice_mixer),
12519};
12520
12521static const struct snd_kcontrol_new quin_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012522 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12523 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012524 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12525 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012526 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12527 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012528 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12529 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012530 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12531 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012532 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12533 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012534 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12535 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012536 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12537 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012538 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12539 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012540 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12541 msm_routing_put_voice_mixer),
12542};
12543
12544static const struct snd_kcontrol_new afe_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012545 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12546 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012547 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12548 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012549 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12550 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012551 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12552 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012553 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12554 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012555 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12556 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012557 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12558 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012559 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12560 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012561 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12562 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012563 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12564 msm_routing_put_voice_mixer),
12565};
12566
12567static const struct snd_kcontrol_new aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012568 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12569 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012570 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12571 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012572 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12573 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012574 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12575 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012576 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12577 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012578 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12579 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012580 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12581 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012582 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12583 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012584 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12585 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012586 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12587 msm_routing_put_voice_mixer),
12588};
12589
12590static const struct snd_kcontrol_new sec_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012591 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12592MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012593 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12594 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012595 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12596MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012597 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12598 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012599 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12600MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012601 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12602 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012603 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12604MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012605 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12606 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012607 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12608MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012609 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12610 msm_routing_put_voice_mixer),
12611};
12612
12613static const struct snd_kcontrol_new tert_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012614 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12615MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012616 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12617 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012618 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12619MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012620 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12621 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012622 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12623MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012624 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12625 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012626 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12627MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012628 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12629 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012630 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12631MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012632 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12633 msm_routing_put_voice_mixer),
12634};
12635
12636static const struct snd_kcontrol_new quat_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012637 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12638MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012639 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12640 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012641 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12642MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012643 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12644 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012645 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12646MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012647 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12648 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012649 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12650MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012651 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12652 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012653 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12654MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012655 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12656 msm_routing_put_voice_mixer),
12657};
12658
Rohit Kumara5077932017-09-10 22:05:05 +053012659static const struct snd_kcontrol_new quin_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012660 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12661MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012662 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12663 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012664 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12665MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012666 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12667 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012668 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12669MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012670 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12671 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012672 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12673MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012674 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12675 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012676 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12677MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012678 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12679 msm_routing_put_voice_mixer),
12680};
12681
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012682static const struct snd_kcontrol_new hdmi_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012683 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12684 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012685 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12686 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012687 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12688 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012689 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12690 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012691 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12692 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012693 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12694 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012695 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12696 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012697 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12698 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012699 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12700 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012701 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12702 msm_routing_put_voice_mixer),
12703};
12704
12705static const struct snd_kcontrol_new slimbus_7_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012706 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12707MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012708 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12709 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012710 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12711MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012712 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12713 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012714 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12715MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012716 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12717 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012718 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12719MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012720 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12721 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012722 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12723MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012724 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12725 msm_routing_put_voice_mixer),
12726};
12727
12728static const struct snd_kcontrol_new slimbus_8_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012729 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12730 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012731 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12732 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012733 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12734 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012735 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12736 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012737 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12738 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012739 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12740 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012741 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12742 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012743 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12744 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012745 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12746 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012747 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12748 msm_routing_put_voice_mixer),
12749};
12750
12751static const struct snd_kcontrol_new quat_tdm_rx_2_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012752 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12753 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012754 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12755 msm_routing_put_voice_mixer),
12756};
12757
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012758static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_voice_mixer_controls[] = {
12759 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12760 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12761 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12762 msm_routing_put_voice_mixer),
12763 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12764 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12765 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12766 msm_routing_put_voice_mixer),
12767 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12768 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12769 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12770 msm_routing_put_voice_mixer),
12771 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12772 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12773 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12774 msm_routing_put_voice_mixer),
12775 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12776 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12777 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12778 msm_routing_put_voice_mixer),
12779};
12780
12781static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_voice_mixer_controls[] = {
12782 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12783 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12784 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12785 msm_routing_put_voice_mixer),
12786 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12787 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12788 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12789 msm_routing_put_voice_mixer),
12790 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12791 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12792 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12793 msm_routing_put_voice_mixer),
12794 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12795 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12796 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12797 msm_routing_put_voice_mixer),
12798 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12799 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12800 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12801 msm_routing_put_voice_mixer),
12802};
12803
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012804static const struct snd_kcontrol_new rx_cdc_dma_rx_0_voice_mixer_controls[] = {
12805 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12806 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12807 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12808 msm_routing_put_voice_mixer),
12809 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12810 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12811 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12812 msm_routing_put_voice_mixer),
12813 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12814 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12815 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12816 msm_routing_put_voice_mixer),
12817 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12818 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12819 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12820 msm_routing_put_voice_mixer),
12821 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12822 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12823 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12824 msm_routing_put_voice_mixer),
12825};
12826
12827static const struct snd_kcontrol_new rx_cdc_dma_rx_1_voice_mixer_controls[] = {
12828 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12829 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12830 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12831 msm_routing_put_voice_mixer),
12832 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12833 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12834 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12835 msm_routing_put_voice_mixer),
12836 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12837 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12838 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12839 msm_routing_put_voice_mixer),
12840 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12841 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12842 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12843 msm_routing_put_voice_mixer),
12844 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12845 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12846 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12847 msm_routing_put_voice_mixer),
12848};
12849
12850static const struct snd_kcontrol_new rx_cdc_dma_rx_2_voice_mixer_controls[] = {
12851 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12852 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12853 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12854 msm_routing_put_voice_mixer),
12855 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12856 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12857 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12858 msm_routing_put_voice_mixer),
12859 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12860 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12861 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12862 msm_routing_put_voice_mixer),
12863 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12864 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12865 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12866 msm_routing_put_voice_mixer),
12867 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12868 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12869 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12870 msm_routing_put_voice_mixer),
12871};
12872
12873static const struct snd_kcontrol_new rx_cdc_dma_rx_3_voice_mixer_controls[] = {
12874 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12875 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12876 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12877 msm_routing_put_voice_mixer),
12878 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12879 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12880 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12881 msm_routing_put_voice_mixer),
12882 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12883 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12884 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12885 msm_routing_put_voice_mixer),
12886 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12887 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12888 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12889 msm_routing_put_voice_mixer),
12890 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12891 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12892 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12893 msm_routing_put_voice_mixer),
12894};
12895
12896static const struct snd_kcontrol_new rx_cdc_dma_rx_4_voice_mixer_controls[] = {
12897 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12898 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12899 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12900 msm_routing_put_voice_mixer),
12901 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12902 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12903 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12904 msm_routing_put_voice_mixer),
12905 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12906 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12907 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12908 msm_routing_put_voice_mixer),
12909 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12910 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12911 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12912 msm_routing_put_voice_mixer),
12913 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12914 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12915 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12916 msm_routing_put_voice_mixer),
12917};
12918
12919static const struct snd_kcontrol_new rx_cdc_dma_rx_5_voice_mixer_controls[] = {
12920 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12921 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12922 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12923 msm_routing_put_voice_mixer),
12924 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12925 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12926 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12927 msm_routing_put_voice_mixer),
12928 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12929 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12930 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12931 msm_routing_put_voice_mixer),
12932 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12933 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12934 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12935 msm_routing_put_voice_mixer),
12936 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12937 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12938 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12939 msm_routing_put_voice_mixer),
12940};
12941
12942static const struct snd_kcontrol_new rx_cdc_dma_rx_6_voice_mixer_controls[] = {
12943 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12944 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12945 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12946 msm_routing_put_voice_mixer),
12947 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12948 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12949 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12950 msm_routing_put_voice_mixer),
12951 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12952 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12953 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12954 msm_routing_put_voice_mixer),
12955 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12956 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12957 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12958 msm_routing_put_voice_mixer),
12959 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12960 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12961 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12962 msm_routing_put_voice_mixer),
12963};
12964
12965static const struct snd_kcontrol_new rx_cdc_dma_rx_7_voice_mixer_controls[] = {
12966 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12967 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12968 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12969 msm_routing_put_voice_mixer),
12970 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12971 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12972 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12973 msm_routing_put_voice_mixer),
12974 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12975 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12976 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12977 msm_routing_put_voice_mixer),
12978 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12979 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12980 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12981 msm_routing_put_voice_mixer),
12982 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12983 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12984 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12985 msm_routing_put_voice_mixer),
12986};
12987
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012988static const struct snd_kcontrol_new stub_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012989 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12990 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012991 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12992 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012993 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12994 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012995 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12996 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012997};
12998
12999static const struct snd_kcontrol_new slimbus_1_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013000 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13001 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013002 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13003 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013004 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13005 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013006 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13007 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013008};
13009
13010static const struct snd_kcontrol_new slimbus_3_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013011 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13012 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013013 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13014 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013015 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13016 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013017 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13018 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013019};
13020
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013021static const struct snd_kcontrol_new tx_voicemmode1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013022 SOC_DOUBLE_EXT("PRI_TX_MMode1", SND_SOC_NOPM,
13023 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013024 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13025 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013026 SOC_DOUBLE_EXT("MI2S_TX_MMode1", SND_SOC_NOPM,
13027 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013028 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13029 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013030 SOC_DOUBLE_EXT("SLIM_0_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013031 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13032 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013033 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013034 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13035 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013036 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013037 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
13038 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013039 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013040 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
13041 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013042 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013043 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13044 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013045 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013046 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13047 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013048 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013049 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13050 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013051 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053013052 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13053 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013054 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013055 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
13056 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013057 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013058 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
13059 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013060 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013061 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
13062 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013063 SOC_DOUBLE_EXT("SLIM_7_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013064 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13065 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013066 SOC_DOUBLE_EXT("SLIM_8_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013067 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13068 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013069 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode1", SND_SOC_NOPM,
13070 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013071 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13072 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013073 SOC_DOUBLE_EXT("QUAT_TDM_TX_0_MMode1", SND_SOC_NOPM,
13074MSM_BACKEND_DAI_QUAT_TDM_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013075 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013076 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
13077 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
13078 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13079 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
13080 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
13081 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013082 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
13083 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
13084 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13085 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
13086 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
13087 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13088 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
13089 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
13090 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13091 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode1", SND_SOC_NOPM,
13092 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
13093 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13094 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode1", SND_SOC_NOPM,
13095 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE1,
13096 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13097 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode1", SND_SOC_NOPM,
13098 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE1,
13099 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013100};
13101
13102static const struct snd_kcontrol_new tx_voicemmode2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013103 SOC_DOUBLE_EXT("PRI_TX_MMode2", SND_SOC_NOPM,
13104 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013105 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13106 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013107 SOC_DOUBLE_EXT("MI2S_TX_MMode2", SND_SOC_NOPM,
13108 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013109 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13110 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013111 SOC_DOUBLE_EXT("SLIM_0_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013112 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13113 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013114 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013115 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13116 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013117 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013118 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
13119 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013120 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013121 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
13122 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013123 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013124 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13125 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013126 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013127 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13128 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013129 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013130 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13131 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013132 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053013133 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13134 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013135 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013136 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
13137 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013138 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013139 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
13140 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013141 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013142 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
13143 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013144 SOC_DOUBLE_EXT("SLIM_7_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013145 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13146 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013147 SOC_DOUBLE_EXT("SLIM_8_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013148 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13149 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013150 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013151 MSM_BACKEND_DAI_USB_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13152 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013153 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
13154 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
13155 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13156 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
13157 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
13158 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013159 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
13160 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
13161 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13162 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
13163 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
13164 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13165 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
13166 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
13167 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13168 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode2", SND_SOC_NOPM,
13169 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE2,
13170 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13171 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode2", SND_SOC_NOPM,
13172 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE2,
13173 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13174 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode2", SND_SOC_NOPM,
13175 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE2,
13176 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013177};
13178
13179static const struct snd_kcontrol_new tx_voip_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013180 SOC_DOUBLE_EXT("PRI_TX_Voip", SND_SOC_NOPM,
13181 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013182 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13183 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013184 SOC_DOUBLE_EXT("MI2S_TX_Voip", SND_SOC_NOPM,
13185 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013186 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13187 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013188 SOC_DOUBLE_EXT("SLIM_0_TX_Voip", SND_SOC_NOPM,
13189 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013190 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13191 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013192 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_Voip", SND_SOC_NOPM,
13193 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013194 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13195 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013196 SOC_DOUBLE_EXT("AFE_PCM_TX_Voip", SND_SOC_NOPM,
13197 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013198 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13199 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013200 SOC_DOUBLE_EXT("AUX_PCM_TX_Voip", SND_SOC_NOPM,
13201 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013202 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13203 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013204 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13205 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013206 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13207 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013208 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13209 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013210 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13211 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013212 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13213 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013214 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13215 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013216 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13217 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013218 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13219 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013220 SOC_DOUBLE_EXT("PRI_MI2S_TX_Voip", SND_SOC_NOPM,
13221 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013222 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13223 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013224 SOC_DOUBLE_EXT("TERT_MI2S_TX_Voip", SND_SOC_NOPM,
13225 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013226 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13227 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013228 SOC_DOUBLE_EXT("INT3_MI2S_TX_Voip", SND_SOC_NOPM,
13229 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013230 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13231 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013232 SOC_DOUBLE_EXT("SLIM_7_TX_Voip", SND_SOC_NOPM,
13233 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013234 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13235 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013236 SOC_DOUBLE_EXT("SLIM_8_TX_Voip", SND_SOC_NOPM,
13237 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013238 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13239 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013240 SOC_DOUBLE_EXT("USB_AUDIO_TX_Voip", SND_SOC_NOPM,
13241 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013242 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13243 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013244 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
13245 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
13246 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13247 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
13248 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
13249 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013250 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
13251 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
13252 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13253 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
13254 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
13255 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13256 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
13257 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
13258 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13259 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_Voip", SND_SOC_NOPM,
13260 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOIP,
13261 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13262 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_Voip", SND_SOC_NOPM,
13263 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOIP,
13264 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13265 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_Voip", SND_SOC_NOPM,
13266 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOIP,
13267 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013268};
13269
13270static const struct snd_kcontrol_new tx_voice_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013271 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
13272 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013273 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13274 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013275 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13276 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013277 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13278 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013279 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13280 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013281 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13282 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013283 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
13284 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013285 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13286 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013287 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13288 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013289 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13290 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013291 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13292 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013293 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13294 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013295 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13296 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013297 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13298 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013299 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13300 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013301 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13302 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013303 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13304 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013305 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13306 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013307 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13308 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013309 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13310 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013311 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13312 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013313 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13314 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013315 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13316 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013317 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13318 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013319 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13320 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013321 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13322 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013323 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13324 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013325 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13326 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013327 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13328 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013329 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13330 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013331 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
13332 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013333 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13334 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013335 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13336 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013337 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13338 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013339 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13340 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013341 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13342 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013343 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13344 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013345 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13346 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013347 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13348 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
13349 1, 0, msm_routing_get_voice_stub_mixer,
13350 msm_routing_put_voice_stub_mixer),
13351 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13352 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
13353 1, 0, msm_routing_get_voice_stub_mixer,
13354 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013355 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13356 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
13357 1, 0, msm_routing_get_voice_stub_mixer,
13358 msm_routing_put_voice_stub_mixer),
13359 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13360 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
13361 1, 0, msm_routing_get_voice_stub_mixer,
13362 msm_routing_put_voice_stub_mixer),
13363 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13364 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
13365 1, 0, msm_routing_get_voice_stub_mixer,
13366 msm_routing_put_voice_stub_mixer),
13367 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13368 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE_STUB,
13369 1, 0, msm_routing_get_voice_stub_mixer,
13370 msm_routing_put_voice_stub_mixer),
13371 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13372 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE_STUB,
13373 1, 0, msm_routing_get_voice_stub_mixer,
13374 msm_routing_put_voice_stub_mixer),
13375 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13376 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE_STUB,
13377 1, 0, msm_routing_get_voice_stub_mixer,
13378 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013379};
13380
13381static const struct snd_kcontrol_new tx_voice2_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013382 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
13383 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013384 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13385 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013386 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13387 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013388 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13389 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013390 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
13391 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013392 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13393 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013394 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13395 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013396 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13397 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013398 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13399 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013400 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13401 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013402 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13403 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013404 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13405 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013406 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13407 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013408 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13409 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013410 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13411 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013412 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13413 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013414 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13415 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013416 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13417 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013418 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
13419 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013420 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13421 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013422 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13423 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013424 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13425 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013426 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13427 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013428 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13429 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013430 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13431 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013432 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13433 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013434 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13435 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013436 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13437 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013438 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13439 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013440 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13441 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013442 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13443 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
13444 1, 0, msm_routing_get_voice_stub_mixer,
13445 msm_routing_put_voice_stub_mixer),
13446 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13447 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
13448 1, 0, msm_routing_get_voice_stub_mixer,
13449 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013450 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13451 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
13452 1, 0, msm_routing_get_voice_stub_mixer,
13453 msm_routing_put_voice_stub_mixer),
13454 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13455 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
13456 1, 0, msm_routing_get_voice_stub_mixer,
13457 msm_routing_put_voice_stub_mixer),
13458 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13459 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
13460 1, 0, msm_routing_get_voice_stub_mixer,
13461 msm_routing_put_voice_stub_mixer),
13462 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13463 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE2_STUB,
13464 1, 0, msm_routing_get_voice_stub_mixer,
13465 msm_routing_put_voice_stub_mixer),
13466 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13467 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE2_STUB,
13468 1, 0, msm_routing_get_voice_stub_mixer,
13469 msm_routing_put_voice_stub_mixer),
13470 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13471 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE2_STUB,
13472 1, 0, msm_routing_get_voice_stub_mixer,
13473 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013474};
13475
13476static const struct snd_kcontrol_new tx_volte_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013477 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
13478 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013479 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13480 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013481 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13482 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013483 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13484 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013485 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
13486 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013487 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13488 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013489 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13490 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013491 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13492 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013493 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13494 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013495 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13496 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013497 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13498 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013499 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13500 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013501 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13502 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013503 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13504 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013505 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13506 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013507 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13508 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013509 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13510 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013511 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13512 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013513 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
13514 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013515 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13516 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013517 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13518 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013519 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13520 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013521 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13522 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013523 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13524 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013525 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13526 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013527 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13528 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013529 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13530 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013531 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13532 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013533 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13534 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013535 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13536 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013537 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13538 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
13539 1, 0, msm_routing_get_voice_stub_mixer,
13540 msm_routing_put_voice_stub_mixer),
13541 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13542 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
13543 1, 0, msm_routing_get_voice_stub_mixer,
13544 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013545 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13546 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
13547 1, 0, msm_routing_get_voice_stub_mixer,
13548 msm_routing_put_voice_stub_mixer),
13549 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13550 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
13551 1, 0, msm_routing_get_voice_stub_mixer,
13552 msm_routing_put_voice_stub_mixer),
13553 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13554 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
13555 1, 0, msm_routing_get_voice_stub_mixer,
13556 msm_routing_put_voice_stub_mixer),
13557 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13558 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOLTE_STUB,
13559 1, 0, msm_routing_get_voice_stub_mixer,
13560 msm_routing_put_voice_stub_mixer),
13561 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13562 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOLTE_STUB,
13563 1, 0, msm_routing_get_voice_stub_mixer,
13564 msm_routing_put_voice_stub_mixer),
13565 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13566 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOLTE_STUB,
13567 1, 0, msm_routing_get_voice_stub_mixer,
13568 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013569};
13570
13571static const struct snd_kcontrol_new tx_qchat_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013572 SOC_DOUBLE_EXT("PRI_TX_QCHAT", SND_SOC_NOPM,
13573 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013574 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13575 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013576 SOC_DOUBLE_EXT("SLIM_0_TX_QCHAT", SND_SOC_NOPM,
13577 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013578 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13579 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013580 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_QCHAT", SND_SOC_NOPM,
13581 MSM_BACKEND_DAI_INT_BT_SCO_TX,
13582 MSM_FRONTEND_DAI_QCHAT, 1, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013583 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013584 SOC_DOUBLE_EXT("AFE_PCM_TX_QCHAT", SND_SOC_NOPM,
13585 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013586 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13587 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013588 SOC_DOUBLE_EXT("AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13589 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013590 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13591 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013592 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13593 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013594 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13595 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013596 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13597 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013598 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13599 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013600 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13601 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013602 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13603 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013604 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13605 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013606 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13607 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013608 SOC_DOUBLE_EXT("MI2S_TX_QCHAT", SND_SOC_NOPM,
13609 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013610 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13611 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013612 SOC_DOUBLE_EXT("PRI_MI2S_TX_QCHAT", SND_SOC_NOPM,
13613 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013614 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13615 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013616 SOC_DOUBLE_EXT("TERT_MI2S_TX_QCHAT", SND_SOC_NOPM,
13617 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013618 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13619 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013620 SOC_DOUBLE_EXT("INT3_MI2S_TX_QCHAT", SND_SOC_NOPM,
13621 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013622 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13623 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013624 SOC_DOUBLE_EXT("SLIM_7_TX_QCHAT", SND_SOC_NOPM,
13625 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013626 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13627 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013628 SOC_DOUBLE_EXT("SLIM_8_TX_QCHAT", SND_SOC_NOPM,
13629 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013630 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13631 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013632 SOC_DOUBLE_EXT("USB_AUDIO_TX_QCHAT", SND_SOC_NOPM,
13633 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013634 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13635 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013636 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
13637 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
13638 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13639 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
13640 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
13641 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013642 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
13643 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
13644 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13645 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
13646 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
13647 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13648 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
13649 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
13650 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13651 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_QCHAT", SND_SOC_NOPM,
13652 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_QCHAT,
13653 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13654 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_QCHAT", SND_SOC_NOPM,
13655 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_QCHAT,
13656 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13657 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_QCHAT", SND_SOC_NOPM,
13658 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_QCHAT,
13659 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013660};
13661
13662static const struct snd_kcontrol_new int0_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013663 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13664 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013665 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13666 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013667 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13668 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013669 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13670 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013671 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13672 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013673 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13674 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013675 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13676 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013677 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13678 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013679 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13680 MSM_BACKEND_DAI_INT0_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013681 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13682 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013683 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13684 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013685 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13686 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013687 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13688 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013689 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13690 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013691 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13692 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013693 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13694 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013695 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13696 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013697 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13698 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013699 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13700 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013701 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13702 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013703 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13704 MSM_BACKEND_DAI_INT0_MI2S_RX,
13705 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
13706 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013707};
13708
13709static const struct snd_kcontrol_new int4_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013710 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13711 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013712 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13713 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013714 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13715 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013716 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13717 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013718 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13719 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013720 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13721 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013722 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13723 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013724 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13725 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013726 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13727 MSM_BACKEND_DAI_INT4_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013728 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13729 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013730 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13731 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013732 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13733 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013734 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13735 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013736 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13737 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013738 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13739 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013740 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13741 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013742 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13743 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013744 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13745 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013746 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13747 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013748 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13749 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013750 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13751 MSM_BACKEND_DAI_INT4_MI2S_RX,
13752 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
13753 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013754};
13755
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053013756static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_port_mixer_controls[] = {
13757 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13758 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13759 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, 1, 0, msm_routing_get_port_mixer,
13760 msm_routing_put_port_mixer),
13761 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13762 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13763 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
13764 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080013765 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13766 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13767 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13768 msm_routing_put_port_mixer),
Meng Wang3f8ba542018-12-10 14:17:10 +080013769 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13770 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13771 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13772 msm_routing_put_port_mixer),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053013773};
13774
13775static const struct snd_kcontrol_new rx_cdc_dma_rx_0_port_mixer_controls[] = {
13776 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13777 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13778 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
13779 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080013780 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13781 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13782 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13783 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013784 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
Meng Wang3f8ba542018-12-10 14:17:10 +080013785 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
Surendar Karka3ef3d812018-09-28 18:52:35 +053013786 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
13787 msm_routing_put_port_mixer),
Meng Wang3f8ba542018-12-10 14:17:10 +080013788 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13789 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13790 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13791 msm_routing_put_port_mixer),
13792
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053013793};
13794
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013795static const struct snd_kcontrol_new sbus_0_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013796 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13797 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013798 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13799 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013800 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13801 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013802 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13803 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013804 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13805 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013806 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13807 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013808 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13809 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013810 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13811 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013812 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13813 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013814 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13815 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013816 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13817 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013818 MSM_BACKEND_DAI_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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13821 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013822 MSM_BACKEND_DAI_SEC_AUXPCM_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("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13825 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013826 MSM_BACKEND_DAI_TERT_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("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13829 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013830 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13831 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013832 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13833 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013834 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13835 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013836 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13837 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013838 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13839 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013840 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13841 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013842 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13843 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013844 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13845 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013846 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13847 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013848 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13849 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013850 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13851 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013852 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13853 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013854 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13855 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013856 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13857 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013858 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13859 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013860 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13861 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013862 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13863 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013864 SOC_DOUBLE_EXT("PRI_MI2S_RX", SND_SOC_NOPM,
13865 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013866 MSM_BACKEND_DAI_PRI_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13867 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013868 SOC_DOUBLE_EXT("SEC_MI2S_RX", SND_SOC_NOPM,
13869 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013870 MSM_BACKEND_DAI_SECONDARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13871 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013872 SOC_DOUBLE_EXT("TERT_MI2S_RX", SND_SOC_NOPM,
13873 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013874 MSM_BACKEND_DAI_TERTIARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13875 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013876 SOC_DOUBLE_EXT("QUAT_MI2S_RX", SND_SOC_NOPM,
13877 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013878 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13879 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013880 SOC_DOUBLE_EXT("QUIN_MI2S_RX", SND_SOC_NOPM,
13881 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Surendar Karka3ef3d812018-09-28 18:52:35 +053013882 MSM_BACKEND_DAI_QUINARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13883 msm_routing_put_port_mixer),
13884 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13885 MSM_BACKEND_DAI_SLIMBUS_0_RX,
13886 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
Rohit Kumara5077932017-09-10 22:05:05 +053013887 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013888};
13889
13890static const struct snd_kcontrol_new aux_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013891 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13892 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013893 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13894 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013895 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13896 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013897 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13898 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013899 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13900 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013901 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13902 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013903 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13904 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013905 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13906 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013907 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13908 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013909 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
13910 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013911 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13912 MSM_BACKEND_DAI_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080013913 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13914 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013915};
13916
13917static const struct snd_kcontrol_new sec_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013918 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13919 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013920 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13921 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013922 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13923 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013924 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13925 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013926 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13927 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013928 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13929 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013930 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13931 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080013932 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13933 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013934};
13935
13936static const struct snd_kcontrol_new tert_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013937 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13938 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013939 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13940 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013941 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13942 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013943 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13944 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013945 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13946 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013947 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13948 msm_routing_put_port_mixer),
13949};
13950
13951static const struct snd_kcontrol_new quat_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013952 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13953 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013954 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13955 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013956 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13957 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013958 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13959 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013960 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13961 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013962 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13963 msm_routing_put_port_mixer),
13964};
13965
Rohit Kumara5077932017-09-10 22:05:05 +053013966static const struct snd_kcontrol_new quin_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013967 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13968 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013969 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13970 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013971 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13972 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013973 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13974 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013975 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13976 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013977 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13978 msm_routing_put_port_mixer),
13979};
13980
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013981static const struct snd_kcontrol_new sbus_1_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013982 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13983 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013984 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13985 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013986 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13987 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013988 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0, msm_routing_get_port_mixer,
13989 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013990 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13991 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013992 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13993 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013994 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13995 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013996 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13997 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013998 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13999 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014000 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14001 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014002 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
14003 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014004 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14005 msm_routing_put_port_mixer),
14006};
14007
14008static const struct snd_kcontrol_new sbus_3_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014009 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_RX", SND_SOC_NOPM,
14010 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014011 MSM_BACKEND_DAI_INT_BT_SCO_RX, 1, 0, msm_routing_get_port_mixer,
14012 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014013 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14014 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014015 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14016 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014017 SOC_DOUBLE_EXT("AFE_PCM_RX", SND_SOC_NOPM,
14018 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014019 MSM_BACKEND_DAI_AFE_PCM_RX, 1, 0, msm_routing_get_port_mixer,
14020 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014021 SOC_DOUBLE_EXT("AUX_PCM_RX", SND_SOC_NOPM,
14022 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014023 MSM_BACKEND_DAI_AUXPCM_RX, 1, 0, msm_routing_get_port_mixer,
14024 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014025 SOC_DOUBLE_EXT("SLIM_0_RX", SND_SOC_NOPM,
14026 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014027 MSM_BACKEND_DAI_SLIMBUS_0_RX, 1, 0, msm_routing_get_port_mixer,
14028 msm_routing_put_port_mixer),
14029};
14030
14031static const struct snd_kcontrol_new sbus_6_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014032 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14033 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014034 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14035 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014036 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14037 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014038 MSM_BACKEND_DAI_SLIMBUS_0_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("SLIM_1_TX", SND_SOC_NOPM,
14041 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014042 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14043 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014044 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
14045 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014046 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
14047 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014048 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14049 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014050 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14051 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014052 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14053 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014054 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14055 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014056 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14057 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014058 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14059 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014060 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14061 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014062 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14063 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014064 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14065 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014066 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14067 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014068 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14069 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014070 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14071 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014072 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14073 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014074 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14075 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014076 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14077 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014078 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14079 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053014080 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
14081 MSM_BACKEND_DAI_SLIMBUS_6_RX,
14082 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
14083 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014084};
14085
14086static const struct snd_kcontrol_new bt_sco_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014087 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14088 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014089 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14090 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014091 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14092 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014093 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14094 msm_routing_put_port_mixer),
14095};
14096
14097static const struct snd_kcontrol_new afe_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014098 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14099 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014100 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14101 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014102 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14103 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014104 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14105 msm_routing_put_port_mixer),
14106};
14107
14108
14109static const struct snd_kcontrol_new hdmi_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014110 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14111 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014112 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14113 msm_routing_put_port_mixer),
14114};
14115
14116static const struct snd_kcontrol_new display_port_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014117 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14118 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014119 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14120 msm_routing_put_port_mixer),
14121};
14122
Karthikeyan Mani57550082018-05-03 18:43:58 -070014123static const struct snd_kcontrol_new display_port_rx1_port_mixer_controls[] = {
14124 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14125 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
14126 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14127 msm_routing_put_port_mixer),
14128};
14129
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014130static const struct snd_kcontrol_new sec_i2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014131 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14132 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014133 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14134 msm_routing_put_port_mixer),
14135};
14136
14137static const struct snd_kcontrol_new mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014138 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14139 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014140 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14141 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014142 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14143 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014144 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14145 msm_routing_put_port_mixer),
14146};
14147
14148static const struct snd_kcontrol_new primary_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014149 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14150 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014151 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14152 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014153 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14154 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014155 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14156 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014157 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14158 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014159 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14160 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014161 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14162 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014163 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14164 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014165 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14166 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014167 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14168 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014169 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14170 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014171 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14172 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014173 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14174 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014175 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14176 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014177 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14178 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014179 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14180 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014181 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14182 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014183 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14184 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014185 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14186 MSM_BACKEND_DAI_PRI_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080014187 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14188 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014189};
14190
14191static const struct snd_kcontrol_new usb_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014192 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
14193 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014194 MSM_BACKEND_DAI_USB_TX, 1, 0, msm_routing_get_port_mixer,
14195 msm_routing_put_port_mixer),
14196};
14197
14198static const struct snd_kcontrol_new quat_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014199 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14200 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014201 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14202 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014203 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14204 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014205 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14206 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014207 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14208 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014209 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14210 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014211 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14212 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014213 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14214 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014215 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14216 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014217 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14218 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014219 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14220 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014221 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14222 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014223 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14224 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014225 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14226 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014227 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14228 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014229 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14230 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014231 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14232 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014233 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14234 msm_routing_put_port_mixer),
14235};
14236
Rohit Kumara5077932017-09-10 22:05:05 +053014237static const struct snd_kcontrol_new quin_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014238 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14239 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014240 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14241 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014242 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14243 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014244 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14245 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014246 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14247 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014248 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14249 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014250 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14251 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014252 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14253 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014254 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14255 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014256 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14257 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014258 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14259 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014260 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14261 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014262 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14263 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014264 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14265 msm_routing_put_port_mixer),
14266};
14267
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014268static const struct snd_kcontrol_new pri_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014269 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14270 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014271 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14272 msm_routing_get_port_mixer,
14273 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014274 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14275 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014276 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14277 msm_routing_get_port_mixer,
14278 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014279 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14280 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014281 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14282 msm_routing_get_port_mixer,
14283 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014284 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14285 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014286 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14287 msm_routing_get_port_mixer,
14288 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014289 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14290 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014291 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14292 msm_routing_get_port_mixer,
14293 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014294 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14295 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014296 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14297 msm_routing_get_port_mixer,
14298 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014299 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14300 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014301 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14302 msm_routing_get_port_mixer,
14303 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014304 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14305 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014306 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14307 msm_routing_get_port_mixer,
14308 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014309 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14310 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014311 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14312 msm_routing_get_port_mixer,
14313 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014314 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14315 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014316 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14317 msm_routing_get_port_mixer,
14318 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014319 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14320 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014321 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14322 msm_routing_get_port_mixer,
14323 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014324 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14325 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014326 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14327 msm_routing_get_port_mixer,
14328 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014329 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14330 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014331 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14332 msm_routing_get_port_mixer,
14333 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014334 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14335 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014336 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14337 msm_routing_get_port_mixer,
14338 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014339 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14340 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014341 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14342 msm_routing_get_port_mixer,
14343 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014344 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14345 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014346 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14347 msm_routing_get_port_mixer,
14348 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014349 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14350 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014351 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14352 msm_routing_get_port_mixer,
14353 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014354 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14355 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014356 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14357 msm_routing_get_port_mixer,
14358 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014359 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14360 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014361 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14362 msm_routing_get_port_mixer,
14363 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014364 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14365 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014366 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14367 msm_routing_get_port_mixer,
14368 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014369};
14370
14371static const struct snd_kcontrol_new pri_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014372 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14373 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014374 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14375 msm_routing_get_port_mixer,
14376 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014377 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14378 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014379 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14380 msm_routing_get_port_mixer,
14381 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014382 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14383 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014384 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14385 msm_routing_get_port_mixer,
14386 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014387 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14388 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014389 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14390 msm_routing_get_port_mixer,
14391 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014392 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14393 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014394 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14395 msm_routing_get_port_mixer,
14396 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014397 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14398 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014399 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14400 msm_routing_get_port_mixer,
14401 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014402 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14403 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014404 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14405 msm_routing_get_port_mixer,
14406 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014407 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14408 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014409 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14410 msm_routing_get_port_mixer,
14411 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014412 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14413 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014414 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14415 msm_routing_get_port_mixer,
14416 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014417 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14418 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014419 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14420 msm_routing_get_port_mixer,
14421 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014422 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14423 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014424 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14425 msm_routing_get_port_mixer,
14426 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014427 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14428 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014429 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14430 msm_routing_get_port_mixer,
14431 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014432 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14433 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014434 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14435 msm_routing_get_port_mixer,
14436 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014437 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14438 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014439 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14440 msm_routing_get_port_mixer,
14441 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014442 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14443 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014444 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14445 msm_routing_get_port_mixer,
14446 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014447 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14448 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014449 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14450 msm_routing_get_port_mixer,
14451 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014452 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14453 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014454 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14455 msm_routing_get_port_mixer,
14456 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014457 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14458 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014459 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14460 msm_routing_get_port_mixer,
14461 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014462 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14463 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014464 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14465 msm_routing_get_port_mixer,
14466 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014467 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14468 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014469 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14470 msm_routing_get_port_mixer,
14471 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014472};
14473
14474static const struct snd_kcontrol_new pri_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014475 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14476 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014477 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14478 msm_routing_get_port_mixer,
14479 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014480 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14481 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014482 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14483 msm_routing_get_port_mixer,
14484 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014485 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14486 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014487 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14488 msm_routing_get_port_mixer,
14489 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014490 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14491 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014492 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14493 msm_routing_get_port_mixer,
14494 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014495 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14496 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014497 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14498 msm_routing_get_port_mixer,
14499 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014500 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14501 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014502 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14503 msm_routing_get_port_mixer,
14504 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014505 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14506 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014507 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14508 msm_routing_get_port_mixer,
14509 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014510 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14511 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014512 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14513 msm_routing_get_port_mixer,
14514 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014515 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14516 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014517 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14518 msm_routing_get_port_mixer,
14519 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014520 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14521 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014522 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14523 msm_routing_get_port_mixer,
14524 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014525 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14526 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014527 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14528 msm_routing_get_port_mixer,
14529 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014530 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14531 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014532 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14533 msm_routing_get_port_mixer,
14534 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014535 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14536 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014537 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14538 msm_routing_get_port_mixer,
14539 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014540 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14541 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014542 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14543 msm_routing_get_port_mixer,
14544 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014545 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14546 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014547 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14548 msm_routing_get_port_mixer,
14549 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014550 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14551 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014552 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14553 msm_routing_get_port_mixer,
14554 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014555 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14556 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014557 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14558 msm_routing_get_port_mixer,
14559 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014560 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14561 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014562 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14563 msm_routing_get_port_mixer,
14564 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014565 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14566 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014567 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14568 msm_routing_get_port_mixer,
14569 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014570 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14571 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014572 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14573 msm_routing_get_port_mixer,
14574 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014575};
14576
14577static const struct snd_kcontrol_new pri_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014578 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14579 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014580 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14581 msm_routing_get_port_mixer,
14582 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014583 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14584 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014585 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14586 msm_routing_get_port_mixer,
14587 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014588 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14589 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014590 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14591 msm_routing_get_port_mixer,
14592 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014593 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14594 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014595 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14596 msm_routing_get_port_mixer,
14597 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014598 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14599 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014600 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14601 msm_routing_get_port_mixer,
14602 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014603 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14604 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014605 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14606 msm_routing_get_port_mixer,
14607 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014608 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14609 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014610 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14611 msm_routing_get_port_mixer,
14612 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014613 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14614 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014615 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14616 msm_routing_get_port_mixer,
14617 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014618 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14619 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014620 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14621 msm_routing_get_port_mixer,
14622 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014623 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14624 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014625 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14626 msm_routing_get_port_mixer,
14627 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014628 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14629 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014630 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14631 msm_routing_get_port_mixer,
14632 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014633 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14634 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014635 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14636 msm_routing_get_port_mixer,
14637 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014638 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14639 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014640 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14641 msm_routing_get_port_mixer,
14642 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014643 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14644 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014645 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14646 msm_routing_get_port_mixer,
14647 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014648 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14649 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014650 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14651 msm_routing_get_port_mixer,
14652 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014653 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14654 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014655 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14656 msm_routing_get_port_mixer,
14657 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014658 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14659 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014660 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14661 msm_routing_get_port_mixer,
14662 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014663 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14664 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014665 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14666 msm_routing_get_port_mixer,
14667 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014668 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14669 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014670 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14671 msm_routing_get_port_mixer,
14672 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014673 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14674 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014675 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14676 msm_routing_get_port_mixer,
14677 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014678};
14679
14680static const struct snd_kcontrol_new sec_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014681 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14682 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014683 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14684 msm_routing_get_port_mixer,
14685 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014686 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14687 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014688 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14689 msm_routing_get_port_mixer,
14690 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014691 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14692 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014693 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14694 msm_routing_get_port_mixer,
14695 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014696 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14697 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014698 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14699 msm_routing_get_port_mixer,
14700 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014701 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14702 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014703 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14704 msm_routing_get_port_mixer,
14705 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014706 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14707 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014708 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14709 msm_routing_get_port_mixer,
14710 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014711 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14712 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014713 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14714 msm_routing_get_port_mixer,
14715 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014716 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14717 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014718 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14719 msm_routing_get_port_mixer,
14720 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014721 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14722 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014723 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14724 msm_routing_get_port_mixer,
14725 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014726 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14727 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014728 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
14729 msm_routing_get_port_mixer,
14730 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014731 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14732 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014733 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
14734 msm_routing_get_port_mixer,
14735 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014736 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14737 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014738 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
14739 msm_routing_get_port_mixer,
14740 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014741 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14742 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014743 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14744 msm_routing_get_port_mixer,
14745 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014746 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14747 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014748 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14749 msm_routing_get_port_mixer,
14750 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014751 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14752 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014753 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14754 msm_routing_get_port_mixer,
14755 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014756 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14757 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014758 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14759 msm_routing_get_port_mixer,
14760 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014761 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14762 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014763 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14764 msm_routing_get_port_mixer,
14765 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014766 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14767 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014768 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14769 msm_routing_get_port_mixer,
14770 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014771 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14772 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014773 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14774 msm_routing_get_port_mixer,
14775 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014776 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14777 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014778 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14779 msm_routing_get_port_mixer,
14780 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014781};
14782
14783static const struct snd_kcontrol_new sec_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014784 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14785 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014786 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14787 msm_routing_get_port_mixer,
14788 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014789 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14790 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014791 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14792 msm_routing_get_port_mixer,
14793 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014794 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14795 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014796 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14797 msm_routing_get_port_mixer,
14798 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014799 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14800 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014801 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14802 msm_routing_get_port_mixer,
14803 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014804 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14805 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014806 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14807 msm_routing_get_port_mixer,
14808 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014809 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14810 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014811 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14812 msm_routing_get_port_mixer,
14813 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014814 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14815 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014816 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14817 msm_routing_get_port_mixer,
14818 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014819 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14820 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014821 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14822 msm_routing_get_port_mixer,
14823 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014824 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14825 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014826 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14827 msm_routing_get_port_mixer,
14828 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014829 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14830 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014831 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
14832 msm_routing_get_port_mixer,
14833 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014834 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14835 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014836 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
14837 msm_routing_get_port_mixer,
14838 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014839 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14840 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014841 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
14842 msm_routing_get_port_mixer,
14843 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014844 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14845 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014846 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14847 msm_routing_get_port_mixer,
14848 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014849 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14850 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014851 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14852 msm_routing_get_port_mixer,
14853 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014854 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14855 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014856 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14857 msm_routing_get_port_mixer,
14858 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014859 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14860 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014861 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14862 msm_routing_get_port_mixer,
14863 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014864 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14865 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014866 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14867 msm_routing_get_port_mixer,
14868 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014869 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14870 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014871 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14872 msm_routing_get_port_mixer,
14873 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014874 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14875 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014876 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14877 msm_routing_get_port_mixer,
14878 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014879 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14880 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014881 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14882 msm_routing_get_port_mixer,
14883 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014884};
14885
14886static const struct snd_kcontrol_new sec_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014887 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14888 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014889 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14890 msm_routing_get_port_mixer,
14891 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014892 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14893 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014894 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14895 msm_routing_get_port_mixer,
14896 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014897 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14898 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014899 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14900 msm_routing_get_port_mixer,
14901 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014902 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14903 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014904 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14905 msm_routing_get_port_mixer,
14906 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014907 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14908 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014909 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14910 msm_routing_get_port_mixer,
14911 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014912 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14913 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014914 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14915 msm_routing_get_port_mixer,
14916 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014917 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14918 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014919 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14920 msm_routing_get_port_mixer,
14921 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014922 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14923 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014924 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14925 msm_routing_get_port_mixer,
14926 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014927 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14928 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014929 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14930 msm_routing_get_port_mixer,
14931 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014932 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14933 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014934 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
14935 msm_routing_get_port_mixer,
14936 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014937 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14938 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014939 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
14940 msm_routing_get_port_mixer,
14941 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014942 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14943 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014944 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
14945 msm_routing_get_port_mixer,
14946 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014947 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14948 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014949 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14950 msm_routing_get_port_mixer,
14951 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014952 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14953 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014954 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14955 msm_routing_get_port_mixer,
14956 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014957 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14958 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014959 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14960 msm_routing_get_port_mixer,
14961 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014962 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14963 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014964 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14965 msm_routing_get_port_mixer,
14966 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014967 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14968 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014969 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14970 msm_routing_get_port_mixer,
14971 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014972 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14973 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014974 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14975 msm_routing_get_port_mixer,
14976 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014977 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14978 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014979 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14980 msm_routing_get_port_mixer,
14981 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014982 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14983 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014984 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14985 msm_routing_get_port_mixer,
14986 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014987};
14988
14989static const struct snd_kcontrol_new sec_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014990 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14991 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014992 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14993 msm_routing_get_port_mixer,
14994 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014995 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14996 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014997 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14998 msm_routing_get_port_mixer,
14999 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015000 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15001 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015002 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15003 msm_routing_get_port_mixer,
15004 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015005 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15006 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015007 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15008 msm_routing_get_port_mixer,
15009 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015010 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15011 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015012 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15013 msm_routing_get_port_mixer,
15014 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015015 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15016 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015017 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15018 msm_routing_get_port_mixer,
15019 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015020 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15021 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015022 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15023 msm_routing_get_port_mixer,
15024 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015025 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15026 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015027 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15028 msm_routing_get_port_mixer,
15029 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015030 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
15031 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015032 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
15033 msm_routing_get_port_mixer,
15034 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015035 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
15036 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015037 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
15038 msm_routing_get_port_mixer,
15039 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015040 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
15041 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015042 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
15043 msm_routing_get_port_mixer,
15044 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015045 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
15046 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015047 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
15048 msm_routing_get_port_mixer,
15049 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015050 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15051 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015052 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15053 msm_routing_get_port_mixer,
15054 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015055 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15056 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015057 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15058 msm_routing_get_port_mixer,
15059 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015060 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15061 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015062 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15063 msm_routing_get_port_mixer,
15064 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015065 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15066 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015067 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15068 msm_routing_get_port_mixer,
15069 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015070 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15071 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015072 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15073 msm_routing_get_port_mixer,
15074 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015075 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15076 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015077 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15078 msm_routing_get_port_mixer,
15079 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015080 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15081 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015082 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15083 msm_routing_get_port_mixer,
15084 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015085 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15086 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015087 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15088 msm_routing_get_port_mixer,
15089 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015090};
15091
Derek Chenfdcc0982018-10-02 15:14:03 -070015092static const struct snd_kcontrol_new sec_tdm_rx_7_port_mixer_controls[] = {
15093 SOC_DOUBLE_EXT("TERT_TDM_TX_7", SND_SOC_NOPM,
15094 MSM_BACKEND_DAI_SEC_TDM_RX_7,
15095 MSM_BACKEND_DAI_TERT_TDM_TX_7, 1, 0,
15096 msm_routing_get_port_mixer,
15097 msm_routing_put_port_mixer),
15098};
15099
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015100static const struct snd_kcontrol_new tert_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015101 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15102 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015103 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15104 msm_routing_get_port_mixer,
15105 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015106 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15107 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015108 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15109 msm_routing_get_port_mixer,
15110 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015111 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15112 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015113 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15114 msm_routing_get_port_mixer,
15115 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015116 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15117 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015118 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15119 msm_routing_get_port_mixer,
15120 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015121 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15122 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015123 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15124 msm_routing_get_port_mixer,
15125 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015126 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15127 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015128 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15129 msm_routing_get_port_mixer,
15130 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015131 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15132 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015133 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15134 msm_routing_get_port_mixer,
15135 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015136 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15137 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015138 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15139 msm_routing_get_port_mixer,
15140 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015141 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15142 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015143 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15144 msm_routing_get_port_mixer,
15145 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015146 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15147 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015148 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15149 msm_routing_get_port_mixer,
15150 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015151 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15152 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015153 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15154 msm_routing_get_port_mixer,
15155 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015156 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15157 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015158 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15159 msm_routing_get_port_mixer,
15160 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015161 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15162 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015163 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15164 msm_routing_get_port_mixer,
15165 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015166 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15167 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015168 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15169 msm_routing_get_port_mixer,
15170 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015171 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15172 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015173 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15174 msm_routing_get_port_mixer,
15175 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015176 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15177 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015178 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15179 msm_routing_get_port_mixer,
15180 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015181 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15182 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015183 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15184 msm_routing_get_port_mixer,
15185 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015186 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15187 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015188 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15189 msm_routing_get_port_mixer,
15190 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015191 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15192 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015193 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15194 msm_routing_get_port_mixer,
15195 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015196 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15197 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015198 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15199 msm_routing_get_port_mixer,
15200 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015201};
15202
15203static const struct snd_kcontrol_new tert_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015204 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15205 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015206 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15207 msm_routing_get_port_mixer,
15208 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015209 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15210 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015211 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15212 msm_routing_get_port_mixer,
15213 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015214 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15215 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015216 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15217 msm_routing_get_port_mixer,
15218 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015219 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15220 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015221 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15222 msm_routing_get_port_mixer,
15223 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015224 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15225 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015226 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15227 msm_routing_get_port_mixer,
15228 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015229 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15230 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015231 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15232 msm_routing_get_port_mixer,
15233 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015234 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15235 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015236 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15237 msm_routing_get_port_mixer,
15238 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015239 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15240 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015241 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15242 msm_routing_get_port_mixer,
15243 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015244 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15245 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015246 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15247 msm_routing_get_port_mixer,
15248 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015249 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15250 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015251 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15252 msm_routing_get_port_mixer,
15253 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015254 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15255 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015256 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15257 msm_routing_get_port_mixer,
15258 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015259 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15260 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015261 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15262 msm_routing_get_port_mixer,
15263 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015264 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15265 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015266 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15267 msm_routing_get_port_mixer,
15268 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015269 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15270 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015271 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15272 msm_routing_get_port_mixer,
15273 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015274 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15275 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015276 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15277 msm_routing_get_port_mixer,
15278 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015279 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15280 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015281 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15282 msm_routing_get_port_mixer,
15283 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015284 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15285 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015286 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15287 msm_routing_get_port_mixer,
15288 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015289 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15290 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015291 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15292 msm_routing_get_port_mixer,
15293 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015294 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15295 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015296 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15297 msm_routing_get_port_mixer,
15298 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015299 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15300 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015301 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15302 msm_routing_get_port_mixer,
15303 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015304};
15305
15306static const struct snd_kcontrol_new tert_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015307 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15308 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015309 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15310 msm_routing_get_port_mixer,
15311 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015312 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15313 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015314 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15315 msm_routing_get_port_mixer,
15316 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015317 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15318 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015319 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15320 msm_routing_get_port_mixer,
15321 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015322 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15323 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015324 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15325 msm_routing_get_port_mixer,
15326 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015327 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15328 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015329 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15330 msm_routing_get_port_mixer,
15331 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015332 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15333 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015334 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15335 msm_routing_get_port_mixer,
15336 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015337 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15338 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015339 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15340 msm_routing_get_port_mixer,
15341 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015342 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15343 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015344 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15345 msm_routing_get_port_mixer,
15346 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015347 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15348 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015349 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15350 msm_routing_get_port_mixer,
15351 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015352 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15353 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015354 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15355 msm_routing_get_port_mixer,
15356 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015357 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15358 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015359 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15360 msm_routing_get_port_mixer,
15361 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015362 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15363 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015364 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15365 msm_routing_get_port_mixer,
15366 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015367 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15368 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015369 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15370 msm_routing_get_port_mixer,
15371 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015372 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15373 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015374 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15375 msm_routing_get_port_mixer,
15376 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015377 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15378 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015379 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15380 msm_routing_get_port_mixer,
15381 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015382 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15383 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015384 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15385 msm_routing_get_port_mixer,
15386 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015387 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15388 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015389 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15390 msm_routing_get_port_mixer,
15391 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015392 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15393 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015394 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15395 msm_routing_get_port_mixer,
15396 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015397 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15398 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015399 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15400 msm_routing_get_port_mixer,
15401 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015402 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15403 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015404 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15405 msm_routing_get_port_mixer,
15406 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015407};
15408
15409static const struct snd_kcontrol_new tert_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015410 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15411 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015412 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15413 msm_routing_get_port_mixer,
15414 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015415 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15416 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015417 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15418 msm_routing_get_port_mixer,
15419 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015420 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15421 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015422 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15423 msm_routing_get_port_mixer,
15424 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015425 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15426 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015427 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15428 msm_routing_get_port_mixer,
15429 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015430 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15431 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015432 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15433 msm_routing_get_port_mixer,
15434 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015435 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15436 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015437 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15438 msm_routing_get_port_mixer,
15439 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015440 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15441 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015442 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15443 msm_routing_get_port_mixer,
15444 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015445 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15446 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015447 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15448 msm_routing_get_port_mixer,
15449 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015450 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15451 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015452 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15453 msm_routing_get_port_mixer,
15454 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015455 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15456 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015457 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15458 msm_routing_get_port_mixer,
15459 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015460 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15461 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015462 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15463 msm_routing_get_port_mixer,
15464 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015465 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15466 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015467 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15468 msm_routing_get_port_mixer,
15469 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015470 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15471 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015472 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15473 msm_routing_get_port_mixer,
15474 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015475 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15476 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015477 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15478 msm_routing_get_port_mixer,
15479 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015480 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15481 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015482 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15483 msm_routing_get_port_mixer,
15484 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015485 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15486 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015487 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15488 msm_routing_get_port_mixer,
15489 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015490 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15491 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015492 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15493 msm_routing_get_port_mixer,
15494 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015495 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15496 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015497 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15498 msm_routing_get_port_mixer,
15499 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015500 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15501 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015502 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15503 msm_routing_get_port_mixer,
15504 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015505 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15506 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015507 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15508 msm_routing_get_port_mixer,
15509 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015510};
15511
15512static const struct snd_kcontrol_new quat_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015513 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15514 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015515 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15516 msm_routing_get_port_mixer,
15517 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015518 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15519 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015520 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15521 msm_routing_get_port_mixer,
15522 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015523 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15524 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015525 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15526 msm_routing_get_port_mixer,
15527 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015528 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15529 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015530 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15531 msm_routing_get_port_mixer,
15532 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015533 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15534 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015535 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15536 msm_routing_get_port_mixer,
15537 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015538 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15539 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015540 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15541 msm_routing_get_port_mixer,
15542 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015543 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15544 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015545 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15546 msm_routing_get_port_mixer,
15547 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015548 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15549 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015550 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15551 msm_routing_get_port_mixer,
15552 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015553 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15554 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015555 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15556 msm_routing_get_port_mixer,
15557 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015558 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15559 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015560 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15561 msm_routing_get_port_mixer,
15562 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015563 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15564 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015565 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15566 msm_routing_get_port_mixer,
15567 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015568 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15569 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015570 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15571 msm_routing_get_port_mixer,
15572 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015573 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15574 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015575 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15576 msm_routing_get_port_mixer,
15577 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015578 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15579 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015580 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15581 msm_routing_get_port_mixer,
15582 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015583 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15584 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015585 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15586 msm_routing_get_port_mixer,
15587 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015588 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15589 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015590 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15591 msm_routing_get_port_mixer,
15592 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015593 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15594 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015595 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15596 msm_routing_get_port_mixer,
15597 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015598 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15599 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015600 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15601 msm_routing_get_port_mixer,
15602 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015603 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15604 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015605 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15606 msm_routing_get_port_mixer,
15607 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015608 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15609 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015610 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15611 msm_routing_get_port_mixer,
15612 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015613};
15614
15615static const struct snd_kcontrol_new quat_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015616 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15617 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015618 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15619 msm_routing_get_port_mixer,
15620 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015621 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15622 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015623 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15624 msm_routing_get_port_mixer,
15625 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015626 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15627 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015628 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15629 msm_routing_get_port_mixer,
15630 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015631 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15632 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015633 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15634 msm_routing_get_port_mixer,
15635 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015636 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15637 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015638 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15639 msm_routing_get_port_mixer,
15640 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015641 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15642 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015643 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15644 msm_routing_get_port_mixer,
15645 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015646 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15647 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015648 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15649 msm_routing_get_port_mixer,
15650 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015651 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15652 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015653 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15654 msm_routing_get_port_mixer,
15655 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015656 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15657 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015658 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15659 msm_routing_get_port_mixer,
15660 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015661 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15662 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015663 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15664 msm_routing_get_port_mixer,
15665 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015666 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15667 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015668 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15669 msm_routing_get_port_mixer,
15670 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015671 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15672 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015673 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15674 msm_routing_get_port_mixer,
15675 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015676 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15677 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015678 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15679 msm_routing_get_port_mixer,
15680 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015681 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15682 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015683 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15684 msm_routing_get_port_mixer,
15685 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015686 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15687 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015688 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15689 msm_routing_get_port_mixer,
15690 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015691 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15692 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015693 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15694 msm_routing_get_port_mixer,
15695 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015696 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15697 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015698 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15699 msm_routing_get_port_mixer,
15700 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015701 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15702 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015703 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15704 msm_routing_get_port_mixer,
15705 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015706 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15707 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015708 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15709 msm_routing_get_port_mixer,
15710 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015711 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15712 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015713 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15714 msm_routing_get_port_mixer,
15715 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015716};
15717
15718static const struct snd_kcontrol_new quat_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015719 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15720 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015721 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15722 msm_routing_get_port_mixer,
15723 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015724 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15725 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015726 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15727 msm_routing_get_port_mixer,
15728 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015729 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15730 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015731 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15732 msm_routing_get_port_mixer,
15733 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015734 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15735 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015736 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15737 msm_routing_get_port_mixer,
15738 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015739 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15740 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015741 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15742 msm_routing_get_port_mixer,
15743 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015744 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15745 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015746 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15747 msm_routing_get_port_mixer,
15748 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015749 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15750 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015751 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15752 msm_routing_get_port_mixer,
15753 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015754 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15755 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015756 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15757 msm_routing_get_port_mixer,
15758 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015759 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15760 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015761 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15762 msm_routing_get_port_mixer,
15763 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015764 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15765 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015766 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15767 msm_routing_get_port_mixer,
15768 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015769 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15770 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015771 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15772 msm_routing_get_port_mixer,
15773 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015774 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15775 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015776 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15777 msm_routing_get_port_mixer,
15778 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015779 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15780 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015781 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15782 msm_routing_get_port_mixer,
15783 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015784 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15785 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015786 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15787 msm_routing_get_port_mixer,
15788 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015789 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15790 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015791 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15792 msm_routing_get_port_mixer,
15793 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015794 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15795 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015796 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15797 msm_routing_get_port_mixer,
15798 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015799 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15800 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015801 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15802 msm_routing_get_port_mixer,
15803 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015804 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15805 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015806 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15807 msm_routing_get_port_mixer,
15808 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015809 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15810 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015811 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15812 msm_routing_get_port_mixer,
15813 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015814 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15815 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015816 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15817 msm_routing_get_port_mixer,
15818 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015819};
15820
15821static const struct snd_kcontrol_new quat_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015822 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15823 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015824 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15825 msm_routing_get_port_mixer,
15826 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015827 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15828 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015829 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15830 msm_routing_get_port_mixer,
15831 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015832 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15833 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015834 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15835 msm_routing_get_port_mixer,
15836 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015837 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15838 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015839 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15840 msm_routing_get_port_mixer,
15841 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015842 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15843 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015844 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15845 msm_routing_get_port_mixer,
15846 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015847 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15848 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015849 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15850 msm_routing_get_port_mixer,
15851 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015852 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15853 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015854 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15855 msm_routing_get_port_mixer,
15856 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015857 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15858 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015859 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15860 msm_routing_get_port_mixer,
15861 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015862 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15863 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015864 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15865 msm_routing_get_port_mixer,
15866 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015867 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15868 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015869 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15870 msm_routing_get_port_mixer,
15871 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015872 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15873 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015874 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15875 msm_routing_get_port_mixer,
15876 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015877 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15878 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015879 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15880 msm_routing_get_port_mixer,
15881 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015882 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15883 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015884 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15885 msm_routing_get_port_mixer,
15886 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015887 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15888 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015889 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15890 msm_routing_get_port_mixer,
15891 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015892 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15893 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015894 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15895 msm_routing_get_port_mixer,
15896 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015897 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15898 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015899 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15900 msm_routing_get_port_mixer,
15901 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015902 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15903 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015904 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15905 msm_routing_get_port_mixer,
15906 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015907 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15908 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015909 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15910 msm_routing_get_port_mixer,
15911 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015912 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15913 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015914 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15915 msm_routing_get_port_mixer,
15916 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015917 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15918 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015919 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15920 msm_routing_get_port_mixer,
15921 msm_routing_put_port_mixer),
15922};
15923
15924static const struct snd_kcontrol_new quin_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015925 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15926 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015927 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15928 msm_routing_get_port_mixer,
15929 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015930 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15931 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015932 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15933 msm_routing_get_port_mixer,
15934 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015935 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15936 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015937 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15938 msm_routing_get_port_mixer,
15939 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015940 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15941 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015942 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15943 msm_routing_get_port_mixer,
15944 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015945 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15946 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015947 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15948 msm_routing_get_port_mixer,
15949 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015950 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15951 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015952 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15953 msm_routing_get_port_mixer,
15954 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015955 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15956 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015957 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15958 msm_routing_get_port_mixer,
15959 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015960 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15961 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015962 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15963 msm_routing_get_port_mixer,
15964 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015965 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15966 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015967 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15968 msm_routing_get_port_mixer,
15969 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015970 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15971 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015972 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15973 msm_routing_get_port_mixer,
15974 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015975 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15976 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015977 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15978 msm_routing_get_port_mixer,
15979 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015980 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15981 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015982 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15983 msm_routing_get_port_mixer,
15984 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015985 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15986 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015987 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15988 msm_routing_get_port_mixer,
15989 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015990 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15991 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015992 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15993 msm_routing_get_port_mixer,
15994 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015995 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15996 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015997 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15998 msm_routing_get_port_mixer,
15999 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016000 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16001 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016002 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16003 msm_routing_get_port_mixer,
16004 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016005 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16006 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016007 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16008 msm_routing_get_port_mixer,
16009 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016010 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16011 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016012 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16013 msm_routing_get_port_mixer,
16014 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016015 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16016 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016017 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16018 msm_routing_get_port_mixer,
16019 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016020 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16021 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016022 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16023 msm_routing_get_port_mixer,
16024 msm_routing_put_port_mixer),
16025};
16026
16027static const struct snd_kcontrol_new quin_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016028 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16029 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016030 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16031 msm_routing_get_port_mixer,
16032 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016033 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16034 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016035 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16036 msm_routing_get_port_mixer,
16037 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016038 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16039 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016040 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16041 msm_routing_get_port_mixer,
16042 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016043 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16044 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016045 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16046 msm_routing_get_port_mixer,
16047 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016048 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16049 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016050 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16051 msm_routing_get_port_mixer,
16052 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016053 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16054 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016055 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16056 msm_routing_get_port_mixer,
16057 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016058 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16059 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016060 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16061 msm_routing_get_port_mixer,
16062 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016063 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16064 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016065 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16066 msm_routing_get_port_mixer,
16067 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016068 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16069 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016070 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16071 msm_routing_get_port_mixer,
16072 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016073 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16074 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016075 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16076 msm_routing_get_port_mixer,
16077 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016078 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16079 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016080 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16081 msm_routing_get_port_mixer,
16082 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016083 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16084 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016085 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16086 msm_routing_get_port_mixer,
16087 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016088 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16089 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016090 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16091 msm_routing_get_port_mixer,
16092 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016093 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16094 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016095 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16096 msm_routing_get_port_mixer,
16097 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016098 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16099 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016100 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16101 msm_routing_get_port_mixer,
16102 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016103 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16104 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016105 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16106 msm_routing_get_port_mixer,
16107 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016108 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16109 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016110 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16111 msm_routing_get_port_mixer,
16112 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016113 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16114 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016115 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16116 msm_routing_get_port_mixer,
16117 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016118 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16119 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016120 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16121 msm_routing_get_port_mixer,
16122 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016123 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16124 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016125 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16126 msm_routing_get_port_mixer,
16127 msm_routing_put_port_mixer),
16128};
16129
16130static const struct snd_kcontrol_new quin_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016131 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16132 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016133 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16134 msm_routing_get_port_mixer,
16135 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016136 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16137 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016138 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16139 msm_routing_get_port_mixer,
16140 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016141 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16142 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016143 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16144 msm_routing_get_port_mixer,
16145 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016146 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16147 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016148 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16149 msm_routing_get_port_mixer,
16150 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016151 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16152 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016153 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16154 msm_routing_get_port_mixer,
16155 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016156 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16157 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016158 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16159 msm_routing_get_port_mixer,
16160 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016161 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16162 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016163 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16164 msm_routing_get_port_mixer,
16165 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016166 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16167 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016168 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16169 msm_routing_get_port_mixer,
16170 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016171 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16172 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016173 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16174 msm_routing_get_port_mixer,
16175 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016176 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16177 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016178 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16179 msm_routing_get_port_mixer,
16180 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016181 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16182 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016183 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16184 msm_routing_get_port_mixer,
16185 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016186 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16187 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016188 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16189 msm_routing_get_port_mixer,
16190 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016191 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16192 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016193 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16194 msm_routing_get_port_mixer,
16195 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016196 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16197 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016198 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16199 msm_routing_get_port_mixer,
16200 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016201 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16202 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016203 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16204 msm_routing_get_port_mixer,
16205 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016206 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16207 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016208 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16209 msm_routing_get_port_mixer,
16210 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016211 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16212 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016213 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16214 msm_routing_get_port_mixer,
16215 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016216 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16217 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016218 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16219 msm_routing_get_port_mixer,
16220 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016221 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16222 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016223 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16224 msm_routing_get_port_mixer,
16225 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016226 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16227 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016228 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16229 msm_routing_get_port_mixer,
16230 msm_routing_put_port_mixer),
16231};
16232
16233static const struct snd_kcontrol_new quin_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016234 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16235 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016236 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16237 msm_routing_get_port_mixer,
16238 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016239 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16240 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016241 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16242 msm_routing_get_port_mixer,
16243 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016244 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16245 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016246 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16247 msm_routing_get_port_mixer,
16248 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016249 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16250 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016251 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16252 msm_routing_get_port_mixer,
16253 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016254 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16255 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016256 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16257 msm_routing_get_port_mixer,
16258 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016259 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16260 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016261 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16262 msm_routing_get_port_mixer,
16263 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016264 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16265 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016266 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16267 msm_routing_get_port_mixer,
16268 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016269 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16270 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016271 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16272 msm_routing_get_port_mixer,
16273 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016274 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16275 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016276 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16277 msm_routing_get_port_mixer,
16278 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016279 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16280 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016281 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16282 msm_routing_get_port_mixer,
16283 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016284 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16285 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016286 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16287 msm_routing_get_port_mixer,
16288 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016289 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16290 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016291 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16292 msm_routing_get_port_mixer,
16293 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016294 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16295 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016296 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16297 msm_routing_get_port_mixer,
16298 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016299 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16300 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016301 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16302 msm_routing_get_port_mixer,
16303 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016304 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16305 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016306 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16307 msm_routing_get_port_mixer,
16308 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016309 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16310 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016311 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16312 msm_routing_get_port_mixer,
16313 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016314 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16315 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016316 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16317 msm_routing_get_port_mixer,
16318 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016319 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16320 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016321 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16322 msm_routing_get_port_mixer,
16323 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016324 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16325 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016326 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16327 msm_routing_get_port_mixer,
16328 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016329 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16330 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016331 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16332 msm_routing_get_port_mixer,
16333 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016334};
16335
16336static const struct snd_kcontrol_new tert_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016337 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16338 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016339 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16340 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016341 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16342 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016343 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16344 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016345 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16346 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016347 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16348 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016349 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16350 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016351 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16352 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016353 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
16354 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016355 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16356 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016357 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16358 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016359 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16360 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016361 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16362 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016363 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16364 msm_routing_put_port_mixer),
16365};
16366
16367static const struct snd_kcontrol_new sec_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016368 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16369 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016370 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16371 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016372 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16373 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016374 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16375 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016376 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16377 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016378 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16379 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016380 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16381 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016382 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16383 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016384 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
16385 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016386 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16387 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016388 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16389 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016390 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16391 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016392 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16393 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016394 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
16395 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016396 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16397 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016398 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16399 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016400 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16401 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080016402 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16403 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016404};
16405
16406static const struct snd_kcontrol_new lsm1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016407 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16408 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016409 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16410 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016411 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16412 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016413 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16414 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016415 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16416 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016417 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16418 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016419 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16420 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016421 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16422 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016423 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16424 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016425 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16426 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016427 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16428 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016429 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16430 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016431 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16432 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016433 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16434 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016435 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16436 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016437 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16438 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016439 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16440 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16441 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16442 msm_routing_put_listen_mixer),
16443 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16444 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16445 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16446 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016447 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16448 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16449 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16450 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016451 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16452 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16453 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16454 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016455};
16456
16457static const struct snd_kcontrol_new lsm2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016458 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16459 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016460 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16461 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016462 SOC_DOUBLE_EXT("SLIMBUS_1_TX",
16463 SND_SOC_NOPM,
16464 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016465 MSM_FRONTEND_DAI_LSM2, 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_3_TX", SND_SOC_NOPM,
16468 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016469 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16470 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016471 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16472 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016473 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16474 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016475 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16476 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016477 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16478 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016479 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16480 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016481 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16482 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016483 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16484 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016485 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16486 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016487 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16488 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016489 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16490 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016491 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16492 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16493 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16494 msm_routing_put_listen_mixer),
16495 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16496 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16497 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16498 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016499 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16500 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16501 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16502 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016503 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16504 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16505 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16506 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016507};
16508
16509static const struct snd_kcontrol_new lsm3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016510 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16511 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016512 MSM_FRONTEND_DAI_LSM3, 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_1_TX", SND_SOC_NOPM,
16515 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016516 MSM_FRONTEND_DAI_LSM3, 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_3_TX", SND_SOC_NOPM,
16519 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016520 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16521 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016522 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16523 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016524 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16525 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016526 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16527 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016528 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16529 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016530 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16531 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016532 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16533 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016534 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16535 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016536 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16537 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016538 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16539 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016540 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16541 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016542 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16543 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16544 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16545 msm_routing_put_listen_mixer),
16546 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16547 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16548 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16549 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016550 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16551 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16552 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16553 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016554 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16555 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16556 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16557 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016558};
16559
16560static const struct snd_kcontrol_new lsm4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016561 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16562 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016563 MSM_FRONTEND_DAI_LSM4, 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_1_TX", SND_SOC_NOPM,
16566 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016567 MSM_FRONTEND_DAI_LSM4, 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_3_TX", SND_SOC_NOPM,
16570 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016571 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16572 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016573 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16574 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016575 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16576 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016577 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16578 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016579 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16580 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016581 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16582 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016583 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16584 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016585 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16586 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016587 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16588 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016589 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16590 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016591 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16592 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016593 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16594 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16595 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16596 msm_routing_put_listen_mixer),
16597 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16598 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16599 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16600 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016601 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16602 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16603 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16604 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016605 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16606 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16607 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16608 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016609};
16610
16611static const struct snd_kcontrol_new lsm5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016612 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16613 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016614 MSM_FRONTEND_DAI_LSM5, 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_1_TX", SND_SOC_NOPM,
16617 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016618 MSM_FRONTEND_DAI_LSM5, 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_3_TX", SND_SOC_NOPM,
16621 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016622 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16623 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016624 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16625 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016626 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16627 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016628 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16629 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016630 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16631 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016632 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16633 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016634 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16635 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016636 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16637 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016638 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16639 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016640 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16641 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016642 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16643 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016644 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16645 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16646 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16647 msm_routing_put_listen_mixer),
16648 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16649 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16650 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16651 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016652 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16653 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16654 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16655 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016656 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16657 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16658 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16659 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016660};
16661
16662static const struct snd_kcontrol_new lsm6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016663 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16664 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016665 MSM_FRONTEND_DAI_LSM6, 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_1_TX", SND_SOC_NOPM,
16668 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016669 MSM_FRONTEND_DAI_LSM6, 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_3_TX", SND_SOC_NOPM,
16672 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016673 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16674 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016675 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16676 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016677 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16678 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016679 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16680 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016681 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16682 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016683 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16684 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016685 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16686 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016687 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16688 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016689 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16690 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016691 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16692 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016693 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16694 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016695 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16696 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16697 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16698 msm_routing_put_listen_mixer),
16699 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16700 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16701 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16702 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016703 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16704 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16705 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16706 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016707 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16708 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16709 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16710 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016711};
16712
16713static const struct snd_kcontrol_new lsm7_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016714 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16715 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016716 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16717 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016718 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16719 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016720 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16721 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016722 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16723 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016724 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16725 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016726 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16727 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016728 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16729 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016730 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16731 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016732 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16733 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016734 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16735 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016736 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16737 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016738 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16739 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016740 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16741 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016742 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16743 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016744 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16745 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016746 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16747 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16748 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16749 msm_routing_put_listen_mixer),
16750 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16751 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16752 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16753 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016754 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16755 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16756 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16757 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016758 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16759 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16760 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16761 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016762};
16763
16764static const struct snd_kcontrol_new lsm8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016765 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16766 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016767 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16768 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016769 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16770 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016771 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16772 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016773 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16774 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016775 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16776 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016777 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16778 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016779 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16780 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016781 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16782 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016783 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16784 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016785 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16786 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016787 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16788 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016789 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16790 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016791 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16792 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016793 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16794 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016795 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16796 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016797 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16798 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16799 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16800 msm_routing_put_listen_mixer),
16801 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16802 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16803 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16804 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016805 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16806 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16807 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16808 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016809 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16810 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16811 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16812 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016813};
16814
16815static const struct snd_kcontrol_new slim_fm_switch_mixer_controls =
16816 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16817 0, 1, 0, msm_routing_get_switch_mixer,
16818 msm_routing_put_switch_mixer);
16819
16820static const struct snd_kcontrol_new slim1_fm_switch_mixer_controls =
16821 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16822 0, 1, 0, msm_routing_get_switch_mixer,
16823 msm_routing_put_switch_mixer);
16824
16825static const struct snd_kcontrol_new slim3_fm_switch_mixer_controls =
16826 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16827 0, 1, 0, msm_routing_get_switch_mixer,
16828 msm_routing_put_switch_mixer);
16829
16830static const struct snd_kcontrol_new slim4_fm_switch_mixer_controls =
16831 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16832 0, 1, 0, msm_routing_get_switch_mixer,
16833 msm_routing_put_switch_mixer);
16834
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053016835static const struct snd_kcontrol_new cdc_dma_wsa_switch_mixer_controls =
16836 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16837 0, 1, 0, msm_routing_get_switch_mixer,
16838 msm_routing_put_switch_mixer);
16839
16840static const struct snd_kcontrol_new cdc_dma_rx_switch_mixer_controls =
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053016841 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16842 0, 1, 0, msm_routing_get_switch_mixer,
16843 msm_routing_put_switch_mixer);
16844
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016845static const struct snd_kcontrol_new slim6_fm_switch_mixer_controls =
16846 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16847 0, 1, 0, msm_routing_get_switch_mixer,
16848 msm_routing_put_switch_mixer);
16849
16850static const struct snd_kcontrol_new pcm_rx_switch_mixer_controls =
16851 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16852 0, 1, 0, msm_routing_get_fm_pcmrx_switch_mixer,
16853 msm_routing_put_fm_pcmrx_switch_mixer);
16854
16855static const struct snd_kcontrol_new int0_mi2s_rx_switch_mixer_controls =
16856 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16857 0, 1, 0, msm_routing_get_int0_mi2s_switch_mixer,
16858 msm_routing_put_int0_mi2s_switch_mixer);
16859
16860static const struct snd_kcontrol_new int4_mi2s_rx_switch_mixer_controls =
16861 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16862 0, 1, 0, msm_routing_get_int4_mi2s_switch_mixer,
16863 msm_routing_put_int4_mi2s_switch_mixer);
16864
16865static const struct snd_kcontrol_new pri_mi2s_rx_switch_mixer_controls =
16866 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16867 0, 1, 0, msm_routing_get_pri_mi2s_switch_mixer,
16868 msm_routing_put_pri_mi2s_switch_mixer);
16869
16870static const struct snd_kcontrol_new sec_mi2s_rx_switch_mixer_controls =
16871 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16872 0, 1, 0, msm_routing_get_sec_mi2s_switch_mixer,
16873 msm_routing_put_sec_mi2s_switch_mixer);
16874
16875static const struct snd_kcontrol_new tert_mi2s_rx_switch_mixer_controls =
16876 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16877 0, 1, 0, msm_routing_get_tert_mi2s_switch_mixer,
16878 msm_routing_put_tert_mi2s_switch_mixer);
16879
16880static const struct snd_kcontrol_new quat_mi2s_rx_switch_mixer_controls =
16881 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16882 0, 1, 0, msm_routing_get_quat_mi2s_switch_mixer,
16883 msm_routing_put_quat_mi2s_switch_mixer);
16884
Rohit Kumara5077932017-09-10 22:05:05 +053016885static const struct snd_kcontrol_new quin_mi2s_rx_switch_mixer_controls =
16886 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16887 0, 1, 0, msm_routing_get_quin_mi2s_switch_mixer,
16888 msm_routing_put_quin_mi2s_switch_mixer);
16889
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016890static const struct snd_kcontrol_new hfp_pri_aux_switch_mixer_controls =
16891 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16892 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16893 msm_routing_put_hfp_switch_mixer);
16894
16895static const struct snd_kcontrol_new hfp_aux_switch_mixer_controls =
16896 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16897 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16898 msm_routing_put_hfp_switch_mixer);
16899
16900static const struct snd_kcontrol_new hfp_int_switch_mixer_controls =
16901 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16902 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16903 msm_routing_put_hfp_switch_mixer);
16904
16905static const struct snd_kcontrol_new hfp_slim7_switch_mixer_controls =
16906 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16907 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16908 msm_routing_put_hfp_switch_mixer);
16909
16910static const struct snd_kcontrol_new usb_switch_mixer_controls =
16911 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16912 0, 1, 0, msm_routing_get_usb_switch_mixer,
16913 msm_routing_put_usb_switch_mixer);
16914
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080016915static const struct snd_kcontrol_new a2dp_slim7_switch_mixer_controls =
16916 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16917 0, 1, 0, msm_routing_a2dp_switch_mixer_get,
16918 msm_routing_a2dp_switch_mixer_put);
16919
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016920static const struct soc_enum lsm_port_enum =
16921 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_port_text), lsm_port_text);
16922
16923static const char * const lsm_func_text[] = {
16924 "None", "AUDIO", "BEACON", "ULTRASOUND", "SWAUDIO",
16925};
16926static const struct soc_enum lsm_func_enum =
16927 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_func_text), lsm_func_text);
16928
16929static const struct snd_kcontrol_new lsm_controls[] = {
16930 /* kcontrol of lsm_function */
16931 SOC_ENUM_EXT(SLIMBUS_0_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16932 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16933 SOC_ENUM_EXT(SLIMBUS_1_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16934 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16935 SOC_ENUM_EXT(SLIMBUS_2_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16936 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16937 SOC_ENUM_EXT(SLIMBUS_3_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16938 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16939 SOC_ENUM_EXT(SLIMBUS_4_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16940 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16941 SOC_ENUM_EXT(SLIMBUS_5_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16942 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16943 SOC_ENUM_EXT(TERT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16944 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16945 SOC_ENUM_EXT(QUAT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16946 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16947 SOC_ENUM_EXT(INT3_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16948 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016949 SOC_ENUM_EXT(TX_CDC_DMA_TX_3_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16950 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016951 SOC_ENUM_EXT(QUIN_TDM_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16952 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016953 /* kcontrol of lsm_port */
16954 SOC_ENUM_EXT("LSM1 Port", lsm_port_enum,
16955 msm_routing_lsm_port_get,
16956 msm_routing_lsm_port_put),
16957 SOC_ENUM_EXT("LSM2 Port", lsm_port_enum,
16958 msm_routing_lsm_port_get,
16959 msm_routing_lsm_port_put),
16960 SOC_ENUM_EXT("LSM3 Port", lsm_port_enum,
16961 msm_routing_lsm_port_get,
16962 msm_routing_lsm_port_put),
16963 SOC_ENUM_EXT("LSM4 Port", lsm_port_enum,
16964 msm_routing_lsm_port_get,
16965 msm_routing_lsm_port_put),
16966 SOC_ENUM_EXT("LSM5 Port", lsm_port_enum,
16967 msm_routing_lsm_port_get,
16968 msm_routing_lsm_port_put),
16969 SOC_ENUM_EXT("LSM6 Port", lsm_port_enum,
16970 msm_routing_lsm_port_get,
16971 msm_routing_lsm_port_put),
16972 SOC_ENUM_EXT("LSM7 Port", lsm_port_enum,
16973 msm_routing_lsm_port_get,
16974 msm_routing_lsm_port_put),
16975 SOC_ENUM_EXT("LSM8 Port", lsm_port_enum,
16976 msm_routing_lsm_port_get,
16977 msm_routing_lsm_port_put),
16978};
16979
16980static const char * const aanc_slim_0_rx_text[] = {
16981 "ZERO", "SLIMBUS_0_TX", "SLIMBUS_1_TX", "SLIMBUS_2_TX", "SLIMBUS_3_TX",
16982 "SLIMBUS_4_TX", "SLIMBUS_5_TX", "SLIMBUS_6_TX"
16983};
16984
16985static const struct soc_enum aanc_slim_0_rx_enum =
16986 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(aanc_slim_0_rx_text),
16987 aanc_slim_0_rx_text);
16988
16989static const struct snd_kcontrol_new aanc_slim_0_rx_mux[] = {
16990 SOC_ENUM_EXT("AANC_SLIM_0_RX MUX", aanc_slim_0_rx_enum,
16991 msm_routing_slim_0_rx_aanc_mux_get,
16992 msm_routing_slim_0_rx_aanc_mux_put)
16993};
16994
Sudheer Papothic07b37a2018-05-04 05:56:47 +053016995static int msm_routing_aanc_noise_level_get(struct snd_kcontrol *kcontrol,
16996 struct snd_ctl_elem_value *ucontrol)
16997{
16998 ucontrol->value.integer.value[0] = aanc_level;
16999
17000 return 0;
17001}
17002
17003static int msm_routing_aanc_noise_level_put(struct snd_kcontrol *kcontrol,
17004 struct snd_ctl_elem_value *ucontrol)
17005{
17006 int ret = 0;
17007
17008 mutex_lock(&routing_lock);
17009 aanc_level = ucontrol->value.integer.value[0];
17010 pr_debug("%s: value: %ld\n",
17011 __func__, ucontrol->value.integer.value[0]);
17012 ret = afe_set_aanc_noise_level(aanc_level);
17013 mutex_unlock(&routing_lock);
17014
17015 return ret;
17016}
17017
17018static const struct snd_kcontrol_new aanc_noise_level[] = {
17019 SOC_SINGLE_EXT("AANC Noise Level", SND_SOC_NOPM, 0, 255,
17020 0, msm_routing_aanc_noise_level_get, msm_routing_aanc_noise_level_put)
17021};
17022
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017023static int msm_routing_get_stereo_to_custom_stereo_control(
17024 struct snd_kcontrol *kcontrol,
17025 struct snd_ctl_elem_value *ucontrol)
17026{
17027 ucontrol->value.integer.value[0] = is_custom_stereo_on;
17028 return 0;
17029}
17030
17031static int msm_routing_put_stereo_to_custom_stereo_control(
17032 struct snd_kcontrol *kcontrol,
17033 struct snd_ctl_elem_value *ucontrol)
17034{
17035 int flag = 0, i = 0, rc = 0, idx = 0;
17036 int be_index = 0, port_id, topo_id;
17037 unsigned int session_id = 0;
17038 uint16_t op_FL_ip_FL_weight = 0;
17039 uint16_t op_FL_ip_FR_weight = 0;
17040 uint16_t op_FR_ip_FL_weight = 0;
17041 uint16_t op_FR_ip_FR_weight = 0;
17042
17043 flag = ucontrol->value.integer.value[0];
17044 pr_debug("%s E flag %d\n", __func__, flag);
17045
17046 if ((is_custom_stereo_on && flag) || (!is_custom_stereo_on && !flag)) {
17047 pr_err("%s: is_custom_stereo_on %d, flag %d\n",
17048 __func__, is_custom_stereo_on, flag);
17049 return 0;
17050 }
17051 is_custom_stereo_on = flag ? true : false;
17052 pr_debug("%s:is_custom_stereo_on %d\n", __func__, is_custom_stereo_on);
17053 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
17054 port_id = msm_bedais[be_index].port_id;
17055 if (!msm_bedais[be_index].active)
17056 continue;
17057 if ((port_id != SLIMBUS_0_RX) &&
17058 (port_id != RT_PROXY_PORT_001_RX) &&
17059 (port_id != AFE_PORT_ID_PRIMARY_MI2S_RX) &&
17060 (port_id != AFE_PORT_ID_INT4_MI2S_RX))
17061 continue;
17062
17063 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
17064 MSM_FRONTEND_DAI_MM_SIZE) {
17065 if (fe_dai_map[i][SESSION_TYPE_RX].perf_mode !=
17066 LEGACY_PCM_MODE)
17067 goto skip_send_custom_stereo;
17068 session_id =
17069 fe_dai_map[i][SESSION_TYPE_RX].strm_id;
17070 if (is_custom_stereo_on) {
17071 op_FL_ip_FL_weight =
17072 Q14_GAIN_ZERO_POINT_FIVE;
17073 op_FL_ip_FR_weight =
17074 Q14_GAIN_ZERO_POINT_FIVE;
17075 op_FR_ip_FL_weight =
17076 Q14_GAIN_ZERO_POINT_FIVE;
17077 op_FR_ip_FR_weight =
17078 Q14_GAIN_ZERO_POINT_FIVE;
17079 } else {
17080 op_FL_ip_FL_weight = Q14_GAIN_UNITY;
17081 op_FL_ip_FR_weight = 0;
17082 op_FR_ip_FL_weight = 0;
17083 op_FR_ip_FR_weight = Q14_GAIN_UNITY;
17084 }
17085 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
17086 unsigned long copp =
17087 session_copp_map[i]
17088 [SESSION_TYPE_RX][be_index];
17089 if (!test_bit(idx, &copp))
17090 goto skip_send_custom_stereo;
17091 topo_id = adm_get_topology_for_port_copp_idx(
17092 msm_bedais[be_index].port_id, idx);
17093 if (topo_id < 0)
17094 pr_debug("%s:Err:custom stereo topo %d",
17095 __func__, topo_id);
17096 pr_debug("idx %d\n", idx);
17097 if (topo_id == DS2_ADM_COPP_TOPOLOGY_ID)
17098 rc = msm_ds2_dap_set_custom_stereo_onoff
17099 (msm_bedais[be_index].port_id,
17100 idx, is_custom_stereo_on);
17101 else if (topo_id == DOLBY_ADM_COPP_TOPOLOGY_ID)
17102 rc = dolby_dap_set_custom_stereo_onoff(
17103 msm_bedais[be_index].port_id,
17104 idx, is_custom_stereo_on);
17105 else
17106 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd
17107 (msm_bedais[be_index].port_id,
17108 idx, session_id,
17109 op_FL_ip_FL_weight,
17110 op_FL_ip_FR_weight,
17111 op_FR_ip_FL_weight,
17112 op_FR_ip_FR_weight);
17113 if (rc < 0)
17114skip_send_custom_stereo:
17115 pr_err("%s: err setting custom stereo\n",
17116 __func__);
17117 }
17118
17119 }
17120 }
17121 return 0;
17122}
17123
17124static const struct snd_kcontrol_new stereo_to_custom_stereo_controls[] = {
17125 SOC_SINGLE_EXT("Set Custom Stereo OnOff", SND_SOC_NOPM, 0,
17126 1, 0, msm_routing_get_stereo_to_custom_stereo_control,
17127 msm_routing_put_stereo_to_custom_stereo_control),
17128};
17129
17130static int msm_routing_get_app_type_cfg_control(struct snd_kcontrol *kcontrol,
17131 struct snd_ctl_elem_value *ucontrol)
17132{
17133 return 0;
17134}
17135
17136static int msm_routing_put_app_type_cfg_control(struct snd_kcontrol *kcontrol,
17137 struct snd_ctl_elem_value *ucontrol)
17138{
17139 int i = 0, j;
17140 int num_app_types = ucontrol->value.integer.value[i++];
17141
17142 pr_debug("%s\n", __func__);
17143
17144 memset(app_type_cfg, 0, MAX_APP_TYPES*
17145 sizeof(struct msm_pcm_routing_app_type_data));
17146 if (num_app_types > MAX_APP_TYPES) {
17147 pr_err("%s: number of app types exceed the max supported\n",
17148 __func__);
17149 return -EINVAL;
17150 }
17151 for (j = 0; j < num_app_types; j++) {
17152 app_type_cfg[j].app_type =
17153 ucontrol->value.integer.value[i++];
17154 app_type_cfg[j].sample_rate =
17155 ucontrol->value.integer.value[i++];
17156 app_type_cfg[j].bit_width =
17157 ucontrol->value.integer.value[i++];
17158 }
17159
17160 return 0;
17161}
17162
17163static int msm_routing_put_app_type_gain_control(struct snd_kcontrol *kcontrol,
17164 struct snd_ctl_elem_value *ucontrol)
17165{
17166 int j, fe_id, be_id, port_type;
17167 int ret = 0;
17168 unsigned long copp;
17169 struct msm_pcm_routing_bdai_data *bedai;
17170 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
17171 SESSION_TYPE_RX;
17172 int app_type = ucontrol->value.integer.value[1];
17173 int gain = (ucontrol->value.integer.value[2] +
17174 ucontrol->value.integer.value[3])/2;
17175
17176 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
17177 MSM_AFE_PORT_TYPE_TX;
17178
17179 mutex_lock(&routing_lock);
17180 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
17181 if (is_be_dai_extproc(be_id))
17182 continue;
17183
17184 bedai = &msm_bedais[be_id];
17185 if (afe_get_port_type(bedai->port_id) != port_type)
17186 continue;
17187
17188 if (!bedai->active)
17189 continue;
17190
17191 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
17192 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
17193 continue;
17194
17195 if (app_type !=
17196 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
17197 continue;
17198
17199 copp = session_copp_map[fe_id][dir][be_id];
17200 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
17201 if (!test_bit(j, &copp))
17202 continue;
17203 ret |= adm_set_volume(bedai->port_id, j, gain);
17204 }
17205 }
17206 }
17207 mutex_unlock(&routing_lock);
17208 return ret ? -EINVAL : 0;
17209}
17210
17211static const struct snd_kcontrol_new app_type_cfg_controls[] = {
17212 SOC_SINGLE_MULTI_EXT("App Type Config", SND_SOC_NOPM, 0,
17213 0xFFFFFFFF, 0, 128, msm_routing_get_app_type_cfg_control,
17214 msm_routing_put_app_type_cfg_control),
17215 SOC_SINGLE_MULTI_EXT("App Type Gain", SND_SOC_NOPM, 0,
17216 0x2000, 0, 4, NULL, msm_routing_put_app_type_gain_control)
17217};
17218
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017219static int msm_routing_put_module_cfg_control(struct snd_kcontrol *kcontrol,
17220 struct snd_ctl_elem_value *ucontrol)
17221{
17222 int copp_idx, fe_id, be_id, port_type;
17223 int ret = 0;
17224 unsigned long copp;
17225 struct msm_pcm_routing_bdai_data *bedai;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017226 u8 *packed_params = NULL;
17227 struct param_hdr_v3 param_hdr;
17228 u32 packed_param_size = (sizeof(struct param_hdr_v3) +
17229 sizeof(uint32_t));
17230
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017231 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
17232 SESSION_TYPE_RX;
17233 int app_type = ucontrol->value.integer.value[1];
17234 int module_id = ucontrol->value.integer.value[2];
17235 int instance_id = ucontrol->value.integer.value[3];
17236 int param_id = ucontrol->value.integer.value[4];
17237 int param_value = ucontrol->value.integer.value[5];
17238
17239 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
17240 MSM_AFE_PORT_TYPE_TX;
17241 pr_debug("%s app_type:%d mod_id:%d instance_id:%d param_id:%d value:%d\n",
17242 __func__, app_type, module_id,
17243 instance_id, param_id, param_value);
17244
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017245 packed_params = kzalloc(packed_param_size, GFP_KERNEL);
17246 if (!packed_params)
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017247 return -ENOMEM;
17248
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017249 memset(&param_hdr, 0, sizeof(param_hdr));
17250 param_hdr.module_id = module_id;
17251 param_hdr.instance_id = instance_id;
17252 param_hdr.param_id = param_id;
17253 param_hdr.param_size = sizeof(uint32_t);
17254
17255 packed_param_size = 0;
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017256
17257 mutex_lock(&routing_lock);
17258 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
17259 if (is_be_dai_extproc(be_id))
17260 continue;
17261
17262 bedai = &msm_bedais[be_id];
17263 if (afe_get_port_type(bedai->port_id) != port_type)
17264 continue;
17265
17266 if (!bedai->active)
17267 continue;
17268
17269 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
17270 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
17271 continue;
17272
17273 if (app_type !=
17274 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
17275 continue;
17276
17277 copp = session_copp_map[fe_id][dir][be_id];
17278 for (copp_idx = 0; copp_idx < MAX_COPPS_PER_PORT;
17279 copp_idx++) {
17280 if (!test_bit(copp_idx, &copp))
17281 continue;
17282
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017283 ret = q6common_pack_pp_params(packed_params,
17284 &param_hdr,
17285 (u8 *) &param_value,
17286 &packed_param_size);
17287 if (ret) {
17288 pr_err("%s: Failed to pack params, error %d\n",
17289 __func__, ret);
17290 goto done;
17291 }
17292
17293 ret = adm_set_pp_params(bedai->port_id,
17294 copp_idx, NULL,
17295 packed_params,
17296 packed_param_size);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017297 if (ret) {
17298 pr_err("%s: Setting param failed with err=%d\n",
17299 __func__, ret);
17300 ret = -EINVAL;
17301 goto done;
17302 }
17303 }
17304 }
17305 }
17306done:
17307 mutex_unlock(&routing_lock);
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017308 kfree(packed_params);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017309 return ret;
17310}
17311
17312static const struct snd_kcontrol_new module_cfg_controls[] = {
17313 SOC_SINGLE_MULTI_EXT("Audio Effect", SND_SOC_NOPM, 0,
17314 0x2000, 0, 6, NULL, msm_routing_put_module_cfg_control)
17315};
17316
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017317static int msm_routing_get_lsm_app_type_cfg_control(
17318 struct snd_kcontrol *kcontrol,
17319 struct snd_ctl_elem_value *ucontrol)
17320{
Meng Wangadbca4f2018-10-29 14:30:13 +080017321 int shift = ((struct soc_multi_mixer_control *)
17322 kcontrol->private_value)->shift;
17323 int i = 0, j = 0;
17324
17325 ucontrol->value.integer.value[i] = num_app_cfg_types;
17326
17327 for (j = 0; j < num_app_cfg_types; ++j) {
17328 ucontrol->value.integer.value[++i] =
17329 lsm_app_type_cfg[j].app_type;
17330 ucontrol->value.integer.value[++i] =
17331 lsm_app_type_cfg[j].sample_rate;
17332 ucontrol->value.integer.value[++i] =
17333 lsm_app_type_cfg[j].bit_width;
17334 if (shift == 1)
17335 ucontrol->value.integer.value[++i] =
17336 lsm_app_type_cfg[j].num_out_channels;
17337 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017338 return 0;
17339}
17340
17341static int msm_routing_put_lsm_app_type_cfg_control(
17342 struct snd_kcontrol *kcontrol,
17343 struct snd_ctl_elem_value *ucontrol)
17344{
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017345 int shift = ((struct soc_multi_mixer_control *)
17346 kcontrol->private_value)->shift;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017347 int i = 0, j;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017348
Meng Wangadbca4f2018-10-29 14:30:13 +080017349 num_app_cfg_types = ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017350 memset(lsm_app_type_cfg, 0, MAX_APP_TYPES*
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017351 sizeof(struct msm_pcm_routing_app_type_data));
17352
Meng Wangadbca4f2018-10-29 14:30:13 +080017353 if (num_app_cfg_types > MAX_APP_TYPES) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017354 pr_err("%s: number of app types exceed the max supported\n",
17355 __func__);
17356 return -EINVAL;
17357 }
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017358
Meng Wangadbca4f2018-10-29 14:30:13 +080017359 for (j = 0; j < num_app_cfg_types; j++) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017360 lsm_app_type_cfg[j].app_type =
17361 ucontrol->value.integer.value[i++];
17362 lsm_app_type_cfg[j].sample_rate =
17363 ucontrol->value.integer.value[i++];
17364 lsm_app_type_cfg[j].bit_width =
17365 ucontrol->value.integer.value[i++];
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017366 /* Shift of 1 indicates this is V2 mixer control */
17367 if (shift == 1)
17368 lsm_app_type_cfg[j].num_out_channels =
17369 ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017370 }
17371
17372 return 0;
17373}
17374
17375static const struct snd_kcontrol_new lsm_app_type_cfg_controls[] = {
17376 SOC_SINGLE_MULTI_EXT("Listen App Type Config", SND_SOC_NOPM, 0,
17377 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
17378 msm_routing_put_lsm_app_type_cfg_control),
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017379 SOC_SINGLE_MULTI_EXT("Listen App Type Config V2", SND_SOC_NOPM, 1,
17380 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
17381 msm_routing_put_lsm_app_type_cfg_control),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017382};
17383
17384static int msm_routing_get_use_ds1_or_ds2_control(
17385 struct snd_kcontrol *kcontrol,
17386 struct snd_ctl_elem_value *ucontrol)
17387{
17388 ucontrol->value.integer.value[0] = is_ds2_on;
17389 return 0;
17390}
17391
17392static int msm_routing_put_use_ds1_or_ds2_control(
17393 struct snd_kcontrol *kcontrol,
17394 struct snd_ctl_elem_value *ucontrol)
17395{
17396 is_ds2_on = ucontrol->value.integer.value[0];
17397 return 0;
17398}
17399
17400static const struct snd_kcontrol_new use_ds1_or_ds2_controls[] = {
17401 SOC_SINGLE_EXT("DS2 OnOff", SND_SOC_NOPM, 0,
17402 1, 0, msm_routing_get_use_ds1_or_ds2_control,
17403 msm_routing_put_use_ds1_or_ds2_control),
17404};
17405
17406int msm_routing_get_rms_value_control(struct snd_kcontrol *kcontrol,
17407 struct snd_ctl_elem_value *ucontrol) {
17408 int rc = 0;
17409 int be_idx = 0;
17410 char *param_value;
17411 int *update_param_value;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017412 uint32_t param_size = (RMS_PAYLOAD_LEN + 1) * sizeof(uint32_t);
17413 struct param_hdr_v3 param_hdr;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017414
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017415 param_value = kzalloc(param_size, GFP_KERNEL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017416 if (!param_value)
17417 return -ENOMEM;
17418
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017419 memset(&param_hdr, 0, sizeof(param_hdr));
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017420 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++)
17421 if (msm_bedais[be_idx].port_id == SLIMBUS_0_TX)
17422 break;
17423 if ((be_idx < MSM_BACKEND_DAI_MAX) && msm_bedais[be_idx].active) {
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017424 param_hdr.module_id = RMS_MODULEID_APPI_PASSTHRU;
17425 param_hdr.instance_id = INSTANCE_ID_0;
17426 param_hdr.param_id = RMS_PARAM_FIRST_SAMPLE;
17427 param_hdr.param_size = param_size;
17428 rc = adm_get_pp_params(SLIMBUS_0_TX, 0, ADM_CLIENT_ID_DEFAULT,
17429 NULL, &param_hdr, (u8 *) param_value);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017430 if (rc) {
17431 pr_err("%s: get parameters failed:%d\n", __func__, rc);
17432 kfree(param_value);
17433 return -EINVAL;
17434 }
17435 update_param_value = (int *)param_value;
17436 ucontrol->value.integer.value[0] = update_param_value[0];
17437
17438 pr_debug("%s: FROM DSP value[0] 0x%x\n",
17439 __func__, update_param_value[0]);
17440 }
17441 kfree(param_value);
17442 return 0;
17443}
17444
17445static int msm_voc_session_id_put(struct snd_kcontrol *kcontrol,
17446 struct snd_ctl_elem_value *ucontrol)
17447{
17448 voc_session_id = ucontrol->value.integer.value[0];
17449
17450 pr_debug("%s: voc_session_id=%u\n", __func__, voc_session_id);
17451
17452 return 0;
17453}
17454
17455static int msm_voc_session_id_get(struct snd_kcontrol *kcontrol,
17456 struct snd_ctl_elem_value *ucontrol)
17457{
17458 ucontrol->value.integer.value[0] = voc_session_id;
17459
17460 return 0;
17461}
17462
17463static struct snd_kcontrol_new msm_voc_session_controls[] = {
17464 SOC_SINGLE_MULTI_EXT("Voc VSID", SND_SOC_NOPM, 0,
17465 0xFFFFFFFF, 0, 1, msm_voc_session_id_get,
17466 msm_voc_session_id_put),
17467};
17468
17469static int msm_sound_focus_info(struct snd_kcontrol *kcontrol,
17470 struct snd_ctl_elem_info *uinfo)
17471{
17472 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
17473 uinfo->count = sizeof(struct sound_focus_param);
17474
17475 return 0;
17476}
17477
17478static int msm_voice_sound_focus_put(struct snd_kcontrol *kcontrol,
17479 struct snd_ctl_elem_value *ucontrol)
17480{
17481 int ret = 0;
17482 struct sound_focus_param soundFocusData;
17483
17484 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
17485 sizeof(struct sound_focus_param));
17486 ret = voc_set_sound_focus(soundFocusData);
17487 if (ret) {
17488 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
17489 __func__, ret);
17490
17491 ret = -EINVAL;
17492 }
17493
17494 return ret;
17495}
17496
17497static int msm_voice_sound_focus_get(struct snd_kcontrol *kcontrol,
17498 struct snd_ctl_elem_value *ucontrol)
17499{
17500 int ret = 0;
17501 struct sound_focus_param soundFocusData;
17502
17503 memset(&soundFocusData, 0, sizeof(struct sound_focus_param));
17504
17505 ret = voc_get_sound_focus(&soundFocusData);
17506 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070017507 pr_debug("%s: Error getting Sound Focus Params, err=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017508 __func__, ret);
17509
17510 ret = -EINVAL;
17511 goto done;
17512 }
17513 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
17514 sizeof(struct sound_focus_param));
17515
17516done:
17517 return ret;
17518}
17519
17520static int msm_source_tracking_info(struct snd_kcontrol *kcontrol,
17521 struct snd_ctl_elem_info *uinfo)
17522{
17523 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
17524 uinfo->count = sizeof(struct source_tracking_param);
17525
17526 return 0;
17527}
17528
17529static int msm_voice_source_tracking_get(struct snd_kcontrol *kcontrol,
17530 struct snd_ctl_elem_value *ucontrol)
17531{
Meng Wang92edfde2018-04-24 12:18:37 +080017532 int ret = 0;
17533 struct source_tracking_param sourceTrackingData;
17534
17535 memset(&sourceTrackingData, 0, sizeof(struct source_tracking_param));
17536
17537 ret = voc_get_source_tracking(&sourceTrackingData);
17538 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070017539 pr_debug("%s: Error getting Source Tracking Params, err=%d\n",
Meng Wang92edfde2018-04-24 12:18:37 +080017540 __func__, ret);
17541
17542 ret = -EINVAL;
17543 goto done;
17544 }
17545 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
17546 sizeof(struct source_tracking_param));
17547
17548done:
17549 return ret;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017550}
17551
17552static int msm_audio_get_copp_idx_from_port_id(int port_id, int session_type,
17553 int *copp_idx)
17554{
17555 int i, idx, be_idx;
17556 int ret = 0;
17557 unsigned long copp;
17558
17559 pr_debug("%s: Enter, port_id=%d\n", __func__, port_id);
17560
17561 ret = q6audio_validate_port(port_id);
17562 if (ret < 0) {
17563 pr_err("%s: port validation failed id 0x%x ret %d\n",
17564 __func__, port_id, ret);
17565
17566 ret = -EINVAL;
17567 goto done;
17568 }
17569
17570 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
17571 if (msm_bedais[be_idx].port_id == port_id)
17572 break;
17573 }
17574 if (be_idx >= MSM_BACKEND_DAI_MAX) {
17575 pr_err("%s: Invalid be id %d\n", __func__, be_idx);
17576
17577 ret = -EINVAL;
17578 goto done;
17579 }
17580
17581 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053017582 MSM_FRONTEND_DAI_MAX) {
17583 if (!(is_mm_lsm_fe_id(i) &&
17584 route_check_fe_id_adm_support(i)))
17585 continue;
17586
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017587 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
17588 copp = session_copp_map[i]
17589 [session_type][be_idx];
17590 if (test_bit(idx, &copp))
17591 break;
17592 }
17593 if (idx >= MAX_COPPS_PER_PORT)
17594 continue;
17595 else
17596 break;
17597 }
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053017598 if (i >= MSM_FRONTEND_DAI_MAX) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070017599 pr_debug("%s: Invalid FE, exiting\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017600
17601 ret = -EINVAL;
17602 goto done;
17603 }
17604 *copp_idx = idx;
17605 pr_debug("%s: copp_idx=%d\n", __func__, *copp_idx);
17606
17607done:
17608 return ret;
17609}
17610
17611static int msm_audio_sound_focus_derive_port_id(struct snd_kcontrol *kcontrol,
17612 const char *prefix, int *port_id)
17613{
17614 int ret = 0;
17615
17616 pr_debug("%s: Enter, prefix:%s\n", __func__, prefix);
17617
17618 /*
17619 * Mixer control name will be like "Sound Focus Audio Tx SLIMBUS_0"
17620 * where the prefix is "Sound Focus Audio Tx ". Skip the prefix
17621 * and compare the string with the backend name to derive the port id.
17622 */
17623 if (!strcmp(kcontrol->id.name + strlen(prefix),
17624 "SLIMBUS_0")) {
17625 *port_id = SLIMBUS_0_TX;
17626 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17627 "TERT_MI2S")) {
17628 *port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
17629 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17630 "INT3_MI2S")) {
17631 *port_id = AFE_PORT_ID_INT3_MI2S_TX;
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053017632 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17633 "VA_CDC_DMA_TX_0")) {
17634 *port_id = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053017635 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17636 "TX_CDC_DMA_TX_3")) {
17637 *port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017638 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17639 "QUIN_TDM_TX_0")) {
17640 *port_id = AFE_PORT_ID_QUINARY_TDM_TX;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017641 } else {
17642 pr_err("%s: mixer ctl name=%s, could not derive valid port id\n",
17643 __func__, kcontrol->id.name);
17644
17645 ret = -EINVAL;
17646 goto done;
17647 }
17648 pr_debug("%s: mixer ctl name=%s, derived port_id=%d\n",
17649 __func__, kcontrol->id.name, *port_id);
17650
17651done:
17652 return ret;
17653}
17654
17655static int msm_audio_sound_focus_put(struct snd_kcontrol *kcontrol,
17656 struct snd_ctl_elem_value *ucontrol)
17657{
17658 int ret = 0;
17659 struct sound_focus_param soundFocusData;
17660 int port_id, copp_idx;
17661
17662 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17663 "Sound Focus Audio Tx ", &port_id);
17664 if (ret != 0) {
17665 pr_err("%s: Error in deriving port id, err=%d\n",
17666 __func__, ret);
17667
17668 ret = -EINVAL;
17669 goto done;
17670 }
17671
17672 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17673 &copp_idx);
17674 if (ret) {
17675 pr_err("%s: Could not get copp idx for port_id=%d\n",
17676 __func__, port_id);
17677
17678 ret = -EINVAL;
17679 goto done;
17680 }
17681
17682 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
17683 sizeof(struct sound_focus_param));
17684
17685 ret = adm_set_sound_focus(port_id, copp_idx, soundFocusData);
17686 if (ret) {
17687 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
17688 __func__, ret);
17689
17690 ret = -EINVAL;
17691 goto done;
17692 }
17693
17694done:
17695 return ret;
17696}
17697
17698static int msm_audio_sound_focus_get(struct snd_kcontrol *kcontrol,
17699 struct snd_ctl_elem_value *ucontrol)
17700{
17701 int ret = 0;
17702 struct sound_focus_param soundFocusData;
17703 int port_id, copp_idx;
17704
17705 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17706 "Sound Focus Audio Tx ", &port_id);
17707 if (ret) {
17708 pr_err("%s: Error in deriving port id, err=%d\n",
17709 __func__, ret);
17710
17711 ret = -EINVAL;
17712 goto done;
17713 }
17714
17715 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17716 &copp_idx);
17717 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070017718 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017719 __func__, port_id);
17720
17721 ret = -EINVAL;
17722 goto done;
17723 }
17724
17725 ret = adm_get_sound_focus(port_id, copp_idx, &soundFocusData);
17726 if (ret) {
17727 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
17728 __func__, ret);
17729
17730 ret = -EINVAL;
17731 goto done;
17732 }
17733
17734 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
17735 sizeof(struct sound_focus_param));
17736
17737done:
17738 return ret;
17739}
17740
17741static int msm_audio_source_tracking_get(struct snd_kcontrol *kcontrol,
17742 struct snd_ctl_elem_value *ucontrol)
17743{
17744 int ret = 0;
17745 struct source_tracking_param sourceTrackingData;
17746 int port_id, copp_idx;
17747
17748 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17749 "Source Tracking Audio Tx ", &port_id);
17750 if (ret) {
17751 pr_err("%s: Error in deriving port id, err=%d\n",
17752 __func__, ret);
17753
17754 ret = -EINVAL;
17755 goto done;
17756 }
17757
17758 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17759 &copp_idx);
17760 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070017761 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017762 __func__, port_id);
17763
17764 ret = -EINVAL;
17765 goto done;
17766 }
17767
17768 ret = adm_get_source_tracking(port_id, copp_idx, &sourceTrackingData);
17769 if (ret) {
17770 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
17771 __func__, ret);
17772
17773 ret = -EINVAL;
17774 goto done;
17775 }
17776
17777 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
17778 sizeof(struct source_tracking_param));
17779
17780done:
17781 return ret;
17782}
17783
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053017784static int msm_doa_tracking_mon_info(struct snd_kcontrol *kcontrol,
17785 struct snd_ctl_elem_info *uinfo)
17786{
17787 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
17788 uinfo->count = sizeof(struct doa_tracking_mon_param);
17789
17790 return 0;
17791}
17792
17793static int msm_doa_tracking_mon_get(struct snd_kcontrol *kcontrol,
17794 struct snd_ctl_elem_value *ucontrol)
17795{
17796 int ret = 0;
17797 struct doa_tracking_mon_param doa_tracking_data;
17798 int port_id, copp_idx;
17799
17800 memset(&doa_tracking_data, 0, sizeof(struct doa_tracking_mon_param));
17801 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17802 "Doa Tracking Monitor Listen ", &port_id);
17803 if (ret) {
17804 pr_err("%s: Error in deriving port id, err=%d\n",
17805 __func__, ret);
17806 ret = -EINVAL;
17807 goto done;
17808 }
17809
17810 /*
17811 * If copp id exists for given port id, query adm to get doa data.
17812 * Else query afe for doa tracking params.
17813 * This is to support in cases where LSM directly connects to
17814 * AFE for FFNS.
17815 */
17816 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17817 &copp_idx);
17818 if (!ret)
17819 ret = adm_get_doa_tracking_mon(port_id, copp_idx,
17820 &doa_tracking_data);
17821 else
17822 ret = afe_get_doa_tracking_mon(port_id, &doa_tracking_data);
17823
17824 if (ret) {
17825 pr_err("%s: Error getting Doa Tracking Params, err=%d\n",
17826 __func__, ret);
17827 ret = -EINVAL;
17828 goto done;
17829 }
17830
17831 memcpy(ucontrol->value.bytes.data, (void *)&doa_tracking_data,
17832 sizeof(struct doa_tracking_mon_param));
17833done:
17834 return ret;
17835}
17836
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017837static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
17838 {
17839 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17840 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17841 .name = "Sound Focus Voice Tx SLIMBUS_0",
17842 .info = msm_sound_focus_info,
17843 .get = msm_voice_sound_focus_get,
17844 .put = msm_voice_sound_focus_put,
17845 },
17846 {
17847 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17848 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17849 .name = "Source Tracking Voice Tx SLIMBUS_0",
17850 .info = msm_source_tracking_info,
17851 .get = msm_voice_source_tracking_get,
17852 },
17853 {
17854 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17855 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17856 .name = "Sound Focus Audio Tx SLIMBUS_0",
17857 .info = msm_sound_focus_info,
17858 .get = msm_audio_sound_focus_get,
17859 .put = msm_audio_sound_focus_put,
17860 },
17861 {
17862 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17863 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17864 .name = "Source Tracking Audio Tx SLIMBUS_0",
17865 .info = msm_source_tracking_info,
17866 .get = msm_audio_source_tracking_get,
17867 },
17868 {
17869 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17870 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17871 .name = "Sound Focus Voice Tx TERT_MI2S",
17872 .info = msm_sound_focus_info,
17873 .get = msm_voice_sound_focus_get,
17874 .put = msm_voice_sound_focus_put,
17875 },
17876 {
17877 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17878 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17879 .name = "Source Tracking Voice Tx TERT_MI2S",
17880 .info = msm_source_tracking_info,
17881 .get = msm_voice_source_tracking_get,
17882 },
17883 {
17884 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17885 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17886 .name = "Sound Focus Audio Tx TERT_MI2S",
17887 .info = msm_sound_focus_info,
17888 .get = msm_audio_sound_focus_get,
17889 .put = msm_audio_sound_focus_put,
17890 },
17891 {
17892 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17893 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17894 .name = "Source Tracking Audio Tx TERT_MI2S",
17895 .info = msm_source_tracking_info,
17896 .get = msm_audio_source_tracking_get,
17897 },
17898 {
17899 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17900 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17901 .name = "Sound Focus Voice Tx INT3_MI2S",
17902 .info = msm_sound_focus_info,
17903 .get = msm_voice_sound_focus_get,
17904 .put = msm_voice_sound_focus_put,
17905 },
17906 {
17907 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17908 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17909 .name = "Source Tracking Voice Tx INT3_MI2S",
17910 .info = msm_source_tracking_info,
17911 .get = msm_voice_source_tracking_get,
17912 },
17913 {
17914 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17915 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17916 .name = "Sound Focus Audio Tx INT3_MI2S",
17917 .info = msm_sound_focus_info,
17918 .get = msm_audio_sound_focus_get,
17919 .put = msm_audio_sound_focus_put,
17920 },
17921 {
17922 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17923 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17924 .name = "Source Tracking Audio Tx INT3_MI2S",
17925 .info = msm_source_tracking_info,
17926 .get = msm_audio_source_tracking_get,
17927 },
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053017928 {
17929 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17930 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17931 .name = "Sound Focus Voice Tx VA_CDC_DMA_TX_0",
17932 .info = msm_sound_focus_info,
17933 .get = msm_voice_sound_focus_get,
17934 .put = msm_voice_sound_focus_put,
17935 },
17936 {
17937 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17938 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17939 .name = "Source Tracking Voice Tx VA_CDC_DMA_TX_0",
17940 .info = msm_source_tracking_info,
17941 .get = msm_voice_source_tracking_get,
17942 },
17943 {
17944 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17945 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17946 .name = "Sound Focus Audio Tx VA_CDC_DMA_TX_0",
17947 .info = msm_sound_focus_info,
17948 .get = msm_audio_sound_focus_get,
17949 .put = msm_audio_sound_focus_put,
17950 },
17951 {
17952 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17953 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17954 .name = "Source Tracking Audio Tx VA_CDC_DMA_TX_0",
17955 .info = msm_source_tracking_info,
17956 .get = msm_audio_source_tracking_get,
17957 },
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053017958 {
17959 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17960 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17961 .name = "Sound Focus Voice Tx TX_CDC_DMA_TX_3",
17962 .info = msm_sound_focus_info,
17963 .get = msm_voice_sound_focus_get,
17964 .put = msm_voice_sound_focus_put,
17965 },
17966 {
17967 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17968 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17969 .name = "Source Tracking Voice Tx TX_CDC_DMA_TX_3",
17970 .info = msm_source_tracking_info,
17971 .get = msm_voice_source_tracking_get,
17972 },
17973 {
17974 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17975 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17976 .name = "Sound Focus Audio Tx TX_CDC_DMA_TX_3",
17977 .info = msm_sound_focus_info,
17978 .get = msm_audio_sound_focus_get,
17979 .put = msm_audio_sound_focus_put,
17980 },
17981 {
17982 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17983 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17984 .name = "Source Tracking Audio Tx TX_CDC_DMA_TX_3",
17985 .info = msm_source_tracking_info,
17986 .get = msm_audio_source_tracking_get,
17987 },
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017988 {
17989 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17990 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17991 .name = "Sound Focus Voice Tx QUIN_TDM_TX_0",
17992 .info = msm_sound_focus_info,
17993 .get = msm_voice_sound_focus_get,
17994 .put = msm_voice_sound_focus_put,
17995 },
17996 {
17997 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17998 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17999 .name = "Source Tracking Voice Tx QUIN_TDM_TX_0",
18000 .info = msm_source_tracking_info,
18001 .get = msm_voice_source_tracking_get,
18002 },
18003 {
18004 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18005 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18006 .name = "Sound Focus Audio Tx QUIN_TDM_TX_0",
18007 .info = msm_sound_focus_info,
18008 .get = msm_audio_sound_focus_get,
18009 .put = msm_audio_sound_focus_put,
18010 },
18011 {
18012 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18013 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18014 .name = "Source Tracking Audio Tx QUIN_TDM_TX_0",
18015 .info = msm_source_tracking_info,
18016 .get = msm_audio_source_tracking_get,
18017 },
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053018018 {
18019 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18020 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18021 .name = "Doa Tracking Monitor Listen VA_CDC_DMA_TX_0",
18022 .info = msm_doa_tracking_mon_info,
18023 .get = msm_doa_tracking_mon_get,
18024 },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018025};
18026
18027static int spkr_prot_put_vi_lch_port(struct snd_kcontrol *kcontrol,
18028 struct snd_ctl_elem_value *ucontrol)
18029{
18030 int ret = 0;
18031 int item;
18032 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
18033
18034 pr_debug("%s item is %d\n", __func__,
18035 ucontrol->value.enumerated.item[0]);
18036 mutex_lock(&routing_lock);
18037 item = ucontrol->value.enumerated.item[0];
18038 if (item < e->items) {
18039 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
18040 __func__, e->shift_l, e->values[item]);
18041 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
18042 e->values[item] < MSM_BACKEND_DAI_MAX)
18043 /* Enable feedback TX path */
18044 ret = afe_spk_prot_feed_back_cfg(
18045 msm_bedais[e->values[item]].port_id,
18046 msm_bedais[e->shift_l].port_id, 1, 0, 1);
18047 else {
18048 pr_debug("%s values are out of range item %d\n",
18049 __func__, e->values[item]);
18050 /* Disable feedback TX path */
18051 if (e->values[item] == MSM_BACKEND_DAI_MAX)
18052 ret = afe_spk_prot_feed_back_cfg(0, 0, 0, 0, 0);
18053 else
18054 ret = -EINVAL;
18055 }
18056 } else {
18057 pr_err("%s item value is out of range item\n", __func__);
18058 ret = -EINVAL;
18059 }
18060 mutex_unlock(&routing_lock);
18061 return ret;
18062}
18063
18064static int spkr_prot_put_vi_rch_port(struct snd_kcontrol *kcontrol,
18065 struct snd_ctl_elem_value *ucontrol)
18066{
18067 int ret = 0;
18068 int item;
18069 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
18070
18071 pr_debug("%s item is %d\n", __func__,
18072 ucontrol->value.enumerated.item[0]);
18073 mutex_lock(&routing_lock);
18074 item = ucontrol->value.enumerated.item[0];
18075 if (item < e->items) {
18076 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
18077 __func__, e->shift_l, e->values[item]);
18078 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
18079 e->values[item] < MSM_BACKEND_DAI_MAX)
18080 /* Enable feedback TX path */
18081 ret = afe_spk_prot_feed_back_cfg(
18082 msm_bedais[e->values[item]].port_id,
18083 msm_bedais[e->shift_l].port_id,
18084 1, 1, 1);
18085 else {
18086 pr_debug("%s values are out of range item %d\n",
18087 __func__, e->values[item]);
18088 /* Disable feedback TX path */
18089 if (e->values[item] == MSM_BACKEND_DAI_MAX)
18090 ret = afe_spk_prot_feed_back_cfg(0,
18091 0, 0, 0, 0);
18092 else
18093 ret = -EINVAL;
18094 }
18095 } else {
18096 pr_err("%s item value is out of range item\n", __func__);
18097 ret = -EINVAL;
18098 }
18099 mutex_unlock(&routing_lock);
18100 return ret;
18101}
18102
18103static int spkr_prot_get_vi_lch_port(struct snd_kcontrol *kcontrol,
18104 struct snd_ctl_elem_value *ucontrol)
18105{
18106 pr_debug("%s\n", __func__);
18107 return 0;
18108}
18109
18110static int spkr_prot_get_vi_rch_port(struct snd_kcontrol *kcontrol,
18111 struct snd_ctl_elem_value *ucontrol)
18112{
18113 pr_debug("%s\n", __func__);
18114 ucontrol->value.enumerated.item[0] = 0;
18115 return 0;
18116}
18117
18118static const char * const slim0_rx_vi_fb_tx_lch_mux_text[] = {
18119 "ZERO", "SLIM4_TX"
18120};
18121
18122static const char * const slim0_rx_vi_fb_tx_rch_mux_text[] = {
18123 "ZERO", "SLIM4_TX"
18124};
18125
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018126static const char * const wsa_rx_0_vi_fb_tx_lch_mux_text[] = {
18127 "ZERO", "WSA_CDC_DMA_TX_0"
18128};
18129
18130static const char * const wsa_rx_0_vi_fb_tx_rch_mux_text[] = {
18131 "ZERO", "WSA_CDC_DMA_TX_0"
18132};
18133
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018134static const char * const mi2s_rx_vi_fb_tx_mux_text[] = {
18135 "ZERO", "SENARY_TX"
18136};
18137
18138static const char * const int4_mi2s_rx_vi_fb_tx_mono_mux_text[] = {
18139 "ZERO", "INT5_MI2S_TX"
18140};
18141
18142static const char * const int4_mi2s_rx_vi_fb_tx_stereo_mux_text[] = {
18143 "ZERO", "INT5_MI2S_TX"
18144};
18145
18146static const int const slim0_rx_vi_fb_tx_lch_value[] = {
18147 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
18148};
18149
18150static const int const slim0_rx_vi_fb_tx_rch_value[] = {
18151 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
18152};
18153
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018154static const int const wsa_rx_0_vi_fb_tx_lch_value[] = {
18155 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
18156};
18157
18158static const int const wsa_rx_0_vi_fb_tx_rch_value[] = {
18159 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
18160};
18161
18162
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018163static const int const mi2s_rx_vi_fb_tx_value[] = {
18164 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SENARY_MI2S_TX
18165};
18166
18167static const int const int4_mi2s_rx_vi_fb_tx_mono_ch_value[] = {
18168 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
18169};
18170
18171static const int const int4_mi2s_rx_vi_fb_tx_stereo_ch_value[] = {
18172 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
18173};
18174
18175static const struct soc_enum slim0_rx_vi_fb_lch_mux_enum =
18176 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
18177 ARRAY_SIZE(slim0_rx_vi_fb_tx_lch_mux_text),
18178 slim0_rx_vi_fb_tx_lch_mux_text, slim0_rx_vi_fb_tx_lch_value);
18179
18180static const struct soc_enum slim0_rx_vi_fb_rch_mux_enum =
18181 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
18182 ARRAY_SIZE(slim0_rx_vi_fb_tx_rch_mux_text),
18183 slim0_rx_vi_fb_tx_rch_mux_text, slim0_rx_vi_fb_tx_rch_value);
18184
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018185static const struct soc_enum wsa_rx_0_vi_fb_lch_mux_enum =
18186 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
18187 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_lch_mux_text),
18188 wsa_rx_0_vi_fb_tx_lch_mux_text, wsa_rx_0_vi_fb_tx_lch_value);
18189
18190static const struct soc_enum wsa_rx_0_vi_fb_rch_mux_enum =
18191 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
18192 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_rch_mux_text),
18193 wsa_rx_0_vi_fb_tx_rch_mux_text, wsa_rx_0_vi_fb_tx_rch_value);
18194
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018195static const struct soc_enum mi2s_rx_vi_fb_mux_enum =
18196 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_PRI_MI2S_RX, 0, 0,
18197 ARRAY_SIZE(mi2s_rx_vi_fb_tx_mux_text),
18198 mi2s_rx_vi_fb_tx_mux_text, mi2s_rx_vi_fb_tx_value);
18199
18200static const struct soc_enum int4_mi2s_rx_vi_fb_mono_ch_mux_enum =
18201 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
18202 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_mono_mux_text),
18203 int4_mi2s_rx_vi_fb_tx_mono_mux_text,
18204 int4_mi2s_rx_vi_fb_tx_mono_ch_value);
18205
18206static const struct soc_enum int4_mi2s_rx_vi_fb_stereo_ch_mux_enum =
18207 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
18208 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_stereo_mux_text),
18209 int4_mi2s_rx_vi_fb_tx_stereo_mux_text,
18210 int4_mi2s_rx_vi_fb_tx_stereo_ch_value);
18211
18212static const struct snd_kcontrol_new slim0_rx_vi_fb_lch_mux =
18213 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_LCH_MUX",
18214 slim0_rx_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
18215 spkr_prot_put_vi_lch_port);
18216
18217static const struct snd_kcontrol_new slim0_rx_vi_fb_rch_mux =
18218 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_RCH_MUX",
18219 slim0_rx_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
18220 spkr_prot_put_vi_rch_port);
18221
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018222static const struct snd_kcontrol_new wsa_rx_0_vi_fb_lch_mux =
18223 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_LCH_MUX",
18224 wsa_rx_0_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
18225 spkr_prot_put_vi_lch_port);
18226
18227static const struct snd_kcontrol_new wsa_rx_0_vi_fb_rch_mux =
18228 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_RCH_MUX",
18229 wsa_rx_0_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
18230 spkr_prot_put_vi_rch_port);
18231
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018232static const struct snd_kcontrol_new mi2s_rx_vi_fb_mux =
18233 SOC_DAPM_ENUM_EXT("PRI_MI2S_RX_VI_FB_MUX",
18234 mi2s_rx_vi_fb_mux_enum, spkr_prot_get_vi_lch_port,
18235 spkr_prot_put_vi_lch_port);
18236
18237static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_mono_ch_mux =
18238 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_MONO_CH_MUX",
18239 int4_mi2s_rx_vi_fb_mono_ch_mux_enum, spkr_prot_get_vi_lch_port,
18240 spkr_prot_put_vi_lch_port);
18241
18242static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_stereo_ch_mux =
18243 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX",
18244 int4_mi2s_rx_vi_fb_stereo_ch_mux_enum, spkr_prot_get_vi_rch_port,
18245 spkr_prot_put_vi_rch_port);
18246
18247static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
18248 /* Frontend AIF */
18249 /* Widget name equals to Front-End DAI name<Need confirmation>,
18250 * Stream name must contains substring of front-end dai name
18251 */
18252 SND_SOC_DAPM_AIF_IN("MM_DL1", "MultiMedia1 Playback", 0, 0, 0, 0),
18253 SND_SOC_DAPM_AIF_IN("MM_DL2", "MultiMedia2 Playback", 0, 0, 0, 0),
18254 SND_SOC_DAPM_AIF_IN("MM_DL3", "MultiMedia3 Playback", 0, 0, 0, 0),
18255 SND_SOC_DAPM_AIF_IN("MM_DL4", "MultiMedia4 Playback", 0, 0, 0, 0),
18256 SND_SOC_DAPM_AIF_IN("MM_DL5", "MultiMedia5 Playback", 0, 0, 0, 0),
18257 SND_SOC_DAPM_AIF_IN("MM_DL6", "MultiMedia6 Playback", 0, 0, 0, 0),
18258 SND_SOC_DAPM_AIF_IN("MM_DL7", "MultiMedia7 Playback", 0, 0, 0, 0),
18259 SND_SOC_DAPM_AIF_IN("MM_DL8", "MultiMedia8 Playback", 0, 0, 0, 0),
18260 SND_SOC_DAPM_AIF_IN("MM_DL9", "MultiMedia9 Playback", 0, 0, 0, 0),
18261 SND_SOC_DAPM_AIF_IN("MM_DL10", "MultiMedia10 Playback", 0, 0, 0, 0),
18262 SND_SOC_DAPM_AIF_IN("MM_DL11", "MultiMedia11 Playback", 0, 0, 0, 0),
18263 SND_SOC_DAPM_AIF_IN("MM_DL12", "MultiMedia12 Playback", 0, 0, 0, 0),
18264 SND_SOC_DAPM_AIF_IN("MM_DL13", "MultiMedia13 Playback", 0, 0, 0, 0),
18265 SND_SOC_DAPM_AIF_IN("MM_DL14", "MultiMedia14 Playback", 0, 0, 0, 0),
18266 SND_SOC_DAPM_AIF_IN("MM_DL15", "MultiMedia15 Playback", 0, 0, 0, 0),
18267 SND_SOC_DAPM_AIF_IN("MM_DL16", "MultiMedia16 Playback", 0, 0, 0, 0),
18268 SND_SOC_DAPM_AIF_IN("MM_DL20", "MultiMedia20 Playback", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070018269 SND_SOC_DAPM_AIF_IN("MM_DL21", "MultiMedia21 Playback", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053018270 SND_SOC_DAPM_AIF_IN("MM_DL26", "MultiMedia26 Playback", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018271 SND_SOC_DAPM_AIF_IN("VOIP_DL", "VoIP Playback", 0, 0, 0, 0),
18272 SND_SOC_DAPM_AIF_OUT("MM_UL1", "MultiMedia1 Capture", 0, 0, 0, 0),
18273 SND_SOC_DAPM_AIF_OUT("MM_UL2", "MultiMedia2 Capture", 0, 0, 0, 0),
18274 SND_SOC_DAPM_AIF_OUT("MM_UL3", "MultiMedia3 Capture", 0, 0, 0, 0),
18275 SND_SOC_DAPM_AIF_OUT("MM_UL4", "MultiMedia4 Capture", 0, 0, 0, 0),
18276 SND_SOC_DAPM_AIF_OUT("MM_UL5", "MultiMedia5 Capture", 0, 0, 0, 0),
18277 SND_SOC_DAPM_AIF_OUT("MM_UL6", "MultiMedia6 Capture", 0, 0, 0, 0),
18278 SND_SOC_DAPM_AIF_OUT("MM_UL8", "MultiMedia8 Capture", 0, 0, 0, 0),
18279 SND_SOC_DAPM_AIF_OUT("MM_UL9", "MultiMedia9 Capture", 0, 0, 0, 0),
Laxminath Kasam38070be2017-08-17 18:21:59 +053018280 SND_SOC_DAPM_AIF_OUT("MM_UL10", "MultiMedia10 Capture", 0, 0, 0, 0),
Asish Bhattacharya34504582017-08-08 12:55:01 +053018281 SND_SOC_DAPM_AIF_OUT("MM_UL16", "MultiMedia16 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018282 SND_SOC_DAPM_AIF_OUT("MM_UL17", "MultiMedia17 Capture", 0, 0, 0, 0),
18283 SND_SOC_DAPM_AIF_OUT("MM_UL18", "MultiMedia18 Capture", 0, 0, 0, 0),
18284 SND_SOC_DAPM_AIF_OUT("MM_UL19", "MultiMedia19 Capture", 0, 0, 0, 0),
18285 SND_SOC_DAPM_AIF_OUT("MM_UL20", "MultiMedia20 Capture", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070018286 SND_SOC_DAPM_AIF_OUT("MM_UL21", "MultiMedia21 Capture", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053018287 SND_SOC_DAPM_AIF_OUT("MM_UL27", "MultiMedia27 Capture", 0, 0, 0, 0),
Meng Wang5c4bab72018-04-25 10:40:01 +080018288 SND_SOC_DAPM_AIF_OUT("MM_UL28", "MultiMedia28 Capture", 0, 0, 0, 0),
18289 SND_SOC_DAPM_AIF_OUT("MM_UL29", "MultiMedia29 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018290 SND_SOC_DAPM_AIF_OUT("VOIP_UL", "VoIP Capture", 0, 0, 0, 0),
18291 SND_SOC_DAPM_AIF_IN("VOICEMMODE1_DL",
18292 "VoiceMMode1 Playback", 0, 0, 0, 0),
18293 SND_SOC_DAPM_AIF_OUT("VOICEMMODE1_UL",
18294 "VoiceMMode1 Capture", 0, 0, 0, 0),
18295 SND_SOC_DAPM_AIF_IN("VOICEMMODE2_DL",
18296 "VoiceMMode2 Playback", 0, 0, 0, 0),
18297 SND_SOC_DAPM_AIF_OUT("VOICEMMODE2_UL",
18298 "VoiceMMode2 Capture", 0, 0, 0, 0),
18299 SND_SOC_DAPM_AIF_IN("SLIM0_DL_HL", "SLIMBUS0_HOSTLESS Playback",
18300 0, 0, 0, 0),
18301 SND_SOC_DAPM_AIF_OUT("SLIM0_UL_HL", "SLIMBUS0_HOSTLESS Capture",
18302 0, 0, 0, 0),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053018303 SND_SOC_DAPM_AIF_IN("CDC_DMA_DL_HL", "CDC_DMA_HOSTLESS Playback",
18304 0, 0, 0, 0),
18305 SND_SOC_DAPM_AIF_OUT("CDC_DMA_UL_HL", "CDC_DMA_HOSTLESS Capture",
18306 0, 0, 0, 0),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053018307 SND_SOC_DAPM_AIF_OUT("TX3_CDC_DMA_UL_HL",
18308 "TX3_CDC_DMA_HOSTLESS Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018309 SND_SOC_DAPM_AIF_OUT("CPE_LSM_UL_HL", "CPE LSM capture",
18310 0, 0, 0, 0),
18311 SND_SOC_DAPM_AIF_IN("SLIM1_DL_HL", "SLIMBUS1_HOSTLESS Playback",
18312 0, 0, 0, 0),
18313 SND_SOC_DAPM_AIF_OUT("SLIM1_UL_HL", "SLIMBUS1_HOSTLESS Capture",
18314 0, 0, 0, 0),
18315 SND_SOC_DAPM_AIF_IN("SLIM3_DL_HL", "SLIMBUS3_HOSTLESS Playback",
18316 0, 0, 0, 0),
18317 SND_SOC_DAPM_AIF_OUT("SLIM3_UL_HL", "SLIMBUS3_HOSTLESS Capture",
18318 0, 0, 0, 0),
18319 SND_SOC_DAPM_AIF_IN("SLIM4_DL_HL", "SLIMBUS4_HOSTLESS Playback",
18320 0, 0, 0, 0),
18321 SND_SOC_DAPM_AIF_OUT("SLIM4_UL_HL", "SLIMBUS4_HOSTLESS Capture",
18322 0, 0, 0, 0),
18323 SND_SOC_DAPM_AIF_IN("SLIM6_DL_HL", "SLIMBUS6_HOSTLESS Playback",
18324 0, 0, 0, 0),
18325 SND_SOC_DAPM_AIF_OUT("SLIM6_UL_HL", "SLIMBUS6_HOSTLESS Capture",
18326 0, 0, 0, 0),
18327 SND_SOC_DAPM_AIF_IN("SLIM7_DL_HL", "SLIMBUS7_HOSTLESS Playback",
18328 0, 0, 0, 0),
18329 SND_SOC_DAPM_AIF_OUT("SLIM7_UL_HL", "SLIMBUS7_HOSTLESS Capture",
18330 0, 0, 0, 0),
18331 SND_SOC_DAPM_AIF_IN("SLIM8_DL_HL", "SLIMBUS8_HOSTLESS Playback",
18332 0, 0, 0, 0),
18333 SND_SOC_DAPM_AIF_OUT("SLIM8_UL_HL", "SLIMBUS8_HOSTLESS Capture",
18334 0, 0, 0, 0),
18335 SND_SOC_DAPM_AIF_IN("INTFM_DL_HL", "INT_FM_HOSTLESS Playback",
18336 0, 0, 0, 0),
18337 SND_SOC_DAPM_AIF_OUT("INTFM_UL_HL", "INT_FM_HOSTLESS Capture",
18338 0, 0, 0, 0),
18339 SND_SOC_DAPM_AIF_IN("INTHFP_DL_HL", "INT_HFP_BT_HOSTLESS Playback",
18340 0, 0, 0, 0),
18341 SND_SOC_DAPM_AIF_OUT("INTHFP_UL_HL", "INT_HFP_BT_HOSTLESS Capture",
18342 0, 0, 0, 0),
18343 SND_SOC_DAPM_AIF_IN("USBAUDIO_DL_HL", "USBAUDIO_HOSTLESS Playback",
18344 0, 0, 0, 0),
18345 SND_SOC_DAPM_AIF_OUT("USBAUDIO_UL_HL", "USBAUDIO_HOSTLESS Capture",
18346 0, 0, 0, 0),
18347 SND_SOC_DAPM_AIF_IN("HDMI_DL_HL", "HDMI_HOSTLESS Playback", 0, 0, 0, 0),
18348 SND_SOC_DAPM_AIF_IN("SEC_I2S_DL_HL", "SEC_I2S_RX_HOSTLESS Playback",
18349 0, 0, 0, 0),
18350 SND_SOC_DAPM_AIF_IN("INT0_MI2S_DL_HL",
18351 "INT0 MI2S_RX Hostless Playback",
18352 0, 0, 0, 0),
18353 SND_SOC_DAPM_AIF_IN("INT4_MI2S_DL_HL",
18354 "INT4 MI2S_RX Hostless Playback",
18355 0, 0, 0, 0),
18356 SND_SOC_DAPM_AIF_IN("PRI_MI2S_DL_HL",
18357 "Primary MI2S_RX Hostless Playback",
18358 0, 0, 0, 0),
18359 SND_SOC_DAPM_AIF_IN("SEC_MI2S_DL_HL",
18360 "Secondary MI2S_RX Hostless Playback",
18361 0, 0, 0, 0),
18362 SND_SOC_DAPM_AIF_IN("TERT_MI2S_DL_HL",
18363 "Tertiary MI2S_RX Hostless Playback",
18364 0, 0, 0, 0),
18365 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_DL_HL",
18366 "Quaternary MI2S_RX Hostless Playback",
18367 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018368 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_DL_HL",
18369 "Quinary MI2S_RX Hostless Playback",
18370 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018371
18372 SND_SOC_DAPM_AIF_IN("AUXPCM_DL_HL", "AUXPCM_HOSTLESS Playback",
18373 0, 0, 0, 0),
18374 SND_SOC_DAPM_AIF_OUT("AUXPCM_UL_HL", "AUXPCM_HOSTLESS Capture",
18375 0, 0, 0, 0),
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080018376 SND_SOC_DAPM_AIF_IN("SEC_AUXPCM_DL_HL", "SEC_AUXPCM_HOSTLESS Playback",
18377 0, 0, 0, 0),
18378 SND_SOC_DAPM_AIF_OUT("SEC_AUXPCM_UL_HL", "SEC_AUXPCM_HOSTLESS Capture",
18379 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018380 SND_SOC_DAPM_AIF_OUT("MI2S_UL_HL", "MI2S_TX_HOSTLESS Capture",
18381 0, 0, 0, 0),
18382 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_UL_HL",
18383 "INT3 MI2S_TX Hostless Capture",
18384 0, 0, 0, 0),
18385 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_UL_HL",
18386 "Tertiary MI2S_TX Hostless Capture",
18387 0, 0, 0, 0),
18388 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_UL_HL",
18389 "Secondary MI2S_TX Hostless Capture",
18390 0, 0, 0, 0),
18391 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_UL_HL",
18392 "Primary MI2S_TX Hostless Capture",
18393 0, 0, 0, 0),
18394 SND_SOC_DAPM_AIF_OUT("MI2S_DL_HL", "MI2S_RX_HOSTLESS Playback",
18395 0, 0, 0, 0),
18396 SND_SOC_DAPM_AIF_IN("DTMF_DL_HL", "DTMF_RX_HOSTLESS Playback",
18397 0, 0, 0, 0),
18398 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_UL_HL",
18399 "Quaternary MI2S_TX Hostless Capture",
18400 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018401 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_UL_HL",
18402 "Quinary MI2S_TX Hostless Capture",
18403 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018404
18405 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_0_DL_HL",
18406 "Primary TDM0 Hostless Playback",
18407 0, 0, 0, 0),
18408 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_0_UL_HL",
18409 "Primary TDM0 Hostless Capture",
18410 0, 0, 0, 0),
18411 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_1_DL_HL",
18412 "Primary TDM1 Hostless Playback",
18413 0, 0, 0, 0),
18414 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_1_UL_HL",
18415 "Primary TDM1 Hostless Capture",
18416 0, 0, 0, 0),
18417 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_2_DL_HL",
18418 "Primary TDM2 Hostless Playback",
18419 0, 0, 0, 0),
18420 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_2_UL_HL",
18421 "Primary TDM2 Hostless Capture",
18422 0, 0, 0, 0),
18423 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_3_DL_HL",
18424 "Primary TDM3 Hostless Playback",
18425 0, 0, 0, 0),
18426 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_3_UL_HL",
18427 "Primary TDM3 Hostless Capture",
18428 0, 0, 0, 0),
18429 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_4_DL_HL",
18430 "Primary TDM4 Hostless Playback",
18431 0, 0, 0, 0),
18432 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_4_UL_HL",
18433 "Primary TDM4 Hostless Capture",
18434 0, 0, 0, 0),
18435 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_5_DL_HL",
18436 "Primary TDM5 Hostless Playback",
18437 0, 0, 0, 0),
18438 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_5_UL_HL",
18439 "Primary TDM5 Hostless Capture",
18440 0, 0, 0, 0),
18441 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_6_DL_HL",
18442 "Primary TDM6 Hostless Playback",
18443 0, 0, 0, 0),
18444 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_6_UL_HL",
18445 "Primary TDM6 Hostless Capture",
18446 0, 0, 0, 0),
18447 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_7_DL_HL",
18448 "Primary TDM7 Hostless Playback",
18449 0, 0, 0, 0),
18450 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_7_UL_HL",
18451 "Primary TDM7 Hostless Capture",
18452 0, 0, 0, 0),
18453 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_0_DL_HL",
18454 "Secondary TDM0 Hostless Playback",
18455 0, 0, 0, 0),
18456 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_0_UL_HL",
18457 "Secondary TDM0 Hostless Capture",
18458 0, 0, 0, 0),
18459 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_1_DL_HL",
18460 "Secondary TDM1 Hostless Playback",
18461 0, 0, 0, 0),
18462 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_1_UL_HL",
18463 "Secondary TDM1 Hostless Capture",
18464 0, 0, 0, 0),
18465 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_2_DL_HL",
18466 "Secondary TDM2 Hostless Playback",
18467 0, 0, 0, 0),
18468 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_2_UL_HL",
18469 "Secondary TDM2 Hostless Capture",
18470 0, 0, 0, 0),
18471 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_3_DL_HL",
18472 "Secondary TDM3 Hostless Playback",
18473 0, 0, 0, 0),
18474 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_3_UL_HL",
18475 "Secondary TDM3 Hostless Capture",
18476 0, 0, 0, 0),
18477 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_4_DL_HL",
18478 "Secondary TDM4 Hostless Playback",
18479 0, 0, 0, 0),
18480 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_4_UL_HL",
18481 "Secondary TDM4 Hostless Capture",
18482 0, 0, 0, 0),
18483 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_5_DL_HL",
18484 "Secondary TDM5 Hostless Playback",
18485 0, 0, 0, 0),
18486 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_5_UL_HL",
18487 "Secondary TDM5 Hostless Capture",
18488 0, 0, 0, 0),
18489 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_6_DL_HL",
18490 "Secondary TDM6 Hostless Playback",
18491 0, 0, 0, 0),
18492 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_6_UL_HL",
18493 "Secondary TDM6 Hostless Capture",
18494 0, 0, 0, 0),
18495 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_7_DL_HL",
18496 "Secondary TDM7 Hostless Playback",
18497 0, 0, 0, 0),
18498 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_7_UL_HL",
18499 "Secondary TDM7 Hostless Capture",
18500 0, 0, 0, 0),
18501 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_0_DL_HL",
18502 "Tertiary TDM0 Hostless Playback",
18503 0, 0, 0, 0),
18504 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_0_UL_HL",
18505 "Tertiary TDM0 Hostless Capture",
18506 0, 0, 0, 0),
18507 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_1_DL_HL",
18508 "Tertiary TDM1 Hostless Playback",
18509 0, 0, 0, 0),
18510 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_1_UL_HL",
18511 "Tertiary TDM1 Hostless Capture",
18512 0, 0, 0, 0),
18513 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_2_DL_HL",
18514 "Tertiary TDM2 Hostless Playback",
18515 0, 0, 0, 0),
18516 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_2_UL_HL",
18517 "Tertiary TDM2 Hostless Capture",
18518 0, 0, 0, 0),
18519 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_3_DL_HL",
18520 "Tertiary TDM3 Hostless Playback",
18521 0, 0, 0, 0),
18522 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_3_UL_HL",
18523 "Tertiary TDM3 Hostless Capture",
18524 0, 0, 0, 0),
18525 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_4_DL_HL",
18526 "Tertiary TDM4 Hostless Playback",
18527 0, 0, 0, 0),
18528 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_4_UL_HL",
18529 "Tertiary TDM4 Hostless Capture",
18530 0, 0, 0, 0),
18531 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_5_DL_HL",
18532 "Tertiary TDM5 Hostless Playback",
18533 0, 0, 0, 0),
18534 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_5_UL_HL",
18535 "Tertiary TDM5 Hostless Capture",
18536 0, 0, 0, 0),
18537 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_6_DL_HL",
18538 "Tertiary TDM6 Hostless Playback",
18539 0, 0, 0, 0),
18540 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_6_UL_HL",
18541 "Tertiary TDM6 Hostless Capture",
18542 0, 0, 0, 0),
18543 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_7_DL_HL",
18544 "Tertiary TDM7 Hostless Playback",
18545 0, 0, 0, 0),
18546 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_7_UL_HL",
18547 "Tertiary TDM7 Hostless Capture",
18548 0, 0, 0, 0),
18549 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_0_DL_HL",
18550 "Quaternary TDM0 Hostless Playback",
18551 0, 0, 0, 0),
18552 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_0_UL_HL",
18553 "Quaternary TDM0 Hostless Capture",
18554 0, 0, 0, 0),
18555 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_1_DL_HL",
18556 "Quaternary TDM1 Hostless Playback",
18557 0, 0, 0, 0),
18558 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_1_UL_HL",
18559 "Quaternary TDM1 Hostless Capture",
18560 0, 0, 0, 0),
18561 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_2_DL_HL",
18562 "Quaternary TDM2 Hostless Playback",
18563 0, 0, 0, 0),
18564 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_2_UL_HL",
18565 "Quaternary TDM2 Hostless Capture",
18566 0, 0, 0, 0),
18567 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_3_DL_HL",
18568 "Quaternary TDM3 Hostless Playback",
18569 0, 0, 0, 0),
18570 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_3_UL_HL",
18571 "Quaternary TDM3 Hostless Capture",
18572 0, 0, 0, 0),
18573 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_4_DL_HL",
18574 "Quaternary TDM4 Hostless Playback",
18575 0, 0, 0, 0),
18576 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_4_UL_HL",
18577 "Quaternary TDM4 Hostless Capture",
18578 0, 0, 0, 0),
18579 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_5_DL_HL",
18580 "Quaternary TDM5 Hostless Playback",
18581 0, 0, 0, 0),
18582 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_5_UL_HL",
18583 "Quaternary TDM5 Hostless Capture",
18584 0, 0, 0, 0),
18585 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_6_DL_HL",
18586 "Quaternary TDM6 Hostless Playback",
18587 0, 0, 0, 0),
18588 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_6_UL_HL",
18589 "Quaternary TDM6 Hostless Capture",
18590 0, 0, 0, 0),
18591 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_7_DL_HL",
18592 "Quaternary TDM7 Hostless Playback",
18593 0, 0, 0, 0),
18594 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_7_UL_HL",
18595 "Quaternary TDM7 Hostless Capture",
18596 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018597 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_0_DL_HL",
18598 "Quinary TDM0 Hostless Playback",
18599 0, 0, 0, 0),
18600 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_0_UL_HL",
18601 "Quinary TDM0 Hostless Capture",
18602 0, 0, 0, 0),
18603 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_1_DL_HL",
18604 "Quinary TDM1 Hostless Playback",
18605 0, 0, 0, 0),
18606 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_1_UL_HL",
18607 "Quinary TDM1 Hostless Capture",
18608 0, 0, 0, 0),
18609 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_2_DL_HL",
18610 "Quinary TDM2 Hostless Playback",
18611 0, 0, 0, 0),
18612 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_2_UL_HL",
18613 "Quinary TDM2 Hostless Capture",
18614 0, 0, 0, 0),
18615 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_3_DL_HL",
18616 "Quinary TDM3 Hostless Playback",
18617 0, 0, 0, 0),
18618 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_3_UL_HL",
18619 "Quinary TDM3 Hostless Capture",
18620 0, 0, 0, 0),
18621 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_4_DL_HL",
18622 "Quinary TDM4 Hostless Playback",
18623 0, 0, 0, 0),
18624 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_4_UL_HL",
18625 "Quinary TDM4 Hostless Capture",
18626 0, 0, 0, 0),
18627 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_5_DL_HL",
18628 "Quinary TDM5 Hostless Playback",
18629 0, 0, 0, 0),
18630 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_5_UL_HL",
18631 "Quinary TDM5 Hostless Capture",
18632 0, 0, 0, 0),
18633 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_6_DL_HL",
18634 "Quinary TDM6 Hostless Playback",
18635 0, 0, 0, 0),
18636 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_6_UL_HL",
18637 "Quinary TDM6 Hostless Capture",
18638 0, 0, 0, 0),
18639 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_7_DL_HL",
18640 "Quinary TDM7 Hostless Playback",
18641 0, 0, 0, 0),
18642 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_7_UL_HL",
18643 "Quinary TDM7 Hostless Capture",
18644 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018645
18646 /* LSM */
18647 SND_SOC_DAPM_AIF_OUT("LSM1_UL_HL", "Listen 1 Audio Service Capture",
18648 0, 0, 0, 0),
18649 SND_SOC_DAPM_AIF_OUT("LSM2_UL_HL", "Listen 2 Audio Service Capture",
18650 0, 0, 0, 0),
18651 SND_SOC_DAPM_AIF_OUT("LSM3_UL_HL", "Listen 3 Audio Service Capture",
18652 0, 0, 0, 0),
18653 SND_SOC_DAPM_AIF_OUT("LSM4_UL_HL", "Listen 4 Audio Service Capture",
18654 0, 0, 0, 0),
18655 SND_SOC_DAPM_AIF_OUT("LSM5_UL_HL", "Listen 5 Audio Service Capture",
18656 0, 0, 0, 0),
18657 SND_SOC_DAPM_AIF_OUT("LSM6_UL_HL", "Listen 6 Audio Service Capture",
18658 0, 0, 0, 0),
18659 SND_SOC_DAPM_AIF_OUT("LSM7_UL_HL", "Listen 7 Audio Service Capture",
18660 0, 0, 0, 0),
18661 SND_SOC_DAPM_AIF_OUT("LSM8_UL_HL", "Listen 8 Audio Service Capture",
18662 0, 0, 0, 0),
18663 SND_SOC_DAPM_AIF_IN("QCHAT_DL", "QCHAT Playback", 0, 0, 0, 0),
18664 SND_SOC_DAPM_AIF_OUT("QCHAT_UL", "QCHAT Capture", 0, 0, 0, 0),
18665 /* Backend AIF */
18666 /* Stream name equals to backend dai link stream name */
18667 SND_SOC_DAPM_AIF_OUT("PRI_I2S_RX", "Primary I2S Playback", 0, 0, 0, 0),
18668 SND_SOC_DAPM_AIF_OUT("SEC_I2S_RX", "Secondary I2S Playback",
18669 0, 0, 0, 0),
Ralf Herzc8701f72018-06-20 11:37:35 +020018670 SND_SOC_DAPM_AIF_OUT("PRI_SPDIF_RX", "Primary SPDIF Playback",
18671 0, 0, 0, 0),
18672 SND_SOC_DAPM_AIF_IN("PRI_SPDIF_TX", "Primary SPDIF Capture",
18673 0, 0, 0, 0),
18674 SND_SOC_DAPM_AIF_OUT("SEC_SPDIF_RX", "Secondary SPDIF Playback",
18675 0, 0, 0, 0),
18676 SND_SOC_DAPM_AIF_IN("SEC_SPDIF_TX", "Secondary SPDIF Capture",
18677 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018678 SND_SOC_DAPM_AIF_OUT("SLIMBUS_0_RX", "Slimbus Playback", 0, 0, 0, 0),
18679 SND_SOC_DAPM_AIF_OUT("SLIMBUS_2_RX", "Slimbus2 Playback", 0, 0, 0, 0),
18680 SND_SOC_DAPM_AIF_OUT("SLIMBUS_5_RX", "Slimbus5 Playback", 0, 0, 0, 0),
18681 SND_SOC_DAPM_AIF_OUT("HDMI", "HDMI Playback", 0, 0, 0, 0),
18682 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT", "Display Port Playback",
18683 0, 0, 0, 0),
Karthikeyan Mani57550082018-05-03 18:43:58 -070018684 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT1", "Display Port1 Playback",
18685 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018686 SND_SOC_DAPM_AIF_OUT("MI2S_RX", "MI2S Playback", 0, 0, 0, 0),
18687 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_RX", "Quaternary MI2S Playback",
18688 0, 0, 0, 0),
18689 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_RX", "Tertiary MI2S Playback",
18690 0, 0, 0, 0),
18691 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX", "Secondary MI2S Playback",
18692 0, 0, 0, 0),
18693 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX_SD1",
18694 "Secondary MI2S Playback SD1",
18695 0, 0, 0, 0),
18696 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_RX", "Primary MI2S Playback",
18697 0, 0, 0, 0),
18698 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_RX", "INT0 MI2S Playback",
18699 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053018700 SND_SOC_DAPM_AIF_OUT("INT2_MI2S_RX", "INT2 MI2S Playback",
18701 0, 0, 0, 0),
18702 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_RX", "INT3 MI2S Playback",
18703 0, 0, 0, 0),
18704 SND_SOC_DAPM_AIF_OUT("INT5_MI2S_RX", "INT5 MI2S Playback",
18705 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018706 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_RX", "INT4 MI2S Playback",
18707 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053018708 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_TX", "INT4 MI2S Capture",
18709 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018710 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_RX", "Quinary MI2S Playback",
18711 0, 0, 0, 0),
18712 SND_SOC_DAPM_AIF_IN("PRI_I2S_TX", "Primary I2S Capture", 0, 0, 0, 0),
18713 SND_SOC_DAPM_AIF_IN("MI2S_TX", "MI2S Capture", 0, 0, 0, 0),
18714 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_TX", "Quaternary MI2S Capture",
18715 0, 0, 0, 0),
18716 SND_SOC_DAPM_AIF_IN("PRI_MI2S_TX", "Primary MI2S Capture",
18717 0, 0, 0, 0),
18718 SND_SOC_DAPM_AIF_IN("TERT_MI2S_TX", "Tertiary MI2S Capture",
18719 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053018720 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_TX", "INT0 MI2S Capture",
18721 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018722 SND_SOC_DAPM_AIF_IN("INT2_MI2S_TX", "INT2 MI2S Capture",
18723 0, 0, 0, 0),
18724 SND_SOC_DAPM_AIF_IN("INT3_MI2S_TX", "INT3 MI2S Capture",
18725 0, 0, 0, 0),
18726 SND_SOC_DAPM_AIF_IN("SEC_MI2S_TX", "Secondary MI2S Capture",
18727 0, 0, 0, 0),
18728 SND_SOC_DAPM_AIF_IN("SLIMBUS_0_TX", "Slimbus Capture", 0, 0, 0, 0),
18729 SND_SOC_DAPM_AIF_IN("SLIMBUS_2_TX", "Slimbus2 Capture", 0, 0, 0, 0),
18730 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_TX", "Quinary MI2S Capture",
18731 0, 0, 0, 0),
18732 SND_SOC_DAPM_AIF_IN("SENARY_MI2S_TX", "Senary MI2S Capture",
18733 0, 0, 0, 0),
18734 SND_SOC_DAPM_AIF_OUT("INT_BT_SCO_RX", "Internal BT-SCO Playback",
18735 0, 0, 0, 0),
18736 SND_SOC_DAPM_AIF_IN("INT_BT_SCO_TX", "Internal BT-SCO Capture",
18737 0, 0, 0, 0),
18738 SND_SOC_DAPM_AIF_OUT("INT_BT_A2DP_RX", "Internal BT-A2DP Playback",
18739 0, 0, 0, 0),
18740 SND_SOC_DAPM_AIF_OUT("INT_FM_RX", "Internal FM Playback",
18741 0, 0, 0, 0),
18742 SND_SOC_DAPM_AIF_IN("INT_FM_TX", "Internal FM Capture",
18743 0, 0, 0, 0),
18744 SND_SOC_DAPM_AIF_OUT("PCM_RX", "AFE Playback",
18745 0, 0, 0, 0),
18746 SND_SOC_DAPM_AIF_IN("PCM_TX", "AFE Capture",
18747 0, 0, 0, 0),
18748 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_0", "Primary TDM0 Playback",
18749 0, 0, 0, 0),
18750 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_0", "Primary TDM0 Capture",
18751 0, 0, 0, 0),
18752 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_1", "Primary TDM1 Playback",
18753 0, 0, 0, 0),
18754 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_1", "Primary TDM1 Capture",
18755 0, 0, 0, 0),
18756 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_2", "Primary TDM2 Playback",
18757 0, 0, 0, 0),
18758 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_2", "Primary TDM2 Capture",
18759 0, 0, 0, 0),
18760 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_3", "Primary TDM3 Playback",
18761 0, 0, 0, 0),
18762 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_3", "Primary TDM3 Capture",
18763 0, 0, 0, 0),
18764 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_4", "Primary TDM4 Playback",
18765 0, 0, 0, 0),
18766 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_4", "Primary TDM4 Capture",
18767 0, 0, 0, 0),
18768 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_5", "Primary TDM5 Playback",
18769 0, 0, 0, 0),
18770 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_5", "Primary TDM5 Capture",
18771 0, 0, 0, 0),
18772 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_6", "Primary TDM6 Playback",
18773 0, 0, 0, 0),
18774 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_6", "Primary TDM6 Capture",
18775 0, 0, 0, 0),
18776 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_7", "Primary TDM7 Playback",
18777 0, 0, 0, 0),
18778 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_7", "Primary TDM7 Capture",
18779 0, 0, 0, 0),
18780 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_0", "Secondary TDM0 Playback",
18781 0, 0, 0, 0),
18782 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_0", "Secondary TDM0 Capture",
18783 0, 0, 0, 0),
18784 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_1", "Secondary TDM1 Playback",
18785 0, 0, 0, 0),
18786 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_1", "Secondary TDM1 Capture",
18787 0, 0, 0, 0),
18788 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_2", "Secondary TDM2 Playback",
18789 0, 0, 0, 0),
18790 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_2", "Secondary TDM2 Capture",
18791 0, 0, 0, 0),
18792 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_3", "Secondary TDM3 Playback",
18793 0, 0, 0, 0),
18794 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_3", "Secondary TDM3 Capture",
18795 0, 0, 0, 0),
18796 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_4", "Secondary TDM4 Playback",
18797 0, 0, 0, 0),
18798 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_4", "Secondary TDM4 Capture",
18799 0, 0, 0, 0),
18800 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_5", "Secondary TDM5 Playback",
18801 0, 0, 0, 0),
18802 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_5", "Secondary TDM5 Capture",
18803 0, 0, 0, 0),
18804 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_6", "Secondary TDM6 Playback",
18805 0, 0, 0, 0),
18806 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_6", "Secondary TDM6 Capture",
18807 0, 0, 0, 0),
18808 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_7", "Secondary TDM7 Playback",
18809 0, 0, 0, 0),
18810 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_7", "Secondary TDM7 Capture",
18811 0, 0, 0, 0),
18812 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_0", "Tertiary TDM0 Playback",
18813 0, 0, 0, 0),
18814 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_0", "Tertiary TDM0 Capture",
18815 0, 0, 0, 0),
18816 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_1", "Tertiary TDM1 Playback",
18817 0, 0, 0, 0),
18818 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_1", "Tertiary TDM1 Capture",
18819 0, 0, 0, 0),
18820 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_2", "Tertiary TDM2 Playback",
18821 0, 0, 0, 0),
18822 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_2", "Tertiary TDM2 Capture",
18823 0, 0, 0, 0),
18824 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_3", "Tertiary TDM3 Playback",
18825 0, 0, 0, 0),
18826 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_3", "Tertiary TDM3 Capture",
18827 0, 0, 0, 0),
18828 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_4", "Tertiary TDM4 Playback",
18829 0, 0, 0, 0),
18830 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_4", "Tertiary TDM4 Capture",
18831 0, 0, 0, 0),
18832 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_5", "Tertiary TDM5 Playback",
18833 0, 0, 0, 0),
18834 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_5", "Tertiary TDM5 Capture",
18835 0, 0, 0, 0),
18836 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_6", "Tertiary TDM6 Playback",
18837 0, 0, 0, 0),
18838 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_6", "Tertiary TDM6 Capture",
18839 0, 0, 0, 0),
18840 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_7", "Tertiary TDM7 Playback",
18841 0, 0, 0, 0),
18842 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_7", "Tertiary TDM7 Capture",
18843 0, 0, 0, 0),
18844 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_0", "Quaternary TDM0 Playback",
18845 0, 0, 0, 0),
18846 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_0", "Quaternary TDM0 Capture",
18847 0, 0, 0, 0),
18848 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_1", "Quaternary TDM1 Playback",
18849 0, 0, 0, 0),
18850 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_1", "Quaternary TDM1 Capture",
18851 0, 0, 0, 0),
18852 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_2", "Quaternary TDM2 Playback",
18853 0, 0, 0, 0),
18854 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_2", "Quaternary TDM2 Capture",
18855 0, 0, 0, 0),
18856 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_3", "Quaternary TDM3 Playback",
18857 0, 0, 0, 0),
18858 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_3", "Quaternary TDM3 Capture",
18859 0, 0, 0, 0),
18860 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_4", "Quaternary TDM4 Playback",
18861 0, 0, 0, 0),
18862 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_4", "Quaternary TDM4 Capture",
18863 0, 0, 0, 0),
18864 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_5", "Quaternary TDM5 Playback",
18865 0, 0, 0, 0),
18866 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_5", "Quaternary TDM5 Capture",
18867 0, 0, 0, 0),
18868 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_6", "Quaternary TDM6 Playback",
18869 0, 0, 0, 0),
18870 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_6", "Quaternary TDM6 Capture",
18871 0, 0, 0, 0),
18872 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_7", "Quaternary TDM7 Playback",
18873 0, 0, 0, 0),
18874 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_7", "Quaternary TDM7 Capture",
18875 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018876 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_0", "Quinary TDM0 Playback",
18877 0, 0, 0, 0),
18878 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_0", "Quinary TDM0 Capture",
18879 0, 0, 0, 0),
18880 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_1", "Quinary TDM1 Playback",
18881 0, 0, 0, 0),
18882 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_1", "Quinary TDM1 Capture",
18883 0, 0, 0, 0),
18884 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_2", "Quinary TDM2 Playback",
18885 0, 0, 0, 0),
18886 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_2", "Quinary TDM2 Capture",
18887 0, 0, 0, 0),
18888 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_3", "Quinary TDM3 Playback",
18889 0, 0, 0, 0),
18890 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_3", "Quinary TDM3 Capture",
18891 0, 0, 0, 0),
18892 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_4", "Quinary TDM4 Playback",
18893 0, 0, 0, 0),
18894 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_4", "Quinary TDM4 Capture",
18895 0, 0, 0, 0),
18896 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_5", "Quinary TDM5 Playback",
18897 0, 0, 0, 0),
18898 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_5", "Quinary TDM5 Capture",
18899 0, 0, 0, 0),
18900 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_6", "Quinary TDM6 Playback",
18901 0, 0, 0, 0),
18902 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_6", "Quinary TDM6 Capture",
18903 0, 0, 0, 0),
18904 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_7", "Quinary TDM7 Playback",
18905 0, 0, 0, 0),
18906 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_7", "Quinary TDM7 Capture",
18907 0, 0, 0, 0),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018908 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_0", "WSA CDC DMA0 Playback",
18909 0, 0, 0, 0),
18910 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_0", "WSA CDC DMA0 Capture",
18911 0, 0, 0, 0),
18912 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_1", "WSA CDC DMA1 Playback",
18913 0, 0, 0, 0),
18914 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_1", "WSA CDC DMA1 Capture",
18915 0, 0, 0, 0),
18916 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_2", "WSA CDC DMA2 Capture",
18917 0, 0, 0, 0),
18918 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_0", "VA CDC DMA0 Capture",
18919 0, 0, 0, 0),
18920 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_1", "VA CDC DMA1 Capture",
18921 0, 0, 0, 0),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053018922 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_0", "RX CDC DMA0 Playback",
18923 0, 0, 0, 0),
18924 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_0", "TX CDC DMA0 Capture",
18925 0, 0, 0, 0),
18926 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_1", "RX CDC DMA1 Playback",
18927 0, 0, 0, 0),
18928 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_1", "TX CDC DMA1 Capture",
18929 0, 0, 0, 0),
18930 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_2", "RX CDC DMA2 Playback",
18931 0, 0, 0, 0),
18932 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_2", "TX CDC DMA2 Capture",
18933 0, 0, 0, 0),
18934 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_3", "RX CDC DMA3 Playback",
18935 0, 0, 0, 0),
18936 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_3", "TX CDC DMA3 Capture",
18937 0, 0, 0, 0),
18938 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_4", "RX CDC DMA4 Playback",
18939 0, 0, 0, 0),
18940 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_4", "TX CDC DMA4 Capture",
18941 0, 0, 0, 0),
18942 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_5", "RX CDC DMA5 Playback",
18943 0, 0, 0, 0),
18944 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_5", "TX CDC DMA5 Capture",
18945 0, 0, 0, 0),
18946 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_6", "RX CDC DMA6 Playback",
18947 0, 0, 0, 0),
18948 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_7", "RX CDC DMA7 Playback",
18949 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018950 /* incall */
18951 SND_SOC_DAPM_AIF_OUT("VOICE_PLAYBACK_TX", "Voice Farend Playback",
18952 0, 0, 0, 0),
18953 SND_SOC_DAPM_AIF_OUT("VOICE2_PLAYBACK_TX", "Voice2 Farend Playback",
18954 0, 0, 0, 0),
18955 SND_SOC_DAPM_AIF_OUT("SLIMBUS_4_RX", "Slimbus4 Playback",
18956 0, 0, 0, 0),
18957 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_TX", "Voice Uplink Capture",
18958 0, 0, 0, 0),
18959 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_RX", "Voice Downlink Capture",
18960 0, 0, 0, 0),
18961 SND_SOC_DAPM_AIF_IN("SLIMBUS_4_TX", "Slimbus4 Capture",
18962 0, 0, 0, 0),
18963 SND_SOC_DAPM_AIF_IN("SENARY_TX", "Senary_mi2s Capture",
18964 0, 0, 0, 0),
18965 SND_SOC_DAPM_AIF_IN("INT5_MI2S_TX", "INT5 MI2S Capture",
18966 0, 0, 0, 0),
18967 SND_SOC_DAPM_AIF_IN("SLIMBUS_5_TX", "Slimbus5 Capture", 0, 0, 0, 0),
18968
18969 SND_SOC_DAPM_AIF_OUT("AUX_PCM_RX", "AUX PCM Playback", 0, 0, 0, 0),
18970 SND_SOC_DAPM_AIF_IN("AUX_PCM_TX", "AUX PCM Capture", 0, 0, 0, 0),
18971 SND_SOC_DAPM_AIF_OUT("SEC_AUX_PCM_RX", "Sec AUX PCM Playback",
18972 0, 0, 0, 0),
18973 SND_SOC_DAPM_AIF_IN("SEC_AUX_PCM_TX", "Sec AUX PCM Capture",
18974 0, 0, 0, 0),
18975 SND_SOC_DAPM_AIF_OUT("TERT_AUX_PCM_RX", "Tert AUX PCM Playback",
18976 0, 0, 0, 0),
18977 SND_SOC_DAPM_AIF_IN("TERT_AUX_PCM_TX", "Tert AUX PCM Capture",
18978 0, 0, 0, 0),
18979 SND_SOC_DAPM_AIF_OUT("QUAT_AUX_PCM_RX", "Quat AUX PCM Playback",
18980 0, 0, 0, 0),
18981 SND_SOC_DAPM_AIF_IN("QUAT_AUX_PCM_TX", "Quat AUX PCM Capture",
18982 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018983 SND_SOC_DAPM_AIF_OUT("QUIN_AUX_PCM_RX", "Quin AUX PCM Playback",
18984 0, 0, 0, 0),
18985 SND_SOC_DAPM_AIF_IN("QUIN_AUX_PCM_TX", "Quin AUX PCM Capture",
18986 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018987 SND_SOC_DAPM_AIF_IN("VOICE_STUB_DL", "VOICE_STUB Playback", 0, 0, 0, 0),
18988 SND_SOC_DAPM_AIF_OUT("VOICE_STUB_UL", "VOICE_STUB Capture", 0, 0, 0, 0),
18989 SND_SOC_DAPM_AIF_IN("VOICE2_STUB_DL", "VOICE2_STUB Playback",
18990 0, 0, 0, 0),
18991 SND_SOC_DAPM_AIF_OUT("VOICE2_STUB_UL", "VOICE2_STUB Capture",
18992 0, 0, 0, 0),
18993 SND_SOC_DAPM_AIF_IN("VOLTE_STUB_DL", "VOLTE_STUB Playback", 0, 0, 0, 0),
18994 SND_SOC_DAPM_AIF_OUT("VOLTE_STUB_UL", "VOLTE_STUB Capture", 0, 0, 0, 0),
18995 SND_SOC_DAPM_AIF_OUT("STUB_RX", "Stub Playback", 0, 0, 0, 0),
18996 SND_SOC_DAPM_AIF_IN("STUB_TX", "Stub Capture", 0, 0, 0, 0),
18997 SND_SOC_DAPM_AIF_OUT("SLIMBUS_1_RX", "Slimbus1 Playback", 0, 0, 0, 0),
18998 SND_SOC_DAPM_AIF_IN("SLIMBUS_1_TX", "Slimbus1 Capture", 0, 0, 0, 0),
18999 SND_SOC_DAPM_AIF_IN("STUB_1_TX", "Stub1 Capture", 0, 0, 0, 0),
19000 SND_SOC_DAPM_AIF_OUT("SLIMBUS_3_RX", "Slimbus3 Playback", 0, 0, 0, 0),
19001 SND_SOC_DAPM_AIF_IN("SLIMBUS_3_TX", "Slimbus3 Capture", 0, 0, 0, 0),
19002 /* In- call recording */
19003 SND_SOC_DAPM_AIF_OUT("SLIMBUS_6_RX", "Slimbus6 Playback", 0, 0, 0, 0),
19004 SND_SOC_DAPM_AIF_IN("SLIMBUS_6_TX", "Slimbus6 Capture", 0, 0, 0, 0),
Surendar Karkad47fda42018-05-20 19:21:10 +053019005 SND_SOC_DAPM_AIF_IN("AFE_LOOPBACK_TX", "AFE Loopback Capture",
19006 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019007 SND_SOC_DAPM_AIF_OUT("SLIMBUS_7_RX", "Slimbus7 Playback", 0, 0, 0, 0),
19008 SND_SOC_DAPM_AIF_IN("SLIMBUS_7_TX", "Slimbus7 Capture", 0, 0, 0, 0),
19009
19010 SND_SOC_DAPM_AIF_OUT("SLIMBUS_8_RX", "Slimbus8 Playback", 0, 0, 0, 0),
19011 SND_SOC_DAPM_AIF_IN("SLIMBUS_8_TX", "Slimbus8 Capture", 0, 0, 0, 0),
Surendar Karka3ef3d812018-09-28 18:52:35 +053019012 SND_SOC_DAPM_AIF_OUT("SLIMBUS_9_RX", "Slimbus9 Playback", 0, 0, 0, 0),
19013 SND_SOC_DAPM_AIF_IN("SLIMBUS_9_TX", "Slimbus9 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019014 SND_SOC_DAPM_AIF_OUT("USB_AUDIO_RX", "USB Audio Playback", 0, 0, 0, 0),
19015 SND_SOC_DAPM_AIF_IN("USB_AUDIO_TX", "USB Audio Capture", 0, 0, 0, 0),
19016
19017 /* Switch Definitions */
19018 SND_SOC_DAPM_SWITCH("SLIMBUS_DL_HL", SND_SOC_NOPM, 0, 0,
19019 &slim_fm_switch_mixer_controls),
19020 SND_SOC_DAPM_SWITCH("SLIMBUS1_DL_HL", SND_SOC_NOPM, 0, 0,
19021 &slim1_fm_switch_mixer_controls),
19022 SND_SOC_DAPM_SWITCH("SLIMBUS3_DL_HL", SND_SOC_NOPM, 0, 0,
19023 &slim3_fm_switch_mixer_controls),
19024 SND_SOC_DAPM_SWITCH("SLIMBUS4_DL_HL", SND_SOC_NOPM, 0, 0,
19025 &slim4_fm_switch_mixer_controls),
19026 SND_SOC_DAPM_SWITCH("SLIMBUS6_DL_HL", SND_SOC_NOPM, 0, 0,
19027 &slim6_fm_switch_mixer_controls),
19028 SND_SOC_DAPM_SWITCH("PCM_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19029 &pcm_rx_switch_mixer_controls),
19030 SND_SOC_DAPM_SWITCH("INT0_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19031 &int0_mi2s_rx_switch_mixer_controls),
19032 SND_SOC_DAPM_SWITCH("INT4_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19033 &int4_mi2s_rx_switch_mixer_controls),
19034 SND_SOC_DAPM_SWITCH("PRI_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19035 &pri_mi2s_rx_switch_mixer_controls),
19036 SND_SOC_DAPM_SWITCH("SEC_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19037 &sec_mi2s_rx_switch_mixer_controls),
19038 SND_SOC_DAPM_SWITCH("TERT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19039 &tert_mi2s_rx_switch_mixer_controls),
19040 SND_SOC_DAPM_SWITCH("QUAT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19041 &quat_mi2s_rx_switch_mixer_controls),
Rohit Kumara5077932017-09-10 22:05:05 +053019042 SND_SOC_DAPM_SWITCH("QUIN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19043 &quin_mi2s_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019044 SND_SOC_DAPM_SWITCH("HFP_PRI_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
19045 &hfp_pri_aux_switch_mixer_controls),
19046 SND_SOC_DAPM_SWITCH("HFP_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
19047 &hfp_aux_switch_mixer_controls),
19048 SND_SOC_DAPM_SWITCH("HFP_INT_UL_HL", SND_SOC_NOPM, 0, 0,
19049 &hfp_int_switch_mixer_controls),
19050 SND_SOC_DAPM_SWITCH("HFP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
19051 &hfp_slim7_switch_mixer_controls),
19052 SND_SOC_DAPM_SWITCH("USB_DL_HL", SND_SOC_NOPM, 0, 0,
19053 &usb_switch_mixer_controls),
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080019054 SND_SOC_DAPM_SWITCH("A2DP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
19055 &a2dp_slim7_switch_mixer_controls),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053019056 SND_SOC_DAPM_SWITCH("WSA_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053019057 &cdc_dma_wsa_switch_mixer_controls),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053019058 SND_SOC_DAPM_SWITCH("RX_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053019059 &cdc_dma_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019060
19061 /* Mixer definitions */
19062 SND_SOC_DAPM_MIXER("PRI_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19063 pri_i2s_rx_mixer_controls, ARRAY_SIZE(pri_i2s_rx_mixer_controls)),
19064 SND_SOC_DAPM_MIXER("SEC_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19065 sec_i2s_rx_mixer_controls, ARRAY_SIZE(sec_i2s_rx_mixer_controls)),
19066 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19067 slimbus_rx_mixer_controls, ARRAY_SIZE(slimbus_rx_mixer_controls)),
19068 SND_SOC_DAPM_MIXER("SLIMBUS_2_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19069 slimbus_2_rx_mixer_controls, ARRAY_SIZE(slimbus_2_rx_mixer_controls)),
19070 SND_SOC_DAPM_MIXER("SLIMBUS_5_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19071 slimbus_5_rx_mixer_controls, ARRAY_SIZE(slimbus_5_rx_mixer_controls)),
19072 SND_SOC_DAPM_MIXER("SLIMBUS_7_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19073 slimbus_7_rx_mixer_controls, ARRAY_SIZE(slimbus_7_rx_mixer_controls)),
Surendar Karka3ef3d812018-09-28 18:52:35 +053019074 SND_SOC_DAPM_MIXER("SLIMBUS_9_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19075 slimbus_9_rx_mixer_controls, ARRAY_SIZE(slimbus_9_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019076 SND_SOC_DAPM_MIXER("HDMI Mixer", SND_SOC_NOPM, 0, 0,
19077 hdmi_mixer_controls, ARRAY_SIZE(hdmi_mixer_controls)),
19078 SND_SOC_DAPM_MIXER("DISPLAY_PORT Mixer", SND_SOC_NOPM, 0, 0,
19079 display_port_mixer_controls, ARRAY_SIZE(display_port_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070019080 SND_SOC_DAPM_MIXER("DISPLAY_PORT1 Mixer", SND_SOC_NOPM, 0, 0,
19081 display_port1_mixer_controls, ARRAY_SIZE(display_port1_mixer_controls)),
Ralf Herzc8701f72018-06-20 11:37:35 +020019082 SND_SOC_DAPM_MIXER("PRI_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19083 pri_spdif_rx_mixer_controls, ARRAY_SIZE(pri_spdif_rx_mixer_controls)),
19084 SND_SOC_DAPM_MIXER("SEC_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19085 sec_spdif_rx_mixer_controls, ARRAY_SIZE(sec_spdif_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019086 SND_SOC_DAPM_MIXER("MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19087 mi2s_rx_mixer_controls, ARRAY_SIZE(mi2s_rx_mixer_controls)),
19088 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19089 quaternary_mi2s_rx_mixer_controls,
19090 ARRAY_SIZE(quaternary_mi2s_rx_mixer_controls)),
19091 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19092 tertiary_mi2s_rx_mixer_controls,
19093 ARRAY_SIZE(tertiary_mi2s_rx_mixer_controls)),
19094 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19095 secondary_mi2s_rx_mixer_controls,
19096 ARRAY_SIZE(secondary_mi2s_rx_mixer_controls)),
19097 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_SD1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19098 secondary_mi2s_rx2_mixer_controls,
19099 ARRAY_SIZE(secondary_mi2s_rx2_mixer_controls)),
19100 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19101 primary_mi2s_rx_mixer_controls,
19102 ARRAY_SIZE(primary_mi2s_rx_mixer_controls)),
19103 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19104 int0_mi2s_rx_mixer_controls,
19105 ARRAY_SIZE(int0_mi2s_rx_mixer_controls)),
19106 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19107 int4_mi2s_rx_mixer_controls,
19108 ARRAY_SIZE(int4_mi2s_rx_mixer_controls)),
19109 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19110 quinary_mi2s_rx_mixer_controls,
19111 ARRAY_SIZE(quinary_mi2s_rx_mixer_controls)),
19112 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19113 pri_tdm_rx_0_mixer_controls,
19114 ARRAY_SIZE(pri_tdm_rx_0_mixer_controls)),
19115 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19116 pri_tdm_rx_1_mixer_controls,
19117 ARRAY_SIZE(pri_tdm_rx_1_mixer_controls)),
19118 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19119 pri_tdm_rx_2_mixer_controls,
19120 ARRAY_SIZE(pri_tdm_rx_2_mixer_controls)),
19121 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19122 pri_tdm_rx_3_mixer_controls,
19123 ARRAY_SIZE(pri_tdm_rx_3_mixer_controls)),
19124 SND_SOC_DAPM_MIXER("PRI_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19125 pri_tdm_tx_0_mixer_controls,
19126 ARRAY_SIZE(pri_tdm_tx_0_mixer_controls)),
19127 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19128 sec_tdm_rx_0_mixer_controls,
19129 ARRAY_SIZE(sec_tdm_rx_0_mixer_controls)),
19130 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19131 sec_tdm_rx_1_mixer_controls,
19132 ARRAY_SIZE(sec_tdm_rx_1_mixer_controls)),
19133 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19134 sec_tdm_rx_2_mixer_controls,
19135 ARRAY_SIZE(sec_tdm_rx_2_mixer_controls)),
19136 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19137 sec_tdm_rx_3_mixer_controls,
19138 ARRAY_SIZE(sec_tdm_rx_3_mixer_controls)),
19139 SND_SOC_DAPM_MIXER("SEC_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19140 sec_tdm_tx_0_mixer_controls,
19141 ARRAY_SIZE(sec_tdm_tx_0_mixer_controls)),
19142 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19143 tert_tdm_rx_0_mixer_controls,
19144 ARRAY_SIZE(tert_tdm_rx_0_mixer_controls)),
19145 SND_SOC_DAPM_MIXER("TERT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19146 tert_tdm_tx_0_mixer_controls,
19147 ARRAY_SIZE(tert_tdm_tx_0_mixer_controls)),
19148 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19149 tert_tdm_rx_1_mixer_controls,
19150 ARRAY_SIZE(tert_tdm_rx_1_mixer_controls)),
19151 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19152 tert_tdm_rx_2_mixer_controls,
19153 ARRAY_SIZE(tert_tdm_rx_2_mixer_controls)),
19154 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19155 tert_tdm_rx_3_mixer_controls,
19156 ARRAY_SIZE(tert_tdm_rx_3_mixer_controls)),
19157 SND_SOC_DAPM_MIXER("TERT_TDM_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
19158 tert_tdm_rx_4_mixer_controls,
19159 ARRAY_SIZE(tert_tdm_rx_4_mixer_controls)),
19160 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19161 quat_tdm_rx_0_mixer_controls,
19162 ARRAY_SIZE(quat_tdm_rx_0_mixer_controls)),
19163 SND_SOC_DAPM_MIXER("QUAT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19164 quat_tdm_tx_0_mixer_controls,
19165 ARRAY_SIZE(quat_tdm_tx_0_mixer_controls)),
19166 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19167 quat_tdm_rx_1_mixer_controls,
19168 ARRAY_SIZE(quat_tdm_rx_1_mixer_controls)),
19169 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19170 quat_tdm_rx_2_mixer_controls,
19171 ARRAY_SIZE(quat_tdm_rx_2_mixer_controls)),
19172 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19173 quat_tdm_rx_3_mixer_controls,
19174 ARRAY_SIZE(quat_tdm_rx_3_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019175 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19176 quin_tdm_rx_0_mixer_controls,
19177 ARRAY_SIZE(quin_tdm_rx_0_mixer_controls)),
19178 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19179 quin_tdm_tx_0_mixer_controls,
19180 ARRAY_SIZE(quin_tdm_tx_0_mixer_controls)),
19181 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19182 quin_tdm_rx_1_mixer_controls,
19183 ARRAY_SIZE(quin_tdm_rx_1_mixer_controls)),
19184 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19185 quin_tdm_rx_2_mixer_controls,
19186 ARRAY_SIZE(quin_tdm_rx_2_mixer_controls)),
19187 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19188 quin_tdm_rx_3_mixer_controls,
19189 ARRAY_SIZE(quin_tdm_rx_3_mixer_controls)),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019190 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19191 wsa_cdc_dma_rx_0_mixer_controls,
19192 ARRAY_SIZE(wsa_cdc_dma_rx_0_mixer_controls)),
19193 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19194 wsa_cdc_dma_rx_1_mixer_controls,
19195 ARRAY_SIZE(wsa_cdc_dma_rx_1_mixer_controls)),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019196 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19197 rx_cdc_dma_rx_0_mixer_controls,
19198 ARRAY_SIZE(rx_cdc_dma_rx_0_mixer_controls)),
19199 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19200 rx_cdc_dma_rx_1_mixer_controls,
19201 ARRAY_SIZE(rx_cdc_dma_rx_1_mixer_controls)),
19202 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19203 rx_cdc_dma_rx_2_mixer_controls,
19204 ARRAY_SIZE(rx_cdc_dma_rx_2_mixer_controls)),
19205 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19206 rx_cdc_dma_rx_3_mixer_controls,
19207 ARRAY_SIZE(rx_cdc_dma_rx_3_mixer_controls)),
19208 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
19209 rx_cdc_dma_rx_4_mixer_controls,
19210 ARRAY_SIZE(rx_cdc_dma_rx_4_mixer_controls)),
19211 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_5 Audio Mixer", SND_SOC_NOPM, 0, 0,
19212 rx_cdc_dma_rx_5_mixer_controls,
19213 ARRAY_SIZE(rx_cdc_dma_rx_5_mixer_controls)),
19214 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_6 Audio Mixer", SND_SOC_NOPM, 0, 0,
19215 rx_cdc_dma_rx_6_mixer_controls,
19216 ARRAY_SIZE(rx_cdc_dma_rx_6_mixer_controls)),
19217 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_7 Audio Mixer", SND_SOC_NOPM, 0, 0,
19218 rx_cdc_dma_rx_7_mixer_controls,
19219 ARRAY_SIZE(rx_cdc_dma_rx_7_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019220 SND_SOC_DAPM_MIXER("MultiMedia1 Mixer", SND_SOC_NOPM, 0, 0,
19221 mmul1_mixer_controls, ARRAY_SIZE(mmul1_mixer_controls)),
19222 SND_SOC_DAPM_MIXER("MultiMedia2 Mixer", SND_SOC_NOPM, 0, 0,
19223 mmul2_mixer_controls, ARRAY_SIZE(mmul2_mixer_controls)),
19224 SND_SOC_DAPM_MIXER("MultiMedia3 Mixer", SND_SOC_NOPM, 0, 0,
19225 mmul3_mixer_controls, ARRAY_SIZE(mmul3_mixer_controls)),
19226 SND_SOC_DAPM_MIXER("MultiMedia4 Mixer", SND_SOC_NOPM, 0, 0,
19227 mmul4_mixer_controls, ARRAY_SIZE(mmul4_mixer_controls)),
19228 SND_SOC_DAPM_MIXER("MultiMedia5 Mixer", SND_SOC_NOPM, 0, 0,
19229 mmul5_mixer_controls, ARRAY_SIZE(mmul5_mixer_controls)),
19230 SND_SOC_DAPM_MIXER("MultiMedia6 Mixer", SND_SOC_NOPM, 0, 0,
19231 mmul6_mixer_controls, ARRAY_SIZE(mmul6_mixer_controls)),
19232 SND_SOC_DAPM_MIXER("MultiMedia8 Mixer", SND_SOC_NOPM, 0, 0,
19233 mmul8_mixer_controls, ARRAY_SIZE(mmul8_mixer_controls)),
19234 SND_SOC_DAPM_MIXER("MultiMedia9 Mixer", SND_SOC_NOPM, 0, 0,
19235 mmul9_mixer_controls, ARRAY_SIZE(mmul9_mixer_controls)),
Laxminath Kasam38070be2017-08-17 18:21:59 +053019236 SND_SOC_DAPM_MIXER("MultiMedia10 Mixer", SND_SOC_NOPM, 0, 0,
19237 mmul10_mixer_controls, ARRAY_SIZE(mmul10_mixer_controls)),
Asish Bhattacharya34504582017-08-08 12:55:01 +053019238 SND_SOC_DAPM_MIXER("MultiMedia16 Mixer", SND_SOC_NOPM, 0, 0,
19239 mmul16_mixer_controls, ARRAY_SIZE(mmul16_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019240 SND_SOC_DAPM_MIXER("MultiMedia17 Mixer", SND_SOC_NOPM, 0, 0,
19241 mmul17_mixer_controls, ARRAY_SIZE(mmul17_mixer_controls)),
19242 SND_SOC_DAPM_MIXER("MultiMedia18 Mixer", SND_SOC_NOPM, 0, 0,
19243 mmul18_mixer_controls, ARRAY_SIZE(mmul18_mixer_controls)),
19244 SND_SOC_DAPM_MIXER("MultiMedia19 Mixer", SND_SOC_NOPM, 0, 0,
19245 mmul19_mixer_controls, ARRAY_SIZE(mmul19_mixer_controls)),
19246 SND_SOC_DAPM_MIXER("MultiMedia20 Mixer", SND_SOC_NOPM, 0, 0,
19247 mmul20_mixer_controls, ARRAY_SIZE(mmul20_mixer_controls)),
Derek Chen07c6d1c2018-07-05 10:39:25 -070019248 SND_SOC_DAPM_MIXER("MultiMedia21 Mixer", SND_SOC_NOPM, 0, 0,
19249 mmul21_mixer_controls, ARRAY_SIZE(mmul21_mixer_controls)),
Surendar Karkac1cde372018-08-14 18:56:24 +053019250 SND_SOC_DAPM_MIXER("MultiMedia27 Mixer", SND_SOC_NOPM, 0, 0,
19251 mmul27_mixer_controls, ARRAY_SIZE(mmul27_mixer_controls)),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019252 SND_SOC_DAPM_MIXER("MultiMedia28 Mixer", SND_SOC_NOPM, 0, 0,
19253 mmul28_mixer_controls, ARRAY_SIZE(mmul28_mixer_controls)),
19254 SND_SOC_DAPM_MIXER("MultiMedia29 Mixer", SND_SOC_NOPM, 0, 0,
19255 mmul29_mixer_controls, ARRAY_SIZE(mmul29_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019256 SND_SOC_DAPM_MIXER("AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19257 auxpcm_rx_mixer_controls, ARRAY_SIZE(auxpcm_rx_mixer_controls)),
19258 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19259 sec_auxpcm_rx_mixer_controls, ARRAY_SIZE(sec_auxpcm_rx_mixer_controls)),
19260 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19261 tert_auxpcm_rx_mixer_controls,
19262 ARRAY_SIZE(tert_auxpcm_rx_mixer_controls)),
19263 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19264 quat_auxpcm_rx_mixer_controls,
19265 ARRAY_SIZE(quat_auxpcm_rx_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019266 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19267 quin_auxpcm_rx_mixer_controls,
19268 ARRAY_SIZE(quin_auxpcm_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019269 /* incall */
19270 SND_SOC_DAPM_MIXER("Incall_Music Audio Mixer", SND_SOC_NOPM, 0, 0,
19271 incall_music_delivery_mixer_controls,
19272 ARRAY_SIZE(incall_music_delivery_mixer_controls)),
19273 SND_SOC_DAPM_MIXER("Incall_Music_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19274 incall_music2_delivery_mixer_controls,
19275 ARRAY_SIZE(incall_music2_delivery_mixer_controls)),
19276 SND_SOC_DAPM_MIXER("SLIMBUS_4_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19277 slimbus_4_rx_mixer_controls,
19278 ARRAY_SIZE(slimbus_4_rx_mixer_controls)),
19279 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19280 slimbus_6_rx_mixer_controls,
19281 ARRAY_SIZE(slimbus_6_rx_mixer_controls)),
19282 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19283 usb_audio_rx_mixer_controls,
19284 ARRAY_SIZE(usb_audio_rx_mixer_controls)),
19285 /* Voice Mixer */
19286 SND_SOC_DAPM_MIXER("PRI_RX_Voice Mixer",
19287 SND_SOC_NOPM, 0, 0, pri_rx_voice_mixer_controls,
19288 ARRAY_SIZE(pri_rx_voice_mixer_controls)),
19289 SND_SOC_DAPM_MIXER("SEC_RX_Voice Mixer",
19290 SND_SOC_NOPM, 0, 0,
19291 sec_i2s_rx_voice_mixer_controls,
19292 ARRAY_SIZE(sec_i2s_rx_voice_mixer_controls)),
19293 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_Voice Mixer",
19294 SND_SOC_NOPM, 0, 0,
19295 sec_mi2s_rx_voice_mixer_controls,
19296 ARRAY_SIZE(sec_mi2s_rx_voice_mixer_controls)),
19297 SND_SOC_DAPM_MIXER("SLIM_0_RX_Voice Mixer",
19298 SND_SOC_NOPM, 0, 0,
19299 slimbus_rx_voice_mixer_controls,
19300 ARRAY_SIZE(slimbus_rx_voice_mixer_controls)),
19301 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX_Voice Mixer",
19302 SND_SOC_NOPM, 0, 0,
19303 bt_sco_rx_voice_mixer_controls,
19304 ARRAY_SIZE(bt_sco_rx_voice_mixer_controls)),
19305 SND_SOC_DAPM_MIXER("AFE_PCM_RX_Voice Mixer",
19306 SND_SOC_NOPM, 0, 0,
19307 afe_pcm_rx_voice_mixer_controls,
19308 ARRAY_SIZE(afe_pcm_rx_voice_mixer_controls)),
19309 SND_SOC_DAPM_MIXER("AUX_PCM_RX_Voice Mixer",
19310 SND_SOC_NOPM, 0, 0,
19311 aux_pcm_rx_voice_mixer_controls,
19312 ARRAY_SIZE(aux_pcm_rx_voice_mixer_controls)),
19313 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX_Voice Mixer",
19314 SND_SOC_NOPM, 0, 0,
19315 sec_aux_pcm_rx_voice_mixer_controls,
19316 ARRAY_SIZE(sec_aux_pcm_rx_voice_mixer_controls)),
19317 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX_Voice Mixer",
19318 SND_SOC_NOPM, 0, 0,
19319 tert_aux_pcm_rx_voice_mixer_controls,
19320 ARRAY_SIZE(tert_aux_pcm_rx_voice_mixer_controls)),
19321 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX_Voice Mixer",
19322 SND_SOC_NOPM, 0, 0,
19323 quat_aux_pcm_rx_voice_mixer_controls,
19324 ARRAY_SIZE(quat_aux_pcm_rx_voice_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019325 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX_Voice Mixer",
19326 SND_SOC_NOPM, 0, 0,
19327 quin_aux_pcm_rx_voice_mixer_controls,
19328 ARRAY_SIZE(quin_aux_pcm_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019329 SND_SOC_DAPM_MIXER("HDMI_RX_Voice Mixer",
19330 SND_SOC_NOPM, 0, 0,
19331 hdmi_rx_voice_mixer_controls,
19332 ARRAY_SIZE(hdmi_rx_voice_mixer_controls)),
19333 SND_SOC_DAPM_MIXER("MI2S_RX_Voice Mixer",
19334 SND_SOC_NOPM, 0, 0,
19335 mi2s_rx_voice_mixer_controls,
19336 ARRAY_SIZE(mi2s_rx_voice_mixer_controls)),
19337 SND_SOC_DAPM_MIXER("PRI_MI2S_RX_Voice Mixer",
19338 SND_SOC_NOPM, 0, 0,
19339 pri_mi2s_rx_voice_mixer_controls,
19340 ARRAY_SIZE(pri_mi2s_rx_voice_mixer_controls)),
19341 SND_SOC_DAPM_MIXER("INT0_MI2S_RX_Voice Mixer",
19342 SND_SOC_NOPM, 0, 0,
19343 int0_mi2s_rx_voice_mixer_controls,
19344 ARRAY_SIZE(int0_mi2s_rx_voice_mixer_controls)),
19345 SND_SOC_DAPM_MIXER("INT4_MI2S_RX_Voice Mixer",
19346 SND_SOC_NOPM, 0, 0,
19347 int4_mi2s_rx_voice_mixer_controls,
19348 ARRAY_SIZE(int4_mi2s_rx_voice_mixer_controls)),
19349 SND_SOC_DAPM_MIXER("TERT_MI2S_RX_Voice Mixer",
19350 SND_SOC_NOPM, 0, 0,
19351 tert_mi2s_rx_voice_mixer_controls,
19352 ARRAY_SIZE(tert_mi2s_rx_voice_mixer_controls)),
19353 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX_Voice Mixer",
19354 SND_SOC_NOPM, 0, 0,
19355 quat_mi2s_rx_voice_mixer_controls,
19356 ARRAY_SIZE(quat_mi2s_rx_voice_mixer_controls)),
19357 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX_Voice Mixer",
19358 SND_SOC_NOPM, 0, 0,
19359 quin_mi2s_rx_voice_mixer_controls,
19360 ARRAY_SIZE(quin_mi2s_rx_voice_mixer_controls)),
19361 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2_Voice Mixer",
19362 SND_SOC_NOPM, 0, 0,
19363 quat_tdm_rx_2_voice_mixer_controls,
19364 ARRAY_SIZE(quat_tdm_rx_2_voice_mixer_controls)),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053019365 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0_Voice Mixer",
19366 SND_SOC_NOPM, 0, 0,
19367 wsa_cdc_dma_rx_0_voice_mixer_controls,
19368 ARRAY_SIZE(wsa_cdc_dma_rx_0_voice_mixer_controls)),
19369 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0_Voice Mixer",
19370 SND_SOC_NOPM, 0, 0,
19371 rx_cdc_dma_rx_0_voice_mixer_controls,
19372 ARRAY_SIZE(rx_cdc_dma_rx_0_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019373 SND_SOC_DAPM_MIXER("Voip_Tx Mixer",
19374 SND_SOC_NOPM, 0, 0, tx_voip_mixer_controls,
19375 ARRAY_SIZE(tx_voip_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019376 SND_SOC_DAPM_MIXER("VoiceMMode1_Tx Mixer",
19377 SND_SOC_NOPM, 0, 0, tx_voicemmode1_mixer_controls,
19378 ARRAY_SIZE(tx_voicemmode1_mixer_controls)),
19379 SND_SOC_DAPM_MIXER("VoiceMMode2_Tx Mixer",
19380 SND_SOC_NOPM, 0, 0, tx_voicemmode2_mixer_controls,
19381 ARRAY_SIZE(tx_voicemmode2_mixer_controls)),
19382 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19383 int_bt_sco_rx_mixer_controls, ARRAY_SIZE(int_bt_sco_rx_mixer_controls)),
19384 SND_SOC_DAPM_MIXER("INTERNAL_A2DP_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19385 int_bt_a2dp_rx_mixer_controls,
19386 ARRAY_SIZE(int_bt_a2dp_rx_mixer_controls)),
19387 SND_SOC_DAPM_MIXER("INTERNAL_FM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19388 int_fm_rx_mixer_controls, ARRAY_SIZE(int_fm_rx_mixer_controls)),
19389 SND_SOC_DAPM_MIXER("AFE_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19390 afe_pcm_rx_mixer_controls, ARRAY_SIZE(afe_pcm_rx_mixer_controls)),
19391 SND_SOC_DAPM_MIXER("Voice Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
19392 tx_voice_stub_mixer_controls, ARRAY_SIZE(tx_voice_stub_mixer_controls)),
19393 SND_SOC_DAPM_MIXER("Voice2 Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
19394 tx_voice2_stub_mixer_controls,
19395 ARRAY_SIZE(tx_voice2_stub_mixer_controls)),
19396 SND_SOC_DAPM_MIXER("VoLTE Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
19397 tx_volte_stub_mixer_controls, ARRAY_SIZE(tx_volte_stub_mixer_controls)),
19398 SND_SOC_DAPM_MIXER("STUB_RX Mixer", SND_SOC_NOPM, 0, 0,
19399 stub_rx_mixer_controls, ARRAY_SIZE(stub_rx_mixer_controls)),
19400 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Mixer", SND_SOC_NOPM, 0, 0,
19401 slimbus_1_rx_mixer_controls, ARRAY_SIZE(slimbus_1_rx_mixer_controls)),
19402 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
19403 slimbus_3_rx_mixer_controls, ARRAY_SIZE(slimbus_3_rx_mixer_controls)),
19404 SND_SOC_DAPM_MIXER("SLIM_6_RX_Voice Mixer",
19405 SND_SOC_NOPM, 0, 0,
19406 slimbus_6_rx_voice_mixer_controls,
19407 ARRAY_SIZE(slimbus_6_rx_voice_mixer_controls)),
19408 SND_SOC_DAPM_MIXER("SLIM_7_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
19409 slimbus_7_rx_voice_mixer_controls,
19410 ARRAY_SIZE(slimbus_7_rx_voice_mixer_controls)),
19411 SND_SOC_DAPM_MIXER("SLIM_8_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
19412 slimbus_8_rx_voice_mixer_controls,
19413 ARRAY_SIZE(slimbus_8_rx_voice_mixer_controls)),
19414 /* port mixer */
19415 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Port Mixer",
19416 SND_SOC_NOPM, 0, 0, sbus_0_rx_port_mixer_controls,
19417 ARRAY_SIZE(sbus_0_rx_port_mixer_controls)),
19418 SND_SOC_DAPM_MIXER("AUX_PCM_RX Port Mixer",
19419 SND_SOC_NOPM, 0, 0, aux_pcm_rx_port_mixer_controls,
19420 ARRAY_SIZE(aux_pcm_rx_port_mixer_controls)),
19421 SND_SOC_DAPM_MIXER("SEC_AUXPCM_RX Port Mixer",
19422 SND_SOC_NOPM, 0, 0, sec_auxpcm_rx_port_mixer_controls,
19423 ARRAY_SIZE(sec_auxpcm_rx_port_mixer_controls)),
19424 SND_SOC_DAPM_MIXER("TERT_AUXPCM_RX Port Mixer",
19425 SND_SOC_NOPM, 0, 0, tert_auxpcm_rx_port_mixer_controls,
19426 ARRAY_SIZE(tert_auxpcm_rx_port_mixer_controls)),
19427 SND_SOC_DAPM_MIXER("QUAT_AUXPCM_RX Port Mixer",
19428 SND_SOC_NOPM, 0, 0, quat_auxpcm_rx_port_mixer_controls,
19429 ARRAY_SIZE(quat_auxpcm_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019430 SND_SOC_DAPM_MIXER("QUIN_AUXPCM_RX Port Mixer",
19431 SND_SOC_NOPM, 0, 0, quin_auxpcm_rx_port_mixer_controls,
19432 ARRAY_SIZE(quin_auxpcm_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019433 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19434 sbus_1_rx_port_mixer_controls,
19435 ARRAY_SIZE(sbus_1_rx_port_mixer_controls)),
19436 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19437 bt_sco_rx_port_mixer_controls,
19438 ARRAY_SIZE(bt_sco_rx_port_mixer_controls)),
19439 SND_SOC_DAPM_MIXER("AFE_PCM_RX Port Mixer",
19440 SND_SOC_NOPM, 0, 0, afe_pcm_rx_port_mixer_controls,
19441 ARRAY_SIZE(afe_pcm_rx_port_mixer_controls)),
19442 SND_SOC_DAPM_MIXER("HDMI_RX Port Mixer",
19443 SND_SOC_NOPM, 0, 0, hdmi_rx_port_mixer_controls,
19444 ARRAY_SIZE(hdmi_rx_port_mixer_controls)),
19445 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX Port Mixer",
19446 SND_SOC_NOPM, 0, 0, display_port_rx_port_mixer_controls,
19447 ARRAY_SIZE(display_port_rx_port_mixer_controls)),
Karthikeyan Manifbea92f2018-06-14 16:38:15 -070019448 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1 Port Mixer",
Karthikeyan Mani57550082018-05-03 18:43:58 -070019449 SND_SOC_NOPM, 0, 0, display_port_rx1_port_mixer_controls,
19450 ARRAY_SIZE(display_port_rx1_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019451 SND_SOC_DAPM_MIXER("SEC_I2S_RX Port Mixer",
19452 SND_SOC_NOPM, 0, 0, sec_i2s_rx_port_mixer_controls,
19453 ARRAY_SIZE(sec_i2s_rx_port_mixer_controls)),
19454 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX Port Mixer",
19455 SND_SOC_NOPM, 0, 0, sbus_3_rx_port_mixer_controls,
19456 ARRAY_SIZE(sbus_3_rx_port_mixer_controls)),
19457 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Port Mixer",
19458 SND_SOC_NOPM, 0, 0, sbus_6_rx_port_mixer_controls,
19459 ARRAY_SIZE(sbus_6_rx_port_mixer_controls)),
19460 SND_SOC_DAPM_MIXER("MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19461 mi2s_rx_port_mixer_controls, ARRAY_SIZE(mi2s_rx_port_mixer_controls)),
19462 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19463 primary_mi2s_rx_port_mixer_controls,
19464 ARRAY_SIZE(primary_mi2s_rx_port_mixer_controls)),
19465 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19466 sec_mi2s_rx_port_mixer_controls,
19467 ARRAY_SIZE(sec_mi2s_rx_port_mixer_controls)),
19468 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19469 tert_mi2s_rx_port_mixer_controls,
19470 ARRAY_SIZE(tert_mi2s_rx_port_mixer_controls)),
19471 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19472 quat_mi2s_rx_port_mixer_controls,
19473 ARRAY_SIZE(quat_mi2s_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019474 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19475 quin_mi2s_rx_port_mixer_controls,
19476 ARRAY_SIZE(quin_mi2s_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019477 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19478 pri_tdm_rx_0_port_mixer_controls,
19479 ARRAY_SIZE(pri_tdm_rx_0_port_mixer_controls)),
19480 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19481 pri_tdm_rx_1_port_mixer_controls,
19482 ARRAY_SIZE(pri_tdm_rx_1_port_mixer_controls)),
19483 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19484 pri_tdm_rx_2_port_mixer_controls,
19485 ARRAY_SIZE(pri_tdm_rx_2_port_mixer_controls)),
19486 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19487 pri_tdm_rx_3_port_mixer_controls,
19488 ARRAY_SIZE(pri_tdm_rx_3_port_mixer_controls)),
19489 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19490 sec_tdm_rx_0_port_mixer_controls,
19491 ARRAY_SIZE(sec_tdm_rx_0_port_mixer_controls)),
19492 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19493 sec_tdm_rx_1_port_mixer_controls,
19494 ARRAY_SIZE(sec_tdm_rx_1_port_mixer_controls)),
19495 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19496 sec_tdm_rx_2_port_mixer_controls,
19497 ARRAY_SIZE(sec_tdm_rx_2_port_mixer_controls)),
19498 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19499 sec_tdm_rx_3_port_mixer_controls,
19500 ARRAY_SIZE(sec_tdm_rx_3_port_mixer_controls)),
Derek Chenfdcc0982018-10-02 15:14:03 -070019501 SND_SOC_DAPM_MIXER("SEC_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
19502 sec_tdm_rx_7_port_mixer_controls,
19503 ARRAY_SIZE(sec_tdm_rx_7_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019504 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19505 tert_tdm_rx_0_port_mixer_controls,
19506 ARRAY_SIZE(tert_tdm_rx_0_port_mixer_controls)),
19507 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19508 tert_tdm_rx_1_port_mixer_controls,
19509 ARRAY_SIZE(tert_tdm_rx_1_port_mixer_controls)),
19510 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19511 tert_tdm_rx_2_port_mixer_controls,
19512 ARRAY_SIZE(tert_tdm_rx_2_port_mixer_controls)),
19513 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19514 tert_tdm_rx_3_port_mixer_controls,
19515 ARRAY_SIZE(tert_tdm_rx_3_port_mixer_controls)),
19516 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19517 quat_tdm_rx_0_port_mixer_controls,
19518 ARRAY_SIZE(quat_tdm_rx_0_port_mixer_controls)),
19519 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19520 quat_tdm_rx_1_port_mixer_controls,
19521 ARRAY_SIZE(quat_tdm_rx_1_port_mixer_controls)),
19522 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19523 quat_tdm_rx_2_port_mixer_controls,
19524 ARRAY_SIZE(quat_tdm_rx_2_port_mixer_controls)),
19525 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19526 quat_tdm_rx_3_port_mixer_controls,
19527 ARRAY_SIZE(quat_tdm_rx_3_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019528 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19529 quin_tdm_rx_0_port_mixer_controls,
19530 ARRAY_SIZE(quin_tdm_rx_0_port_mixer_controls)),
19531 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19532 quin_tdm_rx_1_port_mixer_controls,
19533 ARRAY_SIZE(quin_tdm_rx_1_port_mixer_controls)),
19534 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19535 quin_tdm_rx_2_port_mixer_controls,
19536 ARRAY_SIZE(quin_tdm_rx_2_port_mixer_controls)),
19537 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19538 quin_tdm_rx_3_port_mixer_controls,
19539 ARRAY_SIZE(quin_tdm_rx_3_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019540 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19541 int0_mi2s_rx_port_mixer_controls,
19542 ARRAY_SIZE(int0_mi2s_rx_port_mixer_controls)),
19543 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19544 int4_mi2s_rx_port_mixer_controls,
19545 ARRAY_SIZE(int4_mi2s_rx_port_mixer_controls)),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053019546 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19547 wsa_cdc_dma_rx_0_port_mixer_controls,
19548 ARRAY_SIZE(wsa_cdc_dma_rx_0_port_mixer_controls)),
19549 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19550 rx_cdc_dma_rx_0_port_mixer_controls,
19551 ARRAY_SIZE(rx_cdc_dma_rx_0_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019552 SND_SOC_DAPM_MIXER("QCHAT_Tx Mixer",
19553 SND_SOC_NOPM, 0, 0, tx_qchat_mixer_controls,
19554 ARRAY_SIZE(tx_qchat_mixer_controls)),
19555 SND_SOC_DAPM_MIXER("USB_AUDIO_RX_Voice Mixer",
19556 SND_SOC_NOPM, 0, 0, usb_audio_rx_voice_mixer_controls,
19557 ARRAY_SIZE(usb_audio_rx_voice_mixer_controls)),
19558 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Port Mixer",
19559 SND_SOC_NOPM, 0, 0, usb_rx_port_mixer_controls,
19560 ARRAY_SIZE(usb_rx_port_mixer_controls)),
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080019561 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX_Voice Mixer",
19562 SND_SOC_NOPM, 0, 0, display_port_rx_voice_mixer_controls,
19563 ARRAY_SIZE(display_port_rx_voice_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070019564 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1_Voice Mixer",
19565 SND_SOC_NOPM, 0, 0, display_port_rx1_voice_mixer_controls,
19566 ARRAY_SIZE(display_port_rx1_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019567 /* lsm mixer definitions */
19568 SND_SOC_DAPM_MIXER("LSM1 Mixer", SND_SOC_NOPM, 0, 0,
19569 lsm1_mixer_controls, ARRAY_SIZE(lsm1_mixer_controls)),
19570 SND_SOC_DAPM_MIXER("LSM2 Mixer", SND_SOC_NOPM, 0, 0,
19571 lsm2_mixer_controls, ARRAY_SIZE(lsm2_mixer_controls)),
19572 SND_SOC_DAPM_MIXER("LSM3 Mixer", SND_SOC_NOPM, 0, 0,
19573 lsm3_mixer_controls, ARRAY_SIZE(lsm3_mixer_controls)),
19574 SND_SOC_DAPM_MIXER("LSM4 Mixer", SND_SOC_NOPM, 0, 0,
19575 lsm4_mixer_controls, ARRAY_SIZE(lsm4_mixer_controls)),
19576 SND_SOC_DAPM_MIXER("LSM5 Mixer", SND_SOC_NOPM, 0, 0,
19577 lsm5_mixer_controls, ARRAY_SIZE(lsm5_mixer_controls)),
19578 SND_SOC_DAPM_MIXER("LSM6 Mixer", SND_SOC_NOPM, 0, 0,
19579 lsm6_mixer_controls, ARRAY_SIZE(lsm6_mixer_controls)),
19580 SND_SOC_DAPM_MIXER("LSM7 Mixer", SND_SOC_NOPM, 0, 0,
19581 lsm7_mixer_controls, ARRAY_SIZE(lsm7_mixer_controls)),
19582 SND_SOC_DAPM_MIXER("LSM8 Mixer", SND_SOC_NOPM, 0, 0,
19583 lsm8_mixer_controls, ARRAY_SIZE(lsm8_mixer_controls)),
19584 /* Virtual Pins to force backends ON atm */
19585 SND_SOC_DAPM_OUTPUT("BE_OUT"),
19586 SND_SOC_DAPM_INPUT("BE_IN"),
19587
19588 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
19589 &slim0_rx_vi_fb_lch_mux),
19590 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
19591 &slim0_rx_vi_fb_rch_mux),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019592 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
19593 &wsa_rx_0_vi_fb_lch_mux),
19594 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
19595 &wsa_rx_0_vi_fb_rch_mux),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019596 SND_SOC_DAPM_MUX("PRI_MI2S_RX_VI_FB_MUX", SND_SOC_NOPM, 0, 0,
19597 &mi2s_rx_vi_fb_mux),
19598 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_MONO_CH_MUX", SND_SOC_NOPM, 0, 0,
19599 &int4_mi2s_rx_vi_fb_mono_ch_mux),
19600 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", SND_SOC_NOPM, 0, 0,
19601 &int4_mi2s_rx_vi_fb_stereo_ch_mux),
19602
19603 SND_SOC_DAPM_MUX("VOC_EXT_EC MUX", SND_SOC_NOPM, 0, 0,
19604 &voc_ext_ec_mux),
19605 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL1 MUX", SND_SOC_NOPM, 0, 0,
19606 &ext_ec_ref_mux_ul1),
19607 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL2 MUX", SND_SOC_NOPM, 0, 0,
19608 &ext_ec_ref_mux_ul2),
19609 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL3 MUX", SND_SOC_NOPM, 0, 0,
19610 &ext_ec_ref_mux_ul3),
19611 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL4 MUX", SND_SOC_NOPM, 0, 0,
19612 &ext_ec_ref_mux_ul4),
19613 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL5 MUX", SND_SOC_NOPM, 0, 0,
19614 &ext_ec_ref_mux_ul5),
19615 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL6 MUX", SND_SOC_NOPM, 0, 0,
19616 &ext_ec_ref_mux_ul6),
19617 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL8 MUX", SND_SOC_NOPM, 0, 0,
19618 &ext_ec_ref_mux_ul8),
19619 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL9 MUX", SND_SOC_NOPM, 0, 0,
19620 &ext_ec_ref_mux_ul9),
Laxminath Kasam38070be2017-08-17 18:21:59 +053019621 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL10 MUX", SND_SOC_NOPM, 0, 0,
19622 &ext_ec_ref_mux_ul10),
Asish Bhattacharya34504582017-08-08 12:55:01 +053019623 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL16 MUX", SND_SOC_NOPM, 0, 0,
19624 &ext_ec_ref_mux_ul16),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019625 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL17 MUX", SND_SOC_NOPM, 0, 0,
19626 &ext_ec_ref_mux_ul17),
19627 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL18 MUX", SND_SOC_NOPM, 0, 0,
19628 &ext_ec_ref_mux_ul18),
19629 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL19 MUX", SND_SOC_NOPM, 0, 0,
19630 &ext_ec_ref_mux_ul19),
Meng Wang5c4bab72018-04-25 10:40:01 +080019631 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL28 MUX", SND_SOC_NOPM, 0, 0,
19632 &ext_ec_ref_mux_ul28),
19633 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL29 MUX", SND_SOC_NOPM, 0, 0,
19634 &ext_ec_ref_mux_ul29),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019635};
19636
19637static const struct snd_soc_dapm_route intercon[] = {
19638 {"PRI_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19639 {"PRI_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19640 {"PRI_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19641 {"PRI_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19642 {"PRI_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19643 {"PRI_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19644 {"PRI_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19645 {"PRI_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19646 {"PRI_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19647 {"PRI_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19648 {"PRI_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19649 {"PRI_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19650 {"PRI_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19651 {"PRI_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19652 {"PRI_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19653 {"PRI_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019654 {"PRI_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019655 {"PRI_I2S_RX", NULL, "PRI_RX Audio Mixer"},
19656
19657 {"SEC_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19658 {"SEC_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19659 {"SEC_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19660 {"SEC_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19661 {"SEC_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19662 {"SEC_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19663 {"SEC_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19664 {"SEC_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19665 {"SEC_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19666 {"SEC_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19667 {"SEC_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19668 {"SEC_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19669 {"SEC_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19670 {"SEC_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19671 {"SEC_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19672 {"SEC_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019673 {"SEC_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019674 {"SEC_I2S_RX", NULL, "SEC_RX Audio Mixer"},
19675
19676 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19677 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19678 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19679 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19680 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19681 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19682 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19683 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19684 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19685 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19686 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19687 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19688 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19689 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19690 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19691 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019692 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019693 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Audio Mixer"},
19694
19695 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19696 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19697 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19698 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19699 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19700 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19701 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19702 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19703 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19704 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19705 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19706 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19707 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19708 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19709 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19710 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019711 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019712 {"SLIMBUS_2_RX", NULL, "SLIMBUS_2_RX Audio Mixer"},
19713
19714 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19715 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19716 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19717 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19718 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19719 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19720 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19721 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19722 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19723 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19724 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19725 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19726 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19727 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19728 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19729 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019730 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019731 {"SLIMBUS_5_RX", NULL, "SLIMBUS_5_RX Audio Mixer"},
19732
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019733 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19734 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19735 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19736 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19737 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19738 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19739 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19740 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19741 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19742 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19743 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19744 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19745 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19746 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19747 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19748 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019749 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019750 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Audio Mixer"},
19751
19752 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19753 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19754 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19755 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19756 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19757 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19758 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19759 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19760 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19761 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19762 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19763 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19764 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19765 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19766 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19767 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019768 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019769 {"WSA_CDC_DMA_RX_1", NULL, "WSA_CDC_DMA_RX_1 Audio Mixer"},
19770
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019771 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19772 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19773 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19774 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19775 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19776 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19777 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19778 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19779 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19780 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19781 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19782 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19783 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19784 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19785 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19786 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019787 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019788 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Audio Mixer"},
19789
19790 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19791 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19792 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19793 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19794 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19795 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19796 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19797 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19798 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19799 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19800 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19801 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19802 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19803 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19804 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19805 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019806 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019807 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_1 Audio Mixer"},
19808
19809 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19810 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19811 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
19812 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
19813 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19814 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
19815 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
19816 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
19817 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19818 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
19819 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
19820 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
19821 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
19822 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
19823 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
19824 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019825 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019826 {"RX_CDC_DMA_RX_2", NULL, "RX_CDC_DMA_RX_2 Audio Mixer"},
19827
19828 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
19829 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
19830 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
19831 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
19832 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
19833 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
19834 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
19835 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
19836 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
19837 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
19838 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
19839 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
19840 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
19841 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
19842 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
19843 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019844 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019845 {"RX_CDC_DMA_RX_3", NULL, "RX_CDC_DMA_RX_3 Audio Mixer"},
19846
19847 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
19848 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
19849 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
19850 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
19851 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
19852 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
19853 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
19854 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
19855 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
19856 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
19857 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
19858 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
19859 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
19860 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
19861 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
19862 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019863 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019864 {"RX_CDC_DMA_RX_4", NULL, "RX_CDC_DMA_RX_4 Audio Mixer"},
19865
19866 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia1", "MM_DL1"},
19867 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia2", "MM_DL2"},
19868 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia3", "MM_DL3"},
19869 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia4", "MM_DL4"},
19870 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia5", "MM_DL5"},
19871 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia6", "MM_DL6"},
19872 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia7", "MM_DL7"},
19873 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia8", "MM_DL8"},
19874 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia9", "MM_DL9"},
19875 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia10", "MM_DL10"},
19876 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia11", "MM_DL11"},
19877 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia12", "MM_DL12"},
19878 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia13", "MM_DL13"},
19879 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia14", "MM_DL14"},
19880 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia15", "MM_DL15"},
19881 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019882 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019883 {"RX_CDC_DMA_RX_5", NULL, "RX_CDC_DMA_RX_5 Audio Mixer"},
19884
19885 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia1", "MM_DL1"},
19886 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia2", "MM_DL2"},
19887 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia3", "MM_DL3"},
19888 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia4", "MM_DL4"},
19889 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia5", "MM_DL5"},
19890 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia6", "MM_DL6"},
19891 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia7", "MM_DL7"},
19892 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia8", "MM_DL8"},
19893 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia9", "MM_DL9"},
19894 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia10", "MM_DL10"},
19895 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia11", "MM_DL11"},
19896 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia12", "MM_DL12"},
19897 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia13", "MM_DL13"},
19898 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia14", "MM_DL14"},
19899 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia15", "MM_DL15"},
19900 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019901 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019902 {"RX_CDC_DMA_RX_6", NULL, "RX_CDC_DMA_RX_6 Audio Mixer"},
19903
19904 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia1", "MM_DL1"},
19905 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia2", "MM_DL2"},
19906 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia3", "MM_DL3"},
19907 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia4", "MM_DL4"},
19908 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia5", "MM_DL5"},
19909 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia6", "MM_DL6"},
19910 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia7", "MM_DL7"},
19911 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia8", "MM_DL8"},
19912 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia9", "MM_DL9"},
19913 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia10", "MM_DL10"},
19914 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia11", "MM_DL11"},
19915 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia12", "MM_DL12"},
19916 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia13", "MM_DL13"},
19917 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia14", "MM_DL14"},
19918 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia15", "MM_DL15"},
19919 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019920 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019921 {"RX_CDC_DMA_RX_7", NULL, "RX_CDC_DMA_RX_7 Audio Mixer"},
19922
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019923 {"HDMI Mixer", "MultiMedia1", "MM_DL1"},
19924 {"HDMI Mixer", "MultiMedia2", "MM_DL2"},
19925 {"HDMI Mixer", "MultiMedia3", "MM_DL3"},
19926 {"HDMI Mixer", "MultiMedia4", "MM_DL4"},
19927 {"HDMI Mixer", "MultiMedia5", "MM_DL5"},
19928 {"HDMI Mixer", "MultiMedia6", "MM_DL6"},
19929 {"HDMI Mixer", "MultiMedia7", "MM_DL7"},
19930 {"HDMI Mixer", "MultiMedia8", "MM_DL8"},
19931 {"HDMI Mixer", "MultiMedia9", "MM_DL9"},
19932 {"HDMI Mixer", "MultiMedia10", "MM_DL10"},
19933 {"HDMI Mixer", "MultiMedia11", "MM_DL11"},
19934 {"HDMI Mixer", "MultiMedia12", "MM_DL12"},
19935 {"HDMI Mixer", "MultiMedia13", "MM_DL13"},
19936 {"HDMI Mixer", "MultiMedia14", "MM_DL14"},
19937 {"HDMI Mixer", "MultiMedia15", "MM_DL15"},
19938 {"HDMI Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019939 {"HDMI Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019940 {"HDMI", NULL, "HDMI Mixer"},
19941
19942 {"DISPLAY_PORT Mixer", "MultiMedia1", "MM_DL1"},
19943 {"DISPLAY_PORT Mixer", "MultiMedia2", "MM_DL2"},
19944 {"DISPLAY_PORT Mixer", "MultiMedia3", "MM_DL3"},
19945 {"DISPLAY_PORT Mixer", "MultiMedia4", "MM_DL4"},
19946 {"DISPLAY_PORT Mixer", "MultiMedia5", "MM_DL5"},
19947 {"DISPLAY_PORT Mixer", "MultiMedia6", "MM_DL6"},
19948 {"DISPLAY_PORT Mixer", "MultiMedia7", "MM_DL7"},
19949 {"DISPLAY_PORT Mixer", "MultiMedia8", "MM_DL8"},
19950 {"DISPLAY_PORT Mixer", "MultiMedia9", "MM_DL9"},
19951 {"DISPLAY_PORT Mixer", "MultiMedia10", "MM_DL10"},
19952 {"DISPLAY_PORT Mixer", "MultiMedia11", "MM_DL11"},
19953 {"DISPLAY_PORT Mixer", "MultiMedia12", "MM_DL12"},
19954 {"DISPLAY_PORT Mixer", "MultiMedia13", "MM_DL13"},
19955 {"DISPLAY_PORT Mixer", "MultiMedia14", "MM_DL14"},
19956 {"DISPLAY_PORT Mixer", "MultiMedia15", "MM_DL15"},
19957 {"DISPLAY_PORT Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019958 {"DISPLAY_PORT Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019959 {"DISPLAY_PORT", NULL, "DISPLAY_PORT Mixer"},
19960
Karthikeyan Mani57550082018-05-03 18:43:58 -070019961 {"DISPLAY_PORT1 Mixer", "MultiMedia1", "MM_DL1"},
19962 {"DISPLAY_PORT1 Mixer", "MultiMedia2", "MM_DL2"},
19963 {"DISPLAY_PORT1 Mixer", "MultiMedia3", "MM_DL3"},
19964 {"DISPLAY_PORT1 Mixer", "MultiMedia4", "MM_DL4"},
19965 {"DISPLAY_PORT1 Mixer", "MultiMedia5", "MM_DL5"},
19966 {"DISPLAY_PORT1 Mixer", "MultiMedia6", "MM_DL6"},
19967 {"DISPLAY_PORT1 Mixer", "MultiMedia7", "MM_DL7"},
19968 {"DISPLAY_PORT1 Mixer", "MultiMedia8", "MM_DL8"},
19969 {"DISPLAY_PORT1 Mixer", "MultiMedia9", "MM_DL9"},
19970 {"DISPLAY_PORT1 Mixer", "MultiMedia10", "MM_DL10"},
19971 {"DISPLAY_PORT1 Mixer", "MultiMedia11", "MM_DL11"},
19972 {"DISPLAY_PORT1 Mixer", "MultiMedia12", "MM_DL12"},
19973 {"DISPLAY_PORT1 Mixer", "MultiMedia13", "MM_DL13"},
19974 {"DISPLAY_PORT1 Mixer", "MultiMedia14", "MM_DL14"},
19975 {"DISPLAY_PORT1 Mixer", "MultiMedia15", "MM_DL15"},
19976 {"DISPLAY_PORT1 Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019977 {"DISPLAY_PORT1 Mixer", "MultiMedia26", "MM_DL26"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070019978 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT1 Mixer"},
19979
Ralf Herzc8701f72018-06-20 11:37:35 +020019980 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19981 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19982 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19983 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19984 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19985 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19986 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19987 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19988 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19989 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19990 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19991 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19992 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19993 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19994 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19995 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019996 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020019997 {"PRI_SPDIF_RX", NULL, "PRI_SPDIF_RX Audio Mixer"},
19998
19999 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20000 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20001 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20002 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20003 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20004 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20005 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20006 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20007 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20008 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20009 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20010 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20011 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20012 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20013 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20014 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020015 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020016 {"SEC_SPDIF_RX", NULL, "SEC_SPDIF_RX Audio Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020017
20018 /* incall */
20019 {"Incall_Music Audio Mixer", "MultiMedia1", "MM_DL1"},
20020 {"Incall_Music Audio Mixer", "MultiMedia2", "MM_DL2"},
20021 {"Incall_Music Audio Mixer", "MultiMedia5", "MM_DL5"},
20022 {"Incall_Music Audio Mixer", "MultiMedia9", "MM_DL9"},
20023 {"VOICE_PLAYBACK_TX", NULL, "Incall_Music Audio Mixer"},
20024 {"Incall_Music_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20025 {"Incall_Music_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20026 {"Incall_Music_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20027 {"Incall_Music_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20028 {"VOICE2_PLAYBACK_TX", NULL, "Incall_Music_2 Audio Mixer"},
20029 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20030 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20031 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20032 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20033 {"SLIMBUS_4_RX", NULL, "SLIMBUS_4_RX Audio Mixer"},
20034
20035 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20036 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20037 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20038 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20039 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20040 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20041 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20042 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20043 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20044 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20045 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20046 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20047 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20048 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20049 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20050 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020051 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020052 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Audio Mixer"},
20053
20054 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20055 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20056 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20057 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20058 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20059 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20060 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20061 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20062 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20063 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20064 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20065 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20066 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20067 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20068 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20069 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020070 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020071 {"SLIMBUS_7_RX", NULL, "SLIMBUS_7_RX Audio Mixer"},
20072
Surendar Karka3ef3d812018-09-28 18:52:35 +053020073 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20074 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20075 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20076 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20077 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20078 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20079 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20080 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20081 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20082 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20083 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20084 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20085 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20086 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20087 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20088 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20089 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
20090 {"SLIMBUS_9_RX", NULL, "SLIMBUS_9_RX Audio Mixer"},
20091
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020092 {"USB_AUDIO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20093 {"USB_AUDIO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20094 {"USB_AUDIO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20095 {"USB_AUDIO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20096 {"USB_AUDIO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20097 {"USB_AUDIO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20098 {"USB_AUDIO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20099 {"USB_AUDIO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20100 {"USB_AUDIO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20101 {"USB_AUDIO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20102 {"USB_AUDIO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20103 {"USB_AUDIO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20104 {"USB_AUDIO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20105 {"USB_AUDIO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20106 {"USB_AUDIO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20107 {"USB_AUDIO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020108 {"USB_AUDIO_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020109 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Audio Mixer"},
20110
20111 {"MultiMedia1 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
20112 {"MultiMedia4 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
20113 {"MultiMedia8 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
20114 {"MultiMedia1 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
20115 {"MultiMedia4 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
20116 {"MultiMedia8 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
20117 {"MultiMedia1 Mixer", "SLIM_4_TX", "SLIMBUS_4_TX"},
20118 {"MultiMedia1 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
20119 {"MultiMedia1 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
20120 {"MultiMedia1 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020121 {"MultiMedia1 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020122 {"MultiMedia8 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
20123 {"MultiMedia8 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020124 {"MultiMedia8 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020125 {"MultiMedia4 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20126 {"MultiMedia17 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20127 {"MultiMedia18 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20128 {"MultiMedia19 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020129 {"MultiMedia28 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20130 {"MultiMedia29 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020131 {"MultiMedia8 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20132 {"MultiMedia2 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20133 {"MultiMedia4 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20134 {"MultiMedia17 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20135 {"MultiMedia18 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20136 {"MultiMedia19 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020137 {"MultiMedia28 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20138 {"MultiMedia29 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020139 {"MultiMedia8 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020140 {"MultiMedia18 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020141 {"MultiMedia17 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20142 {"MultiMedia18 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20143 {"MultiMedia19 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20144 {"MultiMedia28 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20145 {"MultiMedia29 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20146 {"MultiMedia17 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020147 {"MultiMedia18 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020148 {"MultiMedia19 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20149 {"MultiMedia28 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20150 {"MultiMedia29 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020151 {"MultiMedia8 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20152 {"MultiMedia3 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20153 {"MultiMedia5 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020154 {"MultiMedia10 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020155 {"MultiMedia16 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020156 {"MultiMedia5 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
20157 {"MultiMedia5 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020158 {"MultiMedia5 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020159 {"MultiMedia10 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020160 {"MultiMedia10 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020161 {"MultiMedia18 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20162 {"MultiMedia18 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
20163
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020164 {"MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20165 {"MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20166 {"MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20167 {"MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20168 {"MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20169 {"MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20170 {"MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20171 {"MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20172 {"MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20173 {"MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20174 {"MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20175 {"MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20176 {"MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20177 {"MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20178 {"MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20179 {"MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020180 {"MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020181 {"MI2S_RX", NULL, "MI2S_RX Audio Mixer"},
20182
20183 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20184 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20185 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20186 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20187 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20188 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20189 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20190 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20191 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20192 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20193 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20194 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20195 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20196 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20197 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020198 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020199 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Audio Mixer"},
20200
20201 {"TERT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20202 {"TERT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20203 {"TERT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20204 {"TERT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20205 {"TERT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20206 {"TERT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20207 {"TERT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20208 {"TERT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20209 {"TERT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20210 {"TERT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20211 {"TERT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20212 {"TERT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20213 {"TERT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20214 {"TERT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020215 {"TERT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020216 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Audio Mixer"},
20217
20218 {"SEC_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20219 {"SEC_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20220 {"SEC_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20221 {"SEC_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20222 {"SEC_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20223 {"SEC_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20224 {"SEC_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20225 {"SEC_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20226 {"SEC_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20227 {"SEC_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20228 {"SEC_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20229 {"SEC_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20230 {"SEC_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20231 {"SEC_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020232 {"SEC_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020233 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Audio Mixer"},
20234
20235 {"SEC_MI2S_RX_SD1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20236 {"SEC_MI2S_RX_SD1", NULL, "SEC_MI2S_RX_SD1 Audio Mixer"},
20237
20238 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20239 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20240
20241 {"PRI_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20242 {"PRI_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20243 {"PRI_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20244 {"PRI_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20245 {"PRI_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20246 {"PRI_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20247 {"PRI_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20248 {"PRI_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20249 {"PRI_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20250 {"PRI_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20251 {"PRI_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20252 {"PRI_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20253 {"PRI_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20254 {"PRI_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20255 {"PRI_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020256 {"PRI_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020257 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Audio Mixer"},
20258
20259 {"INT0_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20260 {"INT0_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20261 {"INT0_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20262 {"INT0_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20263 {"INT0_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20264 {"INT0_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20265 {"INT0_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20266 {"INT0_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20267 {"INT0_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20268 {"INT0_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20269 {"INT0_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20270 {"INT0_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20271 {"INT0_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20272 {"INT0_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20273 {"INT0_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20274 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Audio Mixer"},
20275
20276 {"INT4_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20277 {"INT4_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20278 {"INT4_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20279 {"INT4_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20280 {"INT4_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20281 {"INT4_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20282 {"INT4_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20283 {"INT4_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20284 {"INT4_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20285 {"INT4_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20286 {"INT4_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20287 {"INT4_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20288 {"INT4_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20289 {"INT4_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20290 {"INT4_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20291 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Audio Mixer"},
20292
20293 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20294 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20295 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20296 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20297 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20298 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20299 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20300 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20301 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20302 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20303 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20304 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20305 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20306 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20307 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20308 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20309 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20310 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Audio Mixer"},
20311
20312 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20313 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20314 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20315 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20316 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20317 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20318 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20319 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20320 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20321 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20322 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20323 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20324 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20325 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20326 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20327 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020328 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020329 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Audio Mixer"},
20330
20331 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20332 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20333 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20334 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20335 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20336 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20337 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20338 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20339 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20340 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20341 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20342 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20343 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20344 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20345 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20346 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020347 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020348 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Audio Mixer"},
20349
20350 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20351 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20352 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20353 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20354 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20355 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20356 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20357 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20358 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20359 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20360 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20361 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20362 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20363 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20364 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20365 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020366 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020367 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Audio Mixer"},
20368
20369 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20370 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20371 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20372 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20373 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20374 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20375 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20376 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20377 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20378 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20379 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20380 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20381 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20382 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20383 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20384 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020385 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020386 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Audio Mixer"},
20387
20388 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20389 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20390 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20391 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20392 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20393 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20394 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20395 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20396 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20397 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20398 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20399 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20400 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20401 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20402 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20403 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20404 {"PRI_TDM_TX_0", NULL, "PRI_TDM_TX_0 Audio Mixer"},
20405
20406 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20407 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20408 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20409 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20410 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20411 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20412 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20413 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20414 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20415 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20416 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20417 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20418 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20419 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20420 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20421 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020422 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020423 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Audio Mixer"},
20424
20425 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20426 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20427 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20428 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20429 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20430 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20431 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20432 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20433 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20434 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20435 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20436 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20437 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20438 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20439 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20440 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020441 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020442 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Audio Mixer"},
20443
20444 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20445 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20446 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20447 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20448 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20449 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20450 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20451 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20452 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20453 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20454 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20455 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20456 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20457 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20458 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20459 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020460 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020461 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Audio Mixer"},
20462
20463 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20464 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20465 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20466 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20467 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20468 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20469 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20470 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20471 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20472 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20473 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20474 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20475 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20476 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20477 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20478 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020479 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020480 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Audio Mixer"},
20481
20482 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20483 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20484 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20485 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20486 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20487 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20488 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20489 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20490 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20491 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20492 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20493 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20494 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20495 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20496 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20497 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20498 {"SEC_TDM_TX_0", NULL, "SEC_TDM_TX_0 Audio Mixer"},
20499
20500 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20501 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20502 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20503 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20504 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20505 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20506 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20507 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20508 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20509 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20510 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20511 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20512 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20513 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20514 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20515 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020516 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020517 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Audio Mixer"},
20518
20519 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20520 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20521 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20522 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20523 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20524 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20525 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20526 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20527 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20528 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20529 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20530 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20531 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20532 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20533 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20534 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20535 {"TERT_TDM_TX_0", NULL, "TERT_TDM_TX_0 Audio Mixer"},
20536
20537 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20538 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20539 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20540 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20541 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20542 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20543 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20544 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20545 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20546 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20547 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20548 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20549 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20550 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20551 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20552 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020553 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020554 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Audio Mixer"},
20555
20556 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20557 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20558 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20559 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20560 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20561 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20562 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20563 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20564 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20565 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20566 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20567 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20568 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20569 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20570 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20571 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020572 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020573 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Audio Mixer"},
20574
20575 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20576 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20577 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20578 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20579 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20580 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20581 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20582 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20583 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20584 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20585 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20586 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20587 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20588 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20589 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20590 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020591 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020592 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Audio Mixer"},
20593
20594 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
20595 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
20596 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
20597 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
20598 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
20599 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
20600 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
20601 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
20602 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
20603 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
20604 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
20605 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
20606 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
20607 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
20608 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
20609 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020610 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020611 {"TERT_TDM_RX_4", NULL, "TERT_TDM_RX_4 Audio Mixer"},
20612
20613 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20614 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20615 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20616 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20617 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20618 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20619 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20620 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20621 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20622 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20623 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20624 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20625 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20626 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20627 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20628 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20629 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020630 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020631 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Audio Mixer"},
20632
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020633 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20634 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20635 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20636 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20637 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20638 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20639 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20640 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20641 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20642 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20643 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20644 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20645 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20646 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20647 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20648 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20649 {"QUAT_TDM_TX_0", NULL, "QUAT_TDM_TX_0 Audio Mixer"},
20650
20651 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20652 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20653 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20654 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20655 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20656 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20657 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20658 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20659 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20660 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20661 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20662 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20663 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20664 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20665 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20666 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
20667 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020668 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020669 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Audio Mixer"},
20670
20671 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20672 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20673 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20674 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20675 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20676 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20677 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20678 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20679 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20680 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20681 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20682 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20683 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20684 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20685 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20686 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
20687 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020688 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020689 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Audio Mixer"},
20690
20691 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20692 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20693 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20694 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20695 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20696 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20697 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20698 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20699 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20700 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20701 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20702 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20703 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20704 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20705 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20706 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
20707 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020708 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020709 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Audio Mixer"},
20710
Rohit Kumara5077932017-09-10 22:05:05 +053020711 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20712 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20713 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20714 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20715 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20716 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20717 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20718 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20719 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20720 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20721 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20722 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20723 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20724 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20725 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20726 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20727 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020728 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053020729 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Audio Mixer"},
20730
20731 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20732 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20733 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20734 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20735 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20736 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20737 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20738 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20739 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20740 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20741 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20742 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20743 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20744 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20745 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20746 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20747 {"QUIN_TDM_TX_0", NULL, "QUIN_TDM_TX_0 Audio Mixer"},
20748
20749 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20750 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20751 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20752 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20753 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20754 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20755 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20756 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20757 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20758 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20759 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20760 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20761 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20762 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20763 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20764 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
20765 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020766 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053020767 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Audio Mixer"},
20768
20769 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20770 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20771 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20772 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20773 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20774 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20775 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20776 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20777 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20778 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20779 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20780 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20781 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20782 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20783 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20784 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
20785 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020786 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053020787 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Audio Mixer"},
20788
20789 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20790 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20791 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20792 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20793 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20794 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20795 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20796 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20797 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20798 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20799 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20800 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20801 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20802 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20803 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20804 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
20805 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020806 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053020807 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Audio Mixer"},
20808
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020809 {"MultiMedia1 Mixer", "PRI_TX", "PRI_I2S_TX"},
20810 {"MultiMedia1 Mixer", "MI2S_TX", "MI2S_TX"},
20811 {"MultiMedia2 Mixer", "MI2S_TX", "MI2S_TX"},
20812 {"MultiMedia3 Mixer", "MI2S_TX", "MI2S_TX"},
20813 {"MultiMedia5 Mixer", "MI2S_TX", "MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020814 {"MultiMedia10 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020815 {"MultiMedia16 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020816 {"MultiMedia1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20817 {"MultiMedia2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20818 {"MultiMedia6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20819 {"MultiMedia1 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
20820 {"MultiMedia2 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
20821 {"MultiMedia1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20822 {"MultiMedia2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20823 {"MultiMedia1 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20824 {"MultiMedia2 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20825 {"MultiMedia1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20826 {"MultiMedia2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20827 {"MultiMedia1 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20828 {"MultiMedia1 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
20829 {"MultiMedia3 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
20830 {"MultiMedia5 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020831 {"MultiMedia10 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020832 {"MultiMedia1 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
20833 {"MultiMedia3 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
20834 {"MultiMedia5 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020835 {"MultiMedia10 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020836 {"MultiMedia16 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
20837 {"MultiMedia16 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020838 {"MultiMedia1 Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
20839 {"MultiMedia3 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
20840 {"MultiMedia5 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020841 {"MultiMedia10 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020842 {"MultiMedia1 Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
20843 {"MultiMedia3 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
20844 {"MultiMedia5 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020845 {"MultiMedia10 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020846 {"MultiMedia16 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020847 {"MultiMedia1 Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
20848 {"MultiMedia3 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
20849 {"MultiMedia5 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020850 {"MultiMedia2 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20851 {"MultiMedia2 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
20852 {"MultiMedia2 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
20853 {"MultiMedia2 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
20854 {"MultiMedia1 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20855 {"MultiMedia1 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20856 {"MultiMedia2 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20857 {"MultiMedia6 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20858 {"MultiMedia6 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20859 {"MultiMedia3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20860 {"MultiMedia5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020861 {"MultiMedia10 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020862 {"MultiMedia6 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20863 {"MultiMedia3 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20864 {"MultiMedia5 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020865 {"MultiMedia10 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020866 {"MultiMedia16 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020867 {"MultiMedia6 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20868 {"MultiMedia3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20869 {"MultiMedia5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020870 {"MultiMedia10 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020871 {"MultiMedia16 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020872 {"MultiMedia17 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20873 {"MultiMedia18 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20874 {"MultiMedia19 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20875 {"MultiMedia28 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20876 {"MultiMedia29 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020877 {"MultiMedia6 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20878 {"MultiMedia6 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
20879 {"MultiMedia6 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
20880 {"MultiMedia6 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020881 {"MultiMedia6 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020882
20883 {"MultiMedia1 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20884 {"MultiMedia1 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20885 {"MultiMedia1 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20886 {"MultiMedia1 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20887 {"MultiMedia1 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20888 {"MultiMedia1 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20889 {"MultiMedia1 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20890 {"MultiMedia1 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20891 {"MultiMedia1 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20892 {"MultiMedia1 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20893 {"MultiMedia1 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20894 {"MultiMedia1 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20895 {"MultiMedia1 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20896 {"MultiMedia1 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20897 {"MultiMedia1 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20898 {"MultiMedia1 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053020899 {"MultiMedia1 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020900 {"MultiMedia1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20901 {"MultiMedia1 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20902 {"MultiMedia1 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20903 {"MultiMedia1 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020904 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20905 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20906 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20907 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20908 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020909 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20910 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20911 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20912 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20913 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20914 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020915 {"MultiMedia1 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20916 {"MultiMedia1 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020917
20918 {"MultiMedia2 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20919 {"MultiMedia2 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20920 {"MultiMedia2 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20921 {"MultiMedia2 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20922 {"MultiMedia2 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20923 {"MultiMedia2 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20924 {"MultiMedia2 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20925 {"MultiMedia2 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20926 {"MultiMedia2 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20927 {"MultiMedia2 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20928 {"MultiMedia2 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20929 {"MultiMedia2 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20930 {"MultiMedia2 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20931 {"MultiMedia2 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20932 {"MultiMedia2 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20933 {"MultiMedia2 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053020934 {"MultiMedia2 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020935 {"MultiMedia2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20936 {"MultiMedia2 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20937 {"MultiMedia2 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20938 {"MultiMedia2 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020939 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20940 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20941 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20942 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20943 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020944 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20945 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20946 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20947 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20948 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20949 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020950 {"MultiMedia2 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20951 {"MultiMedia2 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020952
20953 {"MultiMedia3 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20954 {"MultiMedia3 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20955 {"MultiMedia3 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20956 {"MultiMedia3 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20957 {"MultiMedia3 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20958 {"MultiMedia3 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20959 {"MultiMedia3 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20960 {"MultiMedia3 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20961 {"MultiMedia3 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20962 {"MultiMedia3 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20963 {"MultiMedia3 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20964 {"MultiMedia3 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20965 {"MultiMedia3 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20966 {"MultiMedia3 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20967 {"MultiMedia3 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20968 {"MultiMedia3 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053020969 {"MultiMedia3 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020970 {"MultiMedia3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20971 {"MultiMedia3 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20972 {"MultiMedia3 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20973 {"MultiMedia3 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020974 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20975 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20976 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20977 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20978 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020979 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20980 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20981 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20982 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20983 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20984 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020985 {"MultiMedia3 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20986 {"MultiMedia3 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020987
20988 {"MultiMedia4 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20989 {"MultiMedia4 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20990 {"MultiMedia4 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20991 {"MultiMedia4 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20992 {"MultiMedia4 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20993 {"MultiMedia4 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20994 {"MultiMedia4 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20995 {"MultiMedia4 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20996 {"MultiMedia4 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20997 {"MultiMedia4 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20998 {"MultiMedia4 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20999 {"MultiMedia4 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21000 {"MultiMedia4 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21001 {"MultiMedia4 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21002 {"MultiMedia4 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21003 {"MultiMedia4 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021004 {"MultiMedia4 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021005 {"MultiMedia4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21006 {"MultiMedia4 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21007 {"MultiMedia4 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21008 {"MultiMedia4 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021009 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21010 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21011 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21012 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21013 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021014 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21015 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21016 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21017 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21018 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21019 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021020 {"MultiMedia4 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21021 {"MultiMedia4 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021022
21023 {"MultiMedia5 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21024 {"MultiMedia5 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21025 {"MultiMedia5 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21026 {"MultiMedia5 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21027 {"MultiMedia5 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21028 {"MultiMedia5 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21029 {"MultiMedia5 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21030 {"MultiMedia5 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21031 {"MultiMedia5 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21032 {"MultiMedia5 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21033 {"MultiMedia5 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21034 {"MultiMedia5 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21035 {"MultiMedia5 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21036 {"MultiMedia5 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21037 {"MultiMedia5 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21038 {"MultiMedia5 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021039 {"MultiMedia5 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021040 {"MultiMedia5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21041 {"MultiMedia5 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21042 {"MultiMedia5 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21043 {"MultiMedia5 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021044 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21045 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21046 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21047 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21048 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021049 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21050 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21051 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21052 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21053 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21054 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021055 {"MultiMedia5 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21056 {"MultiMedia5 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021057
21058 {"MultiMedia6 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21059 {"MultiMedia6 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21060 {"MultiMedia6 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21061 {"MultiMedia6 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21062 {"MultiMedia6 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21063 {"MultiMedia6 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21064 {"MultiMedia6 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21065 {"MultiMedia6 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21066 {"MultiMedia6 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21067 {"MultiMedia6 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21068 {"MultiMedia6 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21069 {"MultiMedia6 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21070 {"MultiMedia6 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21071 {"MultiMedia6 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21072 {"MultiMedia6 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21073 {"MultiMedia6 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021074 {"MultiMedia6 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021075 {"MultiMedia6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21076 {"MultiMedia6 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21077 {"MultiMedia6 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21078 {"MultiMedia6 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021079 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21080 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21081 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21082 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21083 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021084 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21085 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21086 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21087 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21088 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21089 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021090 {"MultiMedia6 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21091 {"MultiMedia6 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021092
21093 {"MultiMedia8 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21094 {"MultiMedia8 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21095 {"MultiMedia8 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21096 {"MultiMedia8 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21097 {"MultiMedia8 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21098 {"MultiMedia8 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21099 {"MultiMedia8 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21100 {"MultiMedia8 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21101 {"MultiMedia8 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21102 {"MultiMedia8 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21103 {"MultiMedia8 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21104 {"MultiMedia8 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21105 {"MultiMedia8 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21106 {"MultiMedia8 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21107 {"MultiMedia8 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21108 {"MultiMedia8 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021109 {"MultiMedia8 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021110 {"MultiMedia8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21111 {"MultiMedia8 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21112 {"MultiMedia8 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21113 {"MultiMedia8 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021114 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21115 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21116 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21117 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21118 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021119 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21120 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21121 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21122 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21123 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21124 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021125 {"MultiMedia8 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21126 {"MultiMedia8 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021127
21128 {"MultiMedia9 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21129 {"MultiMedia9 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21130 {"MultiMedia9 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21131 {"MultiMedia9 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21132 {"MultiMedia9 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21133 {"MultiMedia9 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21134 {"MultiMedia9 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21135 {"MultiMedia9 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021136 {"MultiMedia9 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21137 {"MultiMedia9 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21138 {"MultiMedia9 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21139 {"MultiMedia9 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021140 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21141 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21142 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21143 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21144 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021145 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21146 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21147 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21148 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21149 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21150 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021151 {"MultiMedia9 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21152 {"MultiMedia9 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021153 {"MultiMedia9 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021154
Laxminath Kasam38070be2017-08-17 18:21:59 +053021155 {"MultiMedia10 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21156 {"MultiMedia10 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21157 {"MultiMedia10 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21158 {"MultiMedia10 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21159 {"MultiMedia10 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21160 {"MultiMedia10 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21161 {"MultiMedia10 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21162 {"MultiMedia10 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021163 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21164 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21165 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21166 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21167 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21168 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021169 {"MultiMedia10 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021170
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021171 {"MultiMedia20 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21172 {"MultiMedia20 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21173 {"MultiMedia20 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21174 {"MultiMedia20 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021175 {"MultiMedia20 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021176 {"MultiMedia20 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21177 {"MultiMedia20 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21178 {"MultiMedia20 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21179 {"MultiMedia20 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21180 {"MultiMedia20 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21181 {"MultiMedia20 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21182 {"MultiMedia20 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21183 {"MultiMedia20 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21184 {"MultiMedia20 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21185 {"MultiMedia20 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21186 {"MultiMedia20 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21187 {"MultiMedia20 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21188 {"MultiMedia20 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21189 {"MultiMedia20 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21190 {"MultiMedia20 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21191 {"MultiMedia20 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021192 {"MultiMedia20 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21193 {"MultiMedia20 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21194 {"MultiMedia20 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21195 {"MultiMedia20 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021196 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21197 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21198 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21199 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21200 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021201 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21202 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21203 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21204 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21205 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21206 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021207 {"MultiMedia20 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21208 {"MultiMedia20 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021209 {"MultiMedia20 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021210
Derek Chen07c6d1c2018-07-05 10:39:25 -070021211 {"MultiMedia21 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21212 {"MultiMedia21 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21213 {"MultiMedia21 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21214 {"MultiMedia21 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21215 {"MultiMedia21 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21216 {"MultiMedia21 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21217 {"MultiMedia21 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21218 {"MultiMedia21 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21219 {"MultiMedia21 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21220 {"MultiMedia21 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21221 {"MultiMedia21 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21222 {"MultiMedia21 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21223 {"MultiMedia21 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21224 {"MultiMedia21 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21225 {"MultiMedia21 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21226 {"MultiMedia21 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21227 {"MultiMedia21 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21228 {"MultiMedia21 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21229 {"MultiMedia21 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21230 {"MultiMedia21 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21231 {"MultiMedia21 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21232 {"MultiMedia21 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053021233 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21234 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21235 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21236 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21237 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
21238 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21239 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21240 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21241 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21242 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21243 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
21244 {"MultiMedia21 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21245 {"MultiMedia21 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021246 {"MultiMedia21 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021247
Surendar Karkac1cde372018-08-14 18:56:24 +053021248 {"MultiMedia27 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21249 {"MultiMedia27 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
21250 {"MultiMedia27 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053021251 {"MultiMedia27 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021252 {"MultiMedia27 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21253 {"MultiMedia27 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21254 {"MultiMedia27 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21255 {"MultiMedia27 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21256 {"MultiMedia27 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
21257 {"MultiMedia27 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21258 {"MultiMedia27 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021259 {"MultiMedia27 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021260
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021261 {"MultiMedia1 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21262 {"MultiMedia2 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21263 {"MultiMedia4 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21264 {"MultiMedia5 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21265 {"MultiMedia6 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21266 {"MultiMedia8 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021267 {"MultiMedia10 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021268
Asish Bhattacharya34504582017-08-08 12:55:01 +053021269 {"MultiMedia16 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21270 {"MultiMedia16 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21271 {"MultiMedia16 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21272 {"MultiMedia16 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21273 {"MultiMedia16 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21274 {"MultiMedia16 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21275 {"MultiMedia16 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21276 {"MultiMedia16 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21277 {"MultiMedia16 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21278 {"MultiMedia16 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21279 {"MultiMedia16 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21280 {"MultiMedia16 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21281 {"MultiMedia16 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21282 {"MultiMedia16 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21283 {"MultiMedia16 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21284 {"MultiMedia16 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21285 {"MultiMedia16 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021286 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21287 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21288 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21289 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21290 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021291 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21292 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21293 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21294 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21295 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21296 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021297 {"MultiMedia16 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21298 {"MultiMedia16 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021299 {"MultiMedia16 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021300
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021301 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21302 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21303 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21304 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21305 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21306 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021307 {"MultiMedia17 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021308
21309 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21310 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21311 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21312 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21313 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21314 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021315 {"MultiMedia18 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021316
21317 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21318 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21319 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21320 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21321 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21322 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021323 {"MultiMedia19 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021324
21325 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21326 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21327 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21328 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21329 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21330 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021331 {"MultiMedia28 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021332
21333 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21334 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21335 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21336 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21337 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21338 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021339 {"MultiMedia29 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021340
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021341 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21342 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21343 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21344 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21345 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21346 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21347 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21348 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21349 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21350 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21351 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21352 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21353 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21354 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21355 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21356 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21357 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
21358 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Audio Mixer"},
21359
21360 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21361 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21362 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21363 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21364 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21365 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21366 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21367 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21368 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21369 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21370 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21371 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21372 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21373 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21374 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21375 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21376 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
21377 {"INT_BT_A2DP_RX", NULL, "INTERNAL_A2DP_RX Audio Mixer"},
21378
21379 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21380 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21381 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21382 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21383 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21384 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21385 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21386 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21387 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21388 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21389 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21390 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21391 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21392 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21393 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21394 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21395 {"INT_FM_RX", NULL, "INTERNAL_FM_RX Audio Mixer"},
21396
21397 {"AFE_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21398 {"AFE_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21399 {"AFE_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21400 {"AFE_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21401 {"AFE_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21402 {"AFE_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21403 {"AFE_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21404 {"AFE_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21405 {"AFE_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21406 {"AFE_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21407 {"AFE_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21408 {"AFE_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21409 {"AFE_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21410 {"AFE_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21411 {"AFE_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21412 {"AFE_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21413 {"PCM_RX", NULL, "AFE_PCM_RX Audio Mixer"},
21414
21415 {"MultiMedia1 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21416 {"MultiMedia3 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21417 {"MultiMedia4 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021418 {"MultiMedia10 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021419 {"MultiMedia17 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21420 {"MultiMedia18 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21421 {"MultiMedia19 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021422 {"MultiMedia28 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21423 {"MultiMedia29 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021424 {"MultiMedia5 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21425 {"MultiMedia8 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021426 {"MultiMedia16 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021427 {"MultiMedia1 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21428 {"MultiMedia4 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021429 {"MultiMedia16 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021430 {"MultiMedia17 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21431 {"MultiMedia18 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21432 {"MultiMedia19 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021433 {"MultiMedia28 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21434 {"MultiMedia29 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021435 {"MultiMedia5 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21436 {"MultiMedia6 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21437 {"MultiMedia8 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21438
21439 {"MultiMedia1 Mixer", "AFE_PCM_TX", "PCM_TX"},
21440 {"MultiMedia3 Mixer", "AFE_PCM_TX", "PCM_TX"},
21441 {"MultiMedia4 Mixer", "AFE_PCM_TX", "PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021442 {"MultiMedia10 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021443 {"MultiMedia17 Mixer", "AFE_PCM_TX", "PCM_TX"},
21444 {"MultiMedia18 Mixer", "AFE_PCM_TX", "PCM_TX"},
21445 {"MultiMedia19 Mixer", "AFE_PCM_TX", "PCM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021446 {"MultiMedia28 Mixer", "AFE_PCM_TX", "PCM_TX"},
21447 {"MultiMedia29 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021448 {"MultiMedia5 Mixer", "AFE_PCM_TX", "PCM_TX"},
21449 {"MultiMedia8 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021450 {"MultiMedia16 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021451 {"MM_UL1", NULL, "MultiMedia1 Mixer"},
21452 {"MultiMedia2 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21453 {"MM_UL2", NULL, "MultiMedia2 Mixer"},
21454 {"MM_UL3", NULL, "MultiMedia3 Mixer"},
21455 {"MM_UL4", NULL, "MultiMedia4 Mixer"},
21456 {"MM_UL5", NULL, "MultiMedia5 Mixer"},
21457 {"MM_UL6", NULL, "MultiMedia6 Mixer"},
21458 {"MM_UL8", NULL, "MultiMedia8 Mixer"},
21459 {"MM_UL9", NULL, "MultiMedia9 Mixer"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021460 {"MM_UL10", NULL, "MultiMedia10 Mixer"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021461 {"MM_UL16", NULL, "MultiMedia16 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021462 {"MM_UL17", NULL, "MultiMedia17 Mixer"},
21463 {"MM_UL18", NULL, "MultiMedia18 Mixer"},
21464 {"MM_UL19", NULL, "MultiMedia19 Mixer"},
21465 {"MM_UL20", NULL, "MultiMedia20 Mixer"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021466 {"MM_UL21", NULL, "MultiMedia21 Mixer"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021467 {"MM_UL27", NULL, "MultiMedia27 Mixer"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021468 {"MM_UL28", NULL, "MultiMedia28 Mixer"},
21469 {"MM_UL29", NULL, "MultiMedia29 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021470
21471 {"AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21472 {"AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21473 {"AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21474 {"AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21475 {"AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21476 {"AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21477 {"AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21478 {"AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21479 {"AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21480 {"AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21481 {"AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21482 {"AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21483 {"AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21484 {"AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21485 {"AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21486 {"AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021487 {"AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021488 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Audio Mixer"},
21489
21490 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21491 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21492 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21493 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21494 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21495 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21496 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21497 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21498 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21499 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21500 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21501 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21502 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21503 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21504 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21505 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021506 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021507 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX Audio Mixer"},
21508
21509 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21510 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21511 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21512 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21513 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21514 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21515 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21516 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21517 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21518 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21519 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21520 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21521 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21522 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21523 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21524 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21525 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX Audio Mixer"},
21526
21527 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21528 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21529 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21530 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21531 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21532 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21533 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21534 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21535 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21536 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21537 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21538 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21539 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21540 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21541 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21542 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21543 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX Audio Mixer"},
21544
Rohit Kumara5077932017-09-10 22:05:05 +053021545 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21546 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21547 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21548 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21549 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21550 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21551 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21552 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21553 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21554 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21555 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21556 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21557 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21558 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21559 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21560 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21561 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX Audio Mixer"},
21562
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021563 {"PRI_RX_Voice Mixer", "Voip", "VOIP_DL"},
21564 {"PRI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21565 {"PRI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21566 {"PRI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21567 {"PRI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21568 {"PRI_I2S_RX", NULL, "PRI_RX_Voice Mixer"},
21569
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021570 {"SEC_RX_Voice Mixer", "Voip", "VOIP_DL"},
21571 {"SEC_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21572 {"SEC_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21573 {"SEC_I2S_RX", NULL, "SEC_RX_Voice Mixer"},
21574
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021575 {"SEC_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
21576 {"SEC_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21577 {"SEC_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21578 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21579 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21580 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_Voice Mixer"},
21581
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021582 {"SLIM_0_RX_Voice Mixer", "Voip", "VOIP_DL"},
21583 {"SLIM_0_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021584 {"SLIM_0_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21585 {"SLIM_0_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21586 {"SLIM_0_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21587 {"SLIMBUS_0_RX", NULL, "SLIM_0_RX_Voice Mixer"},
21588
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021589 {"SLIM_6_RX_Voice Mixer", "Voip", "VOIP_DL"},
21590 {"SLIM_6_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021591 {"SLIM_6_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21592 {"SLIM_6_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21593 {"SLIM_6_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21594 {"SLIMBUS_6_RX", NULL, "SLIM_6_RX_Voice Mixer"},
21595
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021596 {"USB_AUDIO_RX_Voice Mixer", "Voip", "VOIP_DL"},
21597 {"USB_AUDIO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021598 {"USB_AUDIO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21599 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21600 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21601 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX_Voice Mixer"},
21602
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080021603 {"DISPLAY_PORT_RX_Voice Mixer", "Voip", "VOIP_DL"},
21604 {"DISPLAY_PORT_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080021605 {"DISPLAY_PORT_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21606 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21607 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21608 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX_Voice Mixer"},
21609
Karthikeyan Mani57550082018-05-03 18:43:58 -070021610 {"DISPLAY_PORT_RX1_Voice Mixer", "Voip", "VOIP_DL"},
21611 {"DISPLAY_PORT_RX1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21612 {"DISPLAY_PORT_RX1_Voice Mixer", "QCHAT", "QCHAT_DL"},
21613 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21614 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21615 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1_Voice Mixer"},
21616
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021617 {"INTERNAL_BT_SCO_RX_Voice Mixer", "Voip", "VOIP_DL"},
21618 {"INTERNAL_BT_SCO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21619 {"INTERNAL_BT_SCO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21620 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21621 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021622 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX_Voice Mixer"},
21623
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021624 {"AFE_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21625 {"AFE_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21626 {"AFE_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21627 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21628 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21629 {"PCM_RX", NULL, "AFE_PCM_RX_Voice Mixer"},
21630
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021631 {"AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21632 {"AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021633 {"AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21634 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21635 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21636 {"AUX_PCM_RX", NULL, "AUX_PCM_RX_Voice Mixer"},
21637
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021638 {"SEC_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21639 {"SEC_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021640 {"SEC_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21641 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21642 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21643 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX_Voice Mixer"},
21644
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021645 {"TERT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21646 {"TERT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021647 {"TERT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21648 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21649 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21650 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX_Voice Mixer"},
21651
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021652 {"QUAT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21653 {"QUAT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021654 {"QUAT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21655 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21656 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21657 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX_Voice Mixer"},
21658
Rohit Kumara5077932017-09-10 22:05:05 +053021659 {"QUIN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21660 {"QUIN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053021661 {"QUIN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21662 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21663 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21664 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX_Voice Mixer"},
21665
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021666 {"HDMI_RX_Voice Mixer", "Voip", "VOIP_DL"},
21667 {"HDMI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21668 {"HDMI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21669 {"HDMI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21670 {"HDMI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21671 {"HDMI", NULL, "HDMI_RX_Voice Mixer"},
21672 {"HDMI", NULL, "HDMI_DL_HL"},
21673
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021674 {"MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021675 {"MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21676 {"MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21677 {"MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
kunleiz8a60b822017-10-11 15:04:02 +080021678 {"MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021679 {"MI2S_RX", NULL, "MI2S_RX_Voice Mixer"},
21680
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021681 {"PRI_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021682 {"PRI_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21683 {"PRI_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21684 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21685 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21686 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_Voice Mixer"},
21687
21688 {"INT0_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
21689 {"INT0_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21690 {"INT0_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21691 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21692 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21693 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_Voice Mixer"},
21694
21695 {"INT4_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
21696 {"INT4_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21697 {"INT4_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21698 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21699 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21700 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_Voice Mixer"},
21701
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021702 {"TERT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021703 {"TERT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21704 {"TERT_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21705 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21706 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21707 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_Voice Mixer"},
21708
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021709 {"QUAT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021710 {"QUAT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21711 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21712 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21713 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_Voice Mixer"},
21714
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021715 {"QUIN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021716 {"QUIN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21717 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21718 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21719 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_Voice Mixer"},
21720
21721 {"QUAT_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21722 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_Voice Mixer"},
21723
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053021724 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21725 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21726 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_Voice Mixer"},
21727
21728 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21729 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21730 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_Voice Mixer"},
21731
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021732 {"VOC_EXT_EC MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21733 {"VOC_EXT_EC MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21734 {"VOC_EXT_EC MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21735 {"VOC_EXT_EC MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021736 {"VOC_EXT_EC MUX", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021737 {"VOC_EXT_EC MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
Karthikeyan Mania1eb9382018-07-25 10:52:58 -070021738 {"VOC_EXT_EC MUX", "SEC_TDM_TX", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021739 {"VOIP_UL", NULL, "VOC_EXT_EC MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021740 {"VOICEMMODE1_UL", NULL, "VOC_EXT_EC MUX"},
21741 {"VOICEMMODE2_UL", NULL, "VOC_EXT_EC MUX"},
21742
21743 {"AUDIO_REF_EC_UL1 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21744 {"AUDIO_REF_EC_UL1 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21745 {"AUDIO_REF_EC_UL1 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21746 {"AUDIO_REF_EC_UL1 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21747 {"AUDIO_REF_EC_UL1 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
21748 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21749 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
21750 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
21751 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
21752 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070021753 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
21754 {"AUDIO_REF_EC_UL1 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021755
21756 {"AUDIO_REF_EC_UL2 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21757 {"AUDIO_REF_EC_UL2 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21758 {"AUDIO_REF_EC_UL2 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21759 {"AUDIO_REF_EC_UL2 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21760
21761 {"AUDIO_REF_EC_UL3 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21762 {"AUDIO_REF_EC_UL3 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21763 {"AUDIO_REF_EC_UL3 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21764 {"AUDIO_REF_EC_UL3 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21765
21766 {"AUDIO_REF_EC_UL4 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21767 {"AUDIO_REF_EC_UL4 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21768 {"AUDIO_REF_EC_UL4 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21769 {"AUDIO_REF_EC_UL4 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21770
21771 {"AUDIO_REF_EC_UL5 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21772 {"AUDIO_REF_EC_UL5 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21773 {"AUDIO_REF_EC_UL5 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21774 {"AUDIO_REF_EC_UL5 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21775
21776 {"AUDIO_REF_EC_UL6 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21777 {"AUDIO_REF_EC_UL6 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21778 {"AUDIO_REF_EC_UL6 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21779 {"AUDIO_REF_EC_UL6 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21780
21781 {"AUDIO_REF_EC_UL8 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21782 {"AUDIO_REF_EC_UL8 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21783 {"AUDIO_REF_EC_UL8 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21784 {"AUDIO_REF_EC_UL8 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21785
21786 {"AUDIO_REF_EC_UL9 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21787 {"AUDIO_REF_EC_UL9 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21788 {"AUDIO_REF_EC_UL9 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21789 {"AUDIO_REF_EC_UL9 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21790
Laxminath Kasam38070be2017-08-17 18:21:59 +053021791 {"AUDIO_REF_EC_UL10 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21792 {"AUDIO_REF_EC_UL10 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21793 {"AUDIO_REF_EC_UL10 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21794 {"AUDIO_REF_EC_UL10 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21795 {"AUDIO_REF_EC_UL10 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
21796 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21797 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
21798 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
21799 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
21800 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070021801 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
21802 {"AUDIO_REF_EC_UL10 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Vikram Panduranga016c49f2017-09-11 15:15:56 -070021803
21804 {"AUDIO_REF_EC_UL16 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21805 {"AUDIO_REF_EC_UL16 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21806 {"AUDIO_REF_EC_UL16 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21807 {"AUDIO_REF_EC_UL16 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21808
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021809 {"AUDIO_REF_EC_UL17 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21810 {"AUDIO_REF_EC_UL17 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21811 {"AUDIO_REF_EC_UL17 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21812 {"AUDIO_REF_EC_UL17 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21813
21814 {"AUDIO_REF_EC_UL18 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21815 {"AUDIO_REF_EC_UL18 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21816 {"AUDIO_REF_EC_UL18 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21817 {"AUDIO_REF_EC_UL18 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21818
21819 {"AUDIO_REF_EC_UL19 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21820 {"AUDIO_REF_EC_UL19 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21821 {"AUDIO_REF_EC_UL19 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21822 {"AUDIO_REF_EC_UL19 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21823
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021824 {"AUDIO_REF_EC_UL28 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21825 {"AUDIO_REF_EC_UL28 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21826 {"AUDIO_REF_EC_UL28 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21827 {"AUDIO_REF_EC_UL28 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21828
21829 {"AUDIO_REF_EC_UL29 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21830 {"AUDIO_REF_EC_UL29 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21831 {"AUDIO_REF_EC_UL29 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21832 {"AUDIO_REF_EC_UL29 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Yunfei Zhang3efc4a22017-11-07 16:30:13 +080021833
21834 {"LSM1_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21835 {"LSM2_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21836 {"LSM3_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21837 {"LSM4_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21838 {"LSM5_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21839 {"LSM6_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21840 {"LSM7_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21841 {"LSM8_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21842
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021843 {"MM_UL1", NULL, "AUDIO_REF_EC_UL1 MUX"},
21844 {"MM_UL2", NULL, "AUDIO_REF_EC_UL2 MUX"},
21845 {"MM_UL3", NULL, "AUDIO_REF_EC_UL3 MUX"},
21846 {"MM_UL4", NULL, "AUDIO_REF_EC_UL4 MUX"},
21847 {"MM_UL5", NULL, "AUDIO_REF_EC_UL5 MUX"},
21848 {"MM_UL6", NULL, "AUDIO_REF_EC_UL6 MUX"},
21849 {"MM_UL8", NULL, "AUDIO_REF_EC_UL8 MUX"},
21850 {"MM_UL9", NULL, "AUDIO_REF_EC_UL9 MUX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021851 {"MM_UL10", NULL, "AUDIO_REF_EC_UL10 MUX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021852 {"MM_UL16", NULL, "AUDIO_REF_EC_UL16 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021853 {"MM_UL17", NULL, "AUDIO_REF_EC_UL17 MUX"},
21854 {"MM_UL18", NULL, "AUDIO_REF_EC_UL18 MUX"},
21855 {"MM_UL19", NULL, "AUDIO_REF_EC_UL19 MUX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021856 {"MM_UL28", NULL, "AUDIO_REF_EC_UL28 MUX"},
21857 {"MM_UL29", NULL, "AUDIO_REF_EC_UL29 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021858
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021859 {"VoiceMMode1_Tx Mixer", "PRI_TX_MMode1", "PRI_I2S_TX"},
21860 {"VoiceMMode1_Tx Mixer", "PRI_MI2S_TX_MMode1", "PRI_MI2S_TX"},
21861 {"VoiceMMode1_Tx Mixer", "MI2S_TX_MMode1", "MI2S_TX"},
21862 {"VoiceMMode1_Tx Mixer", "TERT_MI2S_TX_MMode1", "TERT_MI2S_TX"},
21863 {"VoiceMMode1_Tx Mixer", "INT3_MI2S_TX_MMode1", "INT3_MI2S_TX"},
21864 {"VoiceMMode1_Tx Mixer", "SLIM_0_TX_MMode1", "SLIMBUS_0_TX"},
21865 {"VoiceMMode1_Tx Mixer", "SLIM_7_TX_MMode1", "SLIMBUS_7_TX"},
21866 {"VoiceMMode1_Tx Mixer", "SLIM_8_TX_MMode1", "SLIMBUS_8_TX"},
21867 {"VoiceMMode1_Tx Mixer", "USB_AUDIO_TX_MMode1", "USB_AUDIO_TX"},
21868 {"VoiceMMode1_Tx Mixer", "INT_BT_SCO_TX_MMode1", "INT_BT_SCO_TX"},
21869 {"VoiceMMode1_Tx Mixer", "AFE_PCM_TX_MMode1", "PCM_TX"},
21870 {"VoiceMMode1_Tx Mixer", "AUX_PCM_TX_MMode1", "AUX_PCM_TX"},
21871 {"VoiceMMode1_Tx Mixer", "SEC_AUX_PCM_TX_MMode1", "SEC_AUX_PCM_TX"},
21872 {"VoiceMMode1_Tx Mixer", "TERT_AUX_PCM_TX_MMode1", "TERT_AUX_PCM_TX"},
21873 {"VoiceMMode1_Tx Mixer", "QUAT_AUX_PCM_TX_MMode1", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021874 {"VoiceMMode1_Tx Mixer", "QUIN_AUX_PCM_TX_MMode1", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021875 {"VoiceMMode1_Tx Mixer", "QUAT_TDM_TX_0_MMode1", "QUAT_TDM_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053021876 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_0_MMode1", "TX_CDC_DMA_TX_0"},
21877 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_1_MMode1", "TX_CDC_DMA_TX_1"},
21878 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_2_MMode1", "TX_CDC_DMA_TX_2"},
21879 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_3_MMode1", "TX_CDC_DMA_TX_3"},
21880 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_4_MMode1", "TX_CDC_DMA_TX_4"},
21881 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_5_MMode1", "TX_CDC_DMA_TX_5"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021882 {"VOICEMMODE1_UL", NULL, "VoiceMMode1_Tx Mixer"},
21883
21884 {"VoiceMMode2_Tx Mixer", "PRI_TX_MMode2", "PRI_I2S_TX"},
21885 {"VoiceMMode2_Tx Mixer", "PRI_MI2S_TX_MMode2", "PRI_MI2S_TX"},
21886 {"VoiceMMode2_Tx Mixer", "MI2S_TX_MMode2", "MI2S_TX"},
21887 {"VoiceMMode2_Tx Mixer", "TERT_MI2S_TX_MMode2", "TERT_MI2S_TX"},
21888 {"VoiceMMode2_Tx Mixer", "INT3_MI2S_TX_MMode2", "INT3_MI2S_TX"},
21889 {"VoiceMMode2_Tx Mixer", "SLIM_0_TX_MMode2", "SLIMBUS_0_TX"},
21890 {"VoiceMMode2_Tx Mixer", "SLIM_7_TX_MMode2", "SLIMBUS_7_TX"},
21891 {"VoiceMMode2_Tx Mixer", "SLIM_8_TX_MMode2", "SLIMBUS_8_TX"},
21892 {"VoiceMMode2_Tx Mixer", "USB_AUDIO_TX_MMode2", "USB_AUDIO_TX"},
21893 {"VoiceMMode2_Tx Mixer", "INT_BT_SCO_TX_MMode2", "INT_BT_SCO_TX"},
21894 {"VoiceMMode2_Tx Mixer", "AFE_PCM_TX_MMode2", "PCM_TX"},
21895 {"VoiceMMode2_Tx Mixer", "AUX_PCM_TX_MMode2", "AUX_PCM_TX"},
21896 {"VoiceMMode2_Tx Mixer", "SEC_AUX_PCM_TX_MMode2", "SEC_AUX_PCM_TX"},
21897 {"VoiceMMode2_Tx Mixer", "TERT_AUX_PCM_TX_MMode2", "TERT_AUX_PCM_TX"},
21898 {"VoiceMMode2_Tx Mixer", "QUAT_AUX_PCM_TX_MMode2", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021899 {"VoiceMMode2_Tx Mixer", "QUIN_AUX_PCM_TX_MMode2", "QUIN_AUX_PCM_TX"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053021900 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_0_MMode2", "TX_CDC_DMA_TX_0"},
21901 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_1_MMode2", "TX_CDC_DMA_TX_1"},
21902 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_2_MMode2", "TX_CDC_DMA_TX_2"},
21903 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_3_MMode2", "TX_CDC_DMA_TX_3"},
21904 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_4_MMode2", "TX_CDC_DMA_TX_4"},
21905 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_5_MMode2", "TX_CDC_DMA_TX_5"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021906 {"VOICEMMODE2_UL", NULL, "VoiceMMode2_Tx Mixer"},
21907
21908 {"Voip_Tx Mixer", "PRI_TX_Voip", "PRI_I2S_TX"},
21909 {"Voip_Tx Mixer", "MI2S_TX_Voip", "MI2S_TX"},
21910 {"Voip_Tx Mixer", "TERT_MI2S_TX_Voip", "TERT_MI2S_TX"},
21911 {"Voip_Tx Mixer", "INT3_MI2S_TX_Voip", "INT3_MI2S_TX"},
21912 {"Voip_Tx Mixer", "SLIM_0_TX_Voip", "SLIMBUS_0_TX"},
21913 {"Voip_Tx Mixer", "SLIM_7_TX_Voip", "SLIMBUS_7_TX"},
21914 {"Voip_Tx Mixer", "SLIM_8_TX_Voip", "SLIMBUS_8_TX"},
21915 {"Voip_Tx Mixer", "USB_AUDIO_TX_Voip", "USB_AUDIO_TX"},
21916 {"Voip_Tx Mixer", "INTERNAL_BT_SCO_TX_Voip", "INT_BT_SCO_TX"},
21917 {"Voip_Tx Mixer", "AFE_PCM_TX_Voip", "PCM_TX"},
21918 {"Voip_Tx Mixer", "AUX_PCM_TX_Voip", "AUX_PCM_TX"},
21919 {"Voip_Tx Mixer", "SEC_AUX_PCM_TX_Voip", "SEC_AUX_PCM_TX"},
21920 {"Voip_Tx Mixer", "TERT_AUX_PCM_TX_Voip", "TERT_AUX_PCM_TX"},
21921 {"Voip_Tx Mixer", "QUAT_AUX_PCM_TX_Voip", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021922 {"Voip_Tx Mixer", "QUIN_AUX_PCM_TX_Voip", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021923 {"Voip_Tx Mixer", "PRI_MI2S_TX_Voip", "PRI_MI2S_TX"},
21924 {"VOIP_UL", NULL, "Voip_Tx Mixer"},
21925
21926 {"SLIMBUS_DL_HL", "Switch", "SLIM0_DL_HL"},
21927 {"SLIMBUS_0_RX", NULL, "SLIMBUS_DL_HL"},
21928 {"SLIMBUS1_DL_HL", "Switch", "SLIM1_DL_HL"},
21929 {"SLIMBUS_1_RX", NULL, "SLIMBUS1_DL_HL"},
21930 {"SLIMBUS3_DL_HL", "Switch", "SLIM3_DL_HL"},
21931 {"SLIMBUS_3_RX", NULL, "SLIMBUS3_DL_HL"},
21932 {"SLIMBUS4_DL_HL", "Switch", "SLIM4_DL_HL"},
21933 {"SLIMBUS_4_RX", NULL, "SLIMBUS4_DL_HL"},
21934 {"SLIMBUS6_DL_HL", "Switch", "SLIM0_DL_HL"},
21935 {"SLIMBUS_6_RX", NULL, "SLIMBUS6_DL_HL"},
21936 {"SLIM0_UL_HL", NULL, "SLIMBUS_0_TX"},
21937 {"SLIM1_UL_HL", NULL, "SLIMBUS_1_TX"},
21938 {"SLIM3_UL_HL", NULL, "SLIMBUS_3_TX"},
21939 {"SLIM4_UL_HL", NULL, "SLIMBUS_4_TX"},
21940 {"SLIM8_UL_HL", NULL, "SLIMBUS_8_TX"},
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053021941 {"WSA_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
21942 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_DL_HL"},
21943 {"CDC_DMA_UL_HL", NULL, "VA_CDC_DMA_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053021944 {"RX_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
21945 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_DL_HL"},
21946 {"TX3_CDC_DMA_UL_HL", NULL, "TX_CDC_DMA_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021947 {"LSM1 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21948 {"LSM1 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21949 {"LSM1 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21950 {"LSM1 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21951 {"LSM1 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21952 {"LSM1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21953 {"LSM1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21954 {"LSM1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021955 {"LSM1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21956 {"LSM1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021957 {"LSM1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021958 {"LSM1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021959 {"LSM1_UL_HL", NULL, "LSM1 Mixer"},
21960
21961 {"LSM2 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21962 {"LSM2 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21963 {"LSM2 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21964 {"LSM2 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21965 {"LSM2 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21966 {"LSM2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21967 {"LSM2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21968 {"LSM2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021969 {"LSM2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21970 {"LSM2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021971 {"LSM2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021972 {"LSM2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021973 {"LSM2_UL_HL", NULL, "LSM2 Mixer"},
21974
21975
21976 {"LSM3 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21977 {"LSM3 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21978 {"LSM3 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21979 {"LSM3 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21980 {"LSM3 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21981 {"LSM3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21982 {"LSM3 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21983 {"LSM3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021984 {"LSM3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21985 {"LSM3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021986 {"LSM3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021987 {"LSM3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021988 {"LSM3_UL_HL", NULL, "LSM3 Mixer"},
21989
21990
21991 {"LSM4 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21992 {"LSM4 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21993 {"LSM4 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21994 {"LSM4 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21995 {"LSM4 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21996 {"LSM4 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21997 {"LSM4 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21998 {"LSM4 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021999 {"LSM4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22000 {"LSM4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022001 {"LSM4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022002 {"LSM4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022003 {"LSM4_UL_HL", NULL, "LSM4 Mixer"},
22004
22005 {"LSM5 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22006 {"LSM5 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22007 {"LSM5 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22008 {"LSM5 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22009 {"LSM5 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22010 {"LSM5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22011 {"LSM5 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22012 {"LSM5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022013 {"LSM5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22014 {"LSM5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022015 {"LSM5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022016 {"LSM5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022017 {"LSM5_UL_HL", NULL, "LSM5 Mixer"},
22018
22019 {"LSM6 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22020 {"LSM6 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22021 {"LSM6 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22022 {"LSM6 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22023 {"LSM6 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22024 {"LSM6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022025 {"LSM6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22026 {"LSM6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022027 {"LSM6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022028 {"LSM6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022029 {"LSM6_UL_HL", NULL, "LSM6 Mixer"},
22030
22031 {"LSM7 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22032 {"LSM7 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22033 {"LSM7 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22034 {"LSM7 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22035 {"LSM7 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22036 {"LSM7 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022037 {"LSM7 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22038 {"LSM7 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022039 {"LSM7 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022040 {"LSM7 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022041 {"LSM7_UL_HL", NULL, "LSM7 Mixer"},
22042
22043 {"LSM8 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22044 {"LSM8 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22045 {"LSM8 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22046 {"LSM8 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22047 {"LSM8 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22048 {"LSM8 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022049 {"LSM8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22050 {"LSM8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022051 {"LSM8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022052 {"LSM8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022053 {"LSM8_UL_HL", NULL, "LSM8 Mixer"},
22054
22055
22056 {"CPE_LSM_UL_HL", NULL, "BE_IN"},
22057 {"QCHAT_Tx Mixer", "PRI_TX_QCHAT", "PRI_I2S_TX"},
22058 {"QCHAT_Tx Mixer", "SLIM_0_TX_QCHAT", "SLIMBUS_0_TX"},
22059 {"QCHAT_Tx Mixer", "SLIM_7_TX_QCHAT", "SLIMBUS_7_TX"},
22060 {"QCHAT_Tx Mixer", "SLIM_8_TX_QCHAT", "SLIMBUS_8_TX"},
22061 {"QCHAT_Tx Mixer", "INTERNAL_BT_SCO_TX_QCHAT", "INT_BT_SCO_TX"},
22062 {"QCHAT_Tx Mixer", "AFE_PCM_TX_QCHAT", "PCM_TX"},
22063 {"QCHAT_Tx Mixer", "AUX_PCM_TX_QCHAT", "AUX_PCM_TX"},
22064 {"QCHAT_Tx Mixer", "SEC_AUX_PCM_TX_QCHAT", "SEC_AUX_PCM_TX"},
22065 {"QCHAT_Tx Mixer", "TERT_AUX_PCM_TX_QCHAT", "TERT_AUX_PCM_TX"},
22066 {"QCHAT_Tx Mixer", "QUAT_AUX_PCM_TX_QCHAT", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022067 {"QCHAT_Tx Mixer", "QUIN_AUX_PCM_TX_QCHAT", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022068 {"QCHAT_Tx Mixer", "MI2S_TX_QCHAT", "MI2S_TX"},
22069 {"QCHAT_Tx Mixer", "PRI_MI2S_TX_QCHAT", "PRI_MI2S_TX"},
22070 {"QCHAT_Tx Mixer", "TERT_MI2S_TX_QCHAT", "TERT_MI2S_TX"},
22071 {"QCHAT_Tx Mixer", "INT3_MI2S_TX_QCHAT", "INT3_MI2S_TX"},
22072 {"QCHAT_Tx Mixer", "USB_AUDIO_TX_QCHAT", "USB_AUDIO_TX"},
22073 {"QCHAT_UL", NULL, "QCHAT_Tx Mixer"},
22074
22075 {"INT_FM_RX", NULL, "INTFM_DL_HL"},
22076 {"INTFM_UL_HL", NULL, "INT_FM_TX"},
22077 {"INTHFP_UL_HL", NULL, "HFP_PRI_AUX_UL_HL"},
22078 {"HFP_PRI_AUX_UL_HL", "Switch", "AUX_PCM_TX"},
22079 {"INTHFP_UL_HL", NULL, "HFP_AUX_UL_HL"},
22080 {"HFP_AUX_UL_HL", "Switch", "SEC_AUX_PCM_TX"},
22081 {"INTHFP_UL_HL", NULL, "HFP_INT_UL_HL"},
22082 {"HFP_INT_UL_HL", "Switch", "INT_BT_SCO_TX"},
22083 {"SLIM7_UL_HL", NULL, "HFP_SLIM7_UL_HL"},
22084 {"HFP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
22085 {"AUX_PCM_RX", NULL, "AUXPCM_DL_HL"},
22086 {"AUX_PCM_RX", NULL, "INTHFP_DL_HL"},
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080022087 {"SLIM7_UL_HL", NULL, "A2DP_SLIM7_UL_HL"},
22088 {"A2DP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022089 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022090 {"AUXPCM_UL_HL", NULL, "AUX_PCM_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022091 {"SEC_AUXPCM_UL_HL", NULL, "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022092 {"MI2S_RX", NULL, "MI2S_DL_HL"},
22093 {"MI2S_UL_HL", NULL, "MI2S_TX"},
22094 {"PCM_RX_DL_HL", "Switch", "SLIM0_DL_HL"},
22095 {"PCM_RX", NULL, "PCM_RX_DL_HL"},
22096
22097 /* connect to INT4_MI2S_DL_HL since same pcm_id */
22098 {"INT0_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
22099 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_DL_HL"},
22100 {"INT4_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
22101 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_DL_HL"},
22102 {"PRI_MI2S_RX_DL_HL", "Switch", "PRI_MI2S_DL_HL"},
22103 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_DL_HL"},
22104 {"SEC_MI2S_RX_DL_HL", "Switch", "SEC_MI2S_DL_HL"},
22105 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_DL_HL"},
22106 {"TERT_MI2S_RX_DL_HL", "Switch", "TERT_MI2S_DL_HL"},
22107 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_DL_HL"},
22108
22109 {"QUAT_MI2S_RX_DL_HL", "Switch", "QUAT_MI2S_DL_HL"},
22110 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053022111 {"QUIN_MI2S_RX_DL_HL", "Switch", "QUIN_MI2S_DL_HL"},
22112 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022113 {"MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
22114 {"INT3_MI2S_UL_HL", NULL, "INT3_MI2S_TX"},
22115 {"TERT_MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
22116 {"SEC_I2S_RX", NULL, "SEC_I2S_DL_HL"},
22117 {"PRI_MI2S_UL_HL", NULL, "PRI_MI2S_TX"},
22118 {"SEC_MI2S_UL_HL", NULL, "SEC_MI2S_TX"},
22119 {"SEC_MI2S_RX", NULL, "SEC_MI2S_DL_HL"},
22120 {"PRI_MI2S_RX", NULL, "PRI_MI2S_DL_HL"},
22121 {"TERT_MI2S_RX", NULL, "TERT_MI2S_DL_HL"},
22122 {"QUAT_MI2S_UL_HL", NULL, "QUAT_MI2S_TX"},
22123
22124 {"PRI_TDM_TX_0_UL_HL", NULL, "PRI_TDM_TX_0"},
22125 {"PRI_TDM_TX_1_UL_HL", NULL, "PRI_TDM_TX_1"},
22126 {"PRI_TDM_TX_2_UL_HL", NULL, "PRI_TDM_TX_2"},
22127 {"PRI_TDM_TX_3_UL_HL", NULL, "PRI_TDM_TX_3"},
22128 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_DL_HL"},
22129 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_DL_HL"},
22130 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_DL_HL"},
22131 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_DL_HL"},
22132 {"SEC_TDM_TX_0_UL_HL", NULL, "SEC_TDM_TX_0"},
22133 {"SEC_TDM_TX_1_UL_HL", NULL, "SEC_TDM_TX_1"},
22134 {"SEC_TDM_TX_2_UL_HL", NULL, "SEC_TDM_TX_2"},
22135 {"SEC_TDM_TX_3_UL_HL", NULL, "SEC_TDM_TX_3"},
22136 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0_DL_HL"},
22137 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1_DL_HL"},
22138 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2_DL_HL"},
22139 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3_DL_HL"},
Derek Chenfdcc0982018-10-02 15:14:03 -070022140 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022141 {"TERT_TDM_TX_0_UL_HL", NULL, "TERT_TDM_TX_0"},
22142 {"TERT_TDM_TX_1_UL_HL", NULL, "TERT_TDM_TX_1"},
22143 {"TERT_TDM_TX_2_UL_HL", NULL, "TERT_TDM_TX_2"},
22144 {"TERT_TDM_TX_3_UL_HL", NULL, "TERT_TDM_TX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070022145 {"TERT_TDM_TX_7_UL_HL", NULL, "TERT_TDM_TX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022146 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0_DL_HL"},
22147 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1_DL_HL"},
22148 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2_DL_HL"},
22149 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3_DL_HL"},
22150 {"QUAT_TDM_TX_0_UL_HL", NULL, "QUAT_TDM_TX_0"},
22151 {"QUAT_TDM_TX_1_UL_HL", NULL, "QUAT_TDM_TX_1"},
22152 {"QUAT_TDM_TX_2_UL_HL", NULL, "QUAT_TDM_TX_2"},
22153 {"QUAT_TDM_TX_3_UL_HL", NULL, "QUAT_TDM_TX_3"},
22154 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0_DL_HL"},
22155 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1_DL_HL"},
22156 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_DL_HL"},
22157 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053022158 {"QUIN_TDM_TX_0_UL_HL", NULL, "QUIN_TDM_TX_0"},
22159 {"QUIN_TDM_TX_1_UL_HL", NULL, "QUIN_TDM_TX_1"},
22160 {"QUIN_TDM_TX_2_UL_HL", NULL, "QUIN_TDM_TX_2"},
22161 {"QUIN_TDM_TX_3_UL_HL", NULL, "QUIN_TDM_TX_3"},
22162 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0_DL_HL"},
22163 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1_DL_HL"},
22164 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2_DL_HL"},
22165 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022166
22167 {"PRI_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22168 {"PRI_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22169 {"PRI_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22170 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22171 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22172 {"PRI_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22173 {"PRI_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22174 {"PRI_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22175 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22176 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22177 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22178 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22179 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22180 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22181 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22182 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022183 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22184 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22185 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22186 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022187 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Port Mixer"},
22188
22189 {"PRI_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22190 {"PRI_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22191 {"PRI_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22192 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22193 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22194 {"PRI_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22195 {"PRI_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22196 {"PRI_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22197 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22198 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22199 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22200 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22201 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22202 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22203 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22204 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022205 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22206 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22207 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22208 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022209 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Port Mixer"},
22210
22211 {"PRI_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22212 {"PRI_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22213 {"PRI_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22214 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22215 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22216 {"PRI_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22217 {"PRI_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22218 {"PRI_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22219 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22220 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22221 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22222 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22223 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22224 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22225 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22226 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022227 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22228 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22229 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22230 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022231 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Port Mixer"},
22232
22233 {"PRI_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22234 {"PRI_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22235 {"PRI_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22236 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22237 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22238 {"PRI_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22239 {"PRI_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22240 {"PRI_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22241 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22242 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22243 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22244 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22245 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22246 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22247 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22248 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022249 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22250 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22251 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22252 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022253 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Port Mixer"},
22254
22255 {"SEC_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22256 {"SEC_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22257 {"SEC_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22258 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22259 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22260 {"SEC_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22261 {"SEC_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22262 {"SEC_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22263 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22264 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22265 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22266 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22267 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22268 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22269 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22270 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022271 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22272 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22273 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22274 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022275 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Port Mixer"},
22276
22277 {"SEC_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22278 {"SEC_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22279 {"SEC_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22280 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22281 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22282 {"SEC_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22283 {"SEC_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22284 {"SEC_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22285 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22286 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22287 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22288 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22289 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22290 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22291 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22292 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022293 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22294 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22295 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22296 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022297 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Port Mixer"},
22298
22299 {"SEC_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22300 {"SEC_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22301 {"SEC_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22302 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22303 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22304 {"SEC_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22305 {"SEC_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22306 {"SEC_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22307 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22308 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22309 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22310 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22311 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22312 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22313 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22314 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022315 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22316 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22317 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22318 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022319 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Port Mixer"},
22320
22321 {"SEC_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22322 {"SEC_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22323 {"SEC_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22324 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22325 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22326 {"SEC_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22327 {"SEC_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22328 {"SEC_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22329 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22330 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22331 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22332 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22333 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22334 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22335 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22336 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022337 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22338 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22339 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22340 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022341 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Port Mixer"},
22342
Derek Chenfdcc0982018-10-02 15:14:03 -070022343 {"SEC_TDM_RX_7 Port Mixer", "TERT_TDM_TX_7", "TERT_TDM_TX_7"},
22344 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7 Port Mixer"},
22345
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022346 {"TERT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22347 {"TERT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22348 {"TERT_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22349 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22350 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22351 {"TERT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22352 {"TERT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22353 {"TERT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22354 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22355 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22356 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22357 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22358 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22359 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22360 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22361 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022362 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22363 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22364 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22365 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022366 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Port Mixer"},
22367
22368 {"TERT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22369 {"TERT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22370 {"TERT_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22371 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22372 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22373 {"TERT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22374 {"TERT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22375 {"TERT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22376 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22377 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22378 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22379 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22380 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22381 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22382 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22383 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022384 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22385 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22386 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22387 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022388 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Port Mixer"},
22389
22390 {"TERT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22391 {"TERT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22392 {"TERT_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22393 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22394 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22395 {"TERT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22396 {"TERT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22397 {"TERT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22398 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22399 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22400 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22401 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22402 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22403 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22404 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22405 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022406 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22407 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22408 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22409 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022410 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Port Mixer"},
22411
22412 {"TERT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22413 {"TERT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22414 {"TERT_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22415 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22416 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22417 {"TERT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22418 {"TERT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22419 {"TERT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22420 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22421 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22422 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22423 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22424 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22425 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22426 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22427 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022428 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22429 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22430 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22431 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022432 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Port Mixer"},
22433
22434 {"QUAT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22435 {"QUAT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22436 {"QUAT_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22437 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22438 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22439 {"QUAT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22440 {"QUAT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22441 {"QUAT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22442 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22443 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22444 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22445 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22446 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22447 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22448 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22449 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022450 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22451 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22452 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22453 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022454 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Port Mixer"},
22455
22456 {"QUAT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22457 {"QUAT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22458 {"QUAT_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22459 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22460 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22461 {"QUAT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22462 {"QUAT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22463 {"QUAT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22464 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22465 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22466 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22467 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22468 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22469 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22470 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22471 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022472 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22473 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22474 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22475 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022476 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Port Mixer"},
22477
22478 {"QUAT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22479 {"QUAT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22480 {"QUAT_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22481 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22482 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22483 {"QUAT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22484 {"QUAT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22485 {"QUAT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22486 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22487 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22488 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22489 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22490 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22491 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22492 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22493 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022494 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22495 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22496 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22497 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022498 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Port Mixer"},
22499
22500 {"QUAT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22501 {"QUAT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22502 {"QUAT_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22503 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22504 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22505 {"QUAT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22506 {"QUAT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22507 {"QUAT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22508 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22509 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22510 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22511 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22512 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22513 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22514 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22515 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022516 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22517 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22518 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22519 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022520 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Port Mixer"},
22521
Rohit Kumara5077932017-09-10 22:05:05 +053022522 {"QUIN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22523 {"QUIN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22524 {"QUIN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22525 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22526 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22527 {"QUIN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22528 {"QUIN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22529 {"QUIN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22530 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22531 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22532 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22533 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22534 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22535 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22536 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22537 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
22538 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22539 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22540 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22541 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053022542 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053022543
22544 {"QUIN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22545 {"QUIN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22546 {"QUIN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22547 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22548 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22549 {"QUIN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22550 {"QUIN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22551 {"QUIN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22552 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22553 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22554 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22555 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22556 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22557 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22558 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22559 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
22560 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22561 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22562 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22563 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053022564 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053022565
22566 {"QUIN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22567 {"QUIN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22568 {"QUIN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22569 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22570 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22571 {"QUIN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22572 {"QUIN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22573 {"QUIN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22574 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22575 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22576 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22577 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22578 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22579 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22580 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22581 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
22582 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22583 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22584 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22585 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053022586 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053022587
22588 {"QUIN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22589 {"QUIN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22590 {"QUIN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22591 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22592 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22593 {"QUIN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22594 {"QUIN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22595 {"QUIN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22596 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22597 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22598 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22599 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22600 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22601 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22602 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22603 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
22604 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22605 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22606 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22607 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053022608 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053022609
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022610 {"INT0_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22611 {"INT0_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22612 {"INT0_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22613 {"INT0_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022614 {"INT0_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022615 {"INT0_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
22616 {"INT0_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22617 {"INT0_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22618 {"INT0_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053022619 {"INT0_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022620 {"INT0_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22621 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Port Mixer"},
22622
22623 {"INT4_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22624 {"INT4_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22625 {"INT4_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22626 {"INT4_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022627 {"INT4_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022628 {"INT4_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
22629 {"INT4_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22630 {"INT4_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053022631 {"INT4_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022632 {"INT4_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22633 {"INT4_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22634 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Port Mixer"},
22635
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053022636 {"WSA_CDC_DMA_RX_0 Port Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22637 {"WSA_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
22638 {"RX_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080022639 {"WSA_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22640 {"RX_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Meng Wang3f8ba542018-12-10 14:17:10 +080022641 {"WSA_CDC_DMA_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22642 {"RX_CDC_DMA_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053022643
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022644 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22645 {"SLIMBUS_0_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22646 {"SLIMBUS_0_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22647 {"SLIMBUS_0_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22648 {"SLIMBUS_0_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053022649 {"SLIMBUS_0_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022650 {"SLIMBUS_0_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22651 {"SLIMBUS_0_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22652 {"SLIMBUS_0_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
22653 {"SLIMBUS_0_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022654 {"SLIMBUS_0_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022655 {"SLIMBUS_0_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22656 {"SLIMBUS_0_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22657 {"SLIMBUS_0_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22658 {"SLIMBUS_0_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22659 {"SLIMBUS_0_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022660 {"SLIMBUS_0_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022661 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22662 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Port Mixer"},
22663 {"AFE_PCM_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22664 {"AFE_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22665 {"PCM_RX", NULL, "AFE_PCM_RX Port Mixer"},
22666 {"USB_AUDIO_RX Port Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
22667 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Port Mixer"},
22668 {"USB_DL_HL", "Switch", "USBAUDIO_DL_HL"},
22669 {"USB_AUDIO_RX", NULL, "USB_DL_HL"},
22670 {"USBAUDIO_UL_HL", NULL, "USB_AUDIO_TX"},
22671
22672
22673 {"AUX_PCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22674 {"AUX_PCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22675 {"AUX_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22676 {"AUX_PCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22677 {"AUX_PCM_RX Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022678 {"AUX_PCM_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022679 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Port Mixer"},
22680
22681 {"SEC_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22682 {"SEC_AUXPCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22683 {"SEC_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022684 {"SEC_AUXPCM_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022685 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_RX Port Mixer"},
22686
22687 {"TERT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22688 {"TERT_AUXPCM_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
22689 {"TERT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22690 {"TERT_AUX_PCM_RX", NULL, "TERT_AUXPCM_RX Port Mixer"},
22691
22692 {"QUAT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22693 {"QUAT_AUXPCM_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
22694 {"QUAT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22695 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUXPCM_RX Port Mixer"},
22696
Rohit Kumara5077932017-09-10 22:05:05 +053022697 {"QUIN_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22698 {"QUIN_AUXPCM_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
22699 {"QUIN_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22700 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUXPCM_RX Port Mixer"},
22701
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022702 {"Voice Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
22703 {"Voice Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22704 {"Voice Stub Tx Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22705 {"Voice Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
22706 {"Voice Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22707 {"Voice Stub Tx Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22708 {"Voice Stub Tx Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
22709 {"Voice Stub Tx Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022710 {"Voice Stub Tx Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022711 {"Voice Stub Tx Mixer", "MI2S_TX", "MI2S_TX"},
22712 {"Voice Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22713 {"Voice Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22714 {"Voice Stub Tx Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
22715 {"Voice Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22716 {"Voice Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22717 {"Voice Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
22718 {"Voice Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22719 {"Voice Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22720 {"Voice Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
22721 {"VOICE_STUB_UL", NULL, "Voice Stub Tx Mixer"},
22722
22723 {"VoLTE Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
22724 {"VoLTE Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22725 {"VoLTE Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
22726 {"VoLTE Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22727 {"VoLTE Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22728 {"VoLTE Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
22729 {"VoLTE Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22730 {"VoLTE Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22731 {"VoLTE Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
22732 {"VoLTE Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22733 {"VoLTE Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22734 {"VOLTE_STUB_UL", NULL, "VoLTE Stub Tx Mixer"},
22735
22736 {"Voice2 Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
22737 {"Voice2 Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22738 {"Voice2 Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
22739 {"Voice2 Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22740 {"Voice2 Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22741 {"Voice2 Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
22742 {"Voice2 Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22743 {"Voice2 Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22744 {"Voice2 Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
22745 {"Voice2 Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22746 {"Voice2 Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22747 {"VOICE2_STUB_UL", NULL, "Voice2 Stub Tx Mixer"},
22748
kunleizdf5a00a2017-11-27 15:27:36 +080022749 {"STUB_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22750 {"STUB_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022751 {"STUB_RX", NULL, "STUB_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080022752
22753 {"SLIMBUS_1_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22754 {"SLIMBUS_1_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022755 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080022756
22757 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22758 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022759 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX_Voice Mixer"},
22760
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022761 {"SLIM_7_RX_Voice Mixer", "Voip", "VOIP_DL"},
22762 {"SLIM_7_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022763 {"SLIM_7_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22764 {"SLIM_7_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22765 {"SLIM_7_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22766 {"SLIMBUS_7_RX", NULL, "SLIM_7_RX_Voice Mixer"},
22767
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022768 {"SLIM_8_RX_Voice Mixer", "Voip", "VOIP_DL"},
22769 {"SLIM_8_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022770 {"SLIM_8_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22771 {"SLIM_8_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22772 {"SLIM_8_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22773 {"SLIMBUS_8_RX", NULL, "SLIM_8_RX_Voice Mixer"},
22774
22775 {"SLIMBUS_1_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22776 {"SLIMBUS_1_RX Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22777 {"SLIMBUS_1_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22778 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Port Mixer"},
22779 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22780 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22781 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Port Mixer"},
22782 {"SLIMBUS_3_RX Port Mixer", "INTERNAL_BT_SCO_RX", "INT_BT_SCO_RX"},
22783 {"SLIMBUS_3_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22784 {"SLIMBUS_3_RX Port Mixer", "AFE_PCM_RX", "PCM_RX"},
22785 {"SLIMBUS_3_RX Port Mixer", "AUX_PCM_RX", "AUX_PCM_RX"},
22786 {"SLIMBUS_3_RX Port Mixer", "SLIM_0_RX", "SLIMBUS_0_RX"},
22787 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX Port Mixer"},
22788
22789 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22790 {"SLIMBUS_6_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22791 {"SLIMBUS_6_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22792 {"SLIMBUS_6_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22793 {"SLIMBUS_6_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053022794 {"SLIMBUS_6_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022795 {"SLIMBUS_6_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22796 {"SLIMBUS_6_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22797 {"SLIMBUS_6_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22798 {"SLIMBUS_6_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22799 {"SLIMBUS_6_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22800 {"SLIMBUS_6_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22801 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22802 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Port Mixer"},
22803
22804 {"HDMI_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22805 {"HDMI", NULL, "HDMI_RX Port Mixer"},
22806
22807 {"DISPLAY_PORT_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22808 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX Port Mixer"},
22809
Karthikeyan Mani57550082018-05-03 18:43:58 -070022810 {"DISPLAY_PORT_RX1 Port Mixer", "MI2S_TX", "MI2S_TX"},
22811 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1 Port Mixer"},
22812
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022813 {"SEC_I2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22814 {"SEC_I2S_RX", NULL, "SEC_I2S_RX Port Mixer"},
22815
22816 {"MI2S_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22817 {"MI2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22818 {"MI2S_RX", NULL, "MI2S_RX Port Mixer"},
22819
22820 {"PRI_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22821 {"PRI_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22822 {"PRI_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22823 {"PRI_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022824 {"PRI_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022825 {"PRI_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22826 {"PRI_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22827 {"PRI_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22828 {"PRI_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022829 {"PRI_MI2S_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022830 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Port Mixer"},
22831
22832 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22833 {"SEC_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22834 {"SEC_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22835 {"SEC_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022836 {"SEC_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022837 {"SEC_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22838 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22839 {"SEC_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022840 {"SEC_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022841 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Port Mixer"},
22842
22843 {"TERT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22844 {"TERT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22845 {"TERT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22846 {"TERT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022847 {"TERT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022848 {"TERT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22849 {"TERT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22850 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Port Mixer"},
22851
22852 {"QUAT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22853 {"QUAT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22854 {"QUAT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22855 {"QUAT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022856 {"QUAT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022857 {"QUAT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22858 {"QUAT_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22859 {"QUAT_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22860 {"QUAT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22861 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Port Mixer"},
22862
Rohit Kumara5077932017-09-10 22:05:05 +053022863 {"QUIN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22864 {"QUIN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22865 {"QUIN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22866 {"QUIN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22867 {"QUIN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
22868 {"QUIN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22869 {"QUIN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22870 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Port Mixer"},
22871
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022872 /* Backend Enablement */
22873
22874 {"BE_OUT", NULL, "PRI_I2S_RX"},
22875 {"BE_OUT", NULL, "SEC_I2S_RX"},
22876 {"BE_OUT", NULL, "SLIMBUS_0_RX"},
22877 {"BE_OUT", NULL, "SLIMBUS_1_RX"},
22878 {"BE_OUT", NULL, "SLIMBUS_2_RX"},
22879 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
22880 {"BE_OUT", NULL, "SLIMBUS_4_RX"},
22881 {"BE_OUT", NULL, "SLIMBUS_5_RX"},
22882 {"BE_OUT", NULL, "SLIMBUS_6_RX"},
22883 {"BE_OUT", NULL, "SLIMBUS_7_RX"},
22884 {"BE_OUT", NULL, "SLIMBUS_8_RX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053022885 {"BE_OUT", NULL, "SLIMBUS_9_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022886 {"BE_OUT", NULL, "USB_AUDIO_RX"},
22887 {"BE_OUT", NULL, "HDMI"},
22888 {"BE_OUT", NULL, "DISPLAY_PORT"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070022889 {"BE_OUT", NULL, "DISPLAY_PORT1"},
Ralf Herzc8701f72018-06-20 11:37:35 +020022890 {"BE_OUT", NULL, "PRI_SPDIF_RX"},
22891 {"BE_OUT", NULL, "SEC_SPDIF_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022892 {"BE_OUT", NULL, "MI2S_RX"},
22893 {"BE_OUT", NULL, "QUAT_MI2S_RX"},
22894 {"BE_OUT", NULL, "QUIN_MI2S_RX"},
22895 {"BE_OUT", NULL, "TERT_MI2S_RX"},
22896 {"BE_OUT", NULL, "SEC_MI2S_RX"},
22897 {"BE_OUT", NULL, "SEC_MI2S_RX_SD1"},
22898 {"BE_OUT", NULL, "PRI_MI2S_RX"},
22899 {"BE_OUT", NULL, "INT0_MI2S_RX"},
22900 {"BE_OUT", NULL, "INT4_MI2S_RX"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053022901 {"BE_OUT", NULL, "INT2_MI2S_RX"},
22902 {"BE_OUT", NULL, "INT3_MI2S_RX"},
22903 {"BE_OUT", NULL, "INT5_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022904 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
22905 {"BE_OUT", NULL, "INT_BT_A2DP_RX"},
22906 {"BE_OUT", NULL, "INT_FM_RX"},
22907 {"BE_OUT", NULL, "PCM_RX"},
22908 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
22909 {"BE_OUT", NULL, "AUX_PCM_RX"},
22910 {"BE_OUT", NULL, "SEC_AUX_PCM_RX"},
22911 {"BE_OUT", NULL, "TERT_AUX_PCM_RX"},
22912 {"BE_OUT", NULL, "QUAT_AUX_PCM_RX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022913 {"BE_OUT", NULL, "QUIN_AUX_PCM_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022914 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
22915 {"BE_OUT", NULL, "INT_FM_RX"},
22916 {"BE_OUT", NULL, "PCM_RX"},
22917 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
22918 {"BE_OUT", NULL, "VOICE_PLAYBACK_TX"},
22919 {"BE_OUT", NULL, "VOICE2_PLAYBACK_TX"},
22920 {"BE_OUT", NULL, "PRI_TDM_RX_0"},
22921 {"BE_OUT", NULL, "PRI_TDM_RX_1"},
22922 {"BE_OUT", NULL, "PRI_TDM_RX_2"},
22923 {"BE_OUT", NULL, "PRI_TDM_RX_3"},
22924 {"BE_OUT", NULL, "SEC_TDM_RX_0"},
22925 {"BE_OUT", NULL, "SEC_TDM_RX_1"},
22926 {"BE_OUT", NULL, "SEC_TDM_RX_2"},
22927 {"BE_OUT", NULL, "SEC_TDM_RX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070022928 {"BE_OUT", NULL, "SEC_TDM_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022929 {"BE_OUT", NULL, "TERT_TDM_RX_0"},
22930 {"BE_OUT", NULL, "TERT_TDM_RX_1"},
22931 {"BE_OUT", NULL, "TERT_TDM_RX_2"},
22932 {"BE_OUT", NULL, "TERT_TDM_RX_3"},
22933 {"BE_OUT", NULL, "TERT_TDM_RX_4"},
22934 {"BE_OUT", NULL, "QUAT_TDM_RX_0"},
22935 {"BE_OUT", NULL, "QUAT_TDM_RX_1"},
22936 {"BE_OUT", NULL, "QUAT_TDM_RX_2"},
22937 {"BE_OUT", NULL, "QUAT_TDM_RX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022938 {"BE_OUT", NULL, "QUIN_TDM_RX_0"},
22939 {"BE_OUT", NULL, "QUIN_TDM_RX_1"},
22940 {"BE_OUT", NULL, "QUIN_TDM_RX_2"},
22941 {"BE_OUT", NULL, "QUIN_TDM_RX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022942 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_0"},
22943 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022944 {"BE_OUT", NULL, "RX_CDC_DMA_RX_0"},
22945 {"BE_OUT", NULL, "RX_CDC_DMA_RX_1"},
22946 {"BE_OUT", NULL, "RX_CDC_DMA_RX_2"},
22947 {"BE_OUT", NULL, "RX_CDC_DMA_RX_3"},
22948 {"BE_OUT", NULL, "RX_CDC_DMA_RX_4"},
22949 {"BE_OUT", NULL, "RX_CDC_DMA_RX_5"},
22950 {"BE_OUT", NULL, "RX_CDC_DMA_RX_6"},
22951 {"BE_OUT", NULL, "RX_CDC_DMA_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022952
22953 {"PRI_I2S_TX", NULL, "BE_IN"},
22954 {"MI2S_TX", NULL, "BE_IN"},
22955 {"QUAT_MI2S_TX", NULL, "BE_IN"},
22956 {"QUIN_MI2S_TX", NULL, "BE_IN"},
22957 {"PRI_MI2S_TX", NULL, "BE_IN"},
22958 {"TERT_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053022959 {"INT0_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022960 {"INT2_MI2S_TX", NULL, "BE_IN"},
22961 {"INT3_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053022962 {"INT4_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022963 {"INT5_MI2S_TX", NULL, "BE_IN"},
22964 {"SEC_MI2S_TX", NULL, "BE_IN"},
22965 {"SENARY_MI2S_TX", NULL, "BE_IN" },
22966 {"SLIMBUS_0_TX", NULL, "BE_IN" },
22967 {"SLIMBUS_1_TX", NULL, "BE_IN" },
22968 {"SLIMBUS_3_TX", NULL, "BE_IN" },
22969 {"SLIMBUS_4_TX", NULL, "BE_IN" },
22970 {"SLIMBUS_5_TX", NULL, "BE_IN" },
22971 {"SLIMBUS_6_TX", NULL, "BE_IN" },
22972 {"SLIMBUS_7_TX", NULL, "BE_IN" },
22973 {"SLIMBUS_8_TX", NULL, "BE_IN" },
Surendar Karka3ef3d812018-09-28 18:52:35 +053022974 {"SLIMBUS_9_TX", NULL, "BE_IN" },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022975 {"USB_AUDIO_TX", NULL, "BE_IN" },
22976 {"INT_BT_SCO_TX", NULL, "BE_IN"},
22977 {"INT_FM_TX", NULL, "BE_IN"},
22978 {"PCM_TX", NULL, "BE_IN"},
22979 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
22980 {"BE_OUT", NULL, "STUB_RX"},
22981 {"STUB_TX", NULL, "BE_IN"},
22982 {"STUB_1_TX", NULL, "BE_IN"},
22983 {"BE_OUT", NULL, "AUX_PCM_RX"},
22984 {"AUX_PCM_TX", NULL, "BE_IN"},
22985 {"SEC_AUX_PCM_TX", NULL, "BE_IN"},
22986 {"TERT_AUX_PCM_TX", NULL, "BE_IN"},
22987 {"QUAT_AUX_PCM_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053022988 {"QUIN_AUX_PCM_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022989 {"INCALL_RECORD_TX", NULL, "BE_IN"},
22990 {"INCALL_RECORD_RX", NULL, "BE_IN"},
22991 {"SLIM0_RX_VI_FB_LCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
22992 {"SLIM0_RX_VI_FB_RCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022993 {"WSA_RX_0_VI_FB_LCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
22994 {"WSA_RX_0_VI_FB_RCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022995 {"PRI_MI2S_RX_VI_FB_MUX", "SENARY_TX", "SENARY_TX"},
22996 {"INT4_MI2S_RX_VI_FB_MONO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
22997 {"INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
22998 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_LCH_MUX"},
22999 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_RCH_MUX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023000 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_LCH_MUX"},
23001 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_RCH_MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023002 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_VI_FB_MUX"},
23003 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_MONO_CH_MUX"},
23004 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_STEREO_CH_MUX"},
23005 {"PRI_TDM_TX_0", NULL, "BE_IN"},
23006 {"PRI_TDM_TX_1", NULL, "BE_IN"},
23007 {"PRI_TDM_TX_2", NULL, "BE_IN"},
23008 {"PRI_TDM_TX_3", NULL, "BE_IN"},
23009 {"SEC_TDM_TX_0", NULL, "BE_IN"},
23010 {"SEC_TDM_TX_1", NULL, "BE_IN"},
23011 {"SEC_TDM_TX_2", NULL, "BE_IN"},
23012 {"SEC_TDM_TX_3", NULL, "BE_IN"},
23013 {"TERT_TDM_TX_0", NULL, "BE_IN"},
23014 {"TERT_TDM_TX_1", NULL, "BE_IN"},
23015 {"TERT_TDM_TX_2", NULL, "BE_IN"},
23016 {"TERT_TDM_TX_3", NULL, "BE_IN"},
Derek Chenfdcc0982018-10-02 15:14:03 -070023017 {"TERT_TDM_TX_7", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023018 {"QUAT_TDM_TX_0", NULL, "BE_IN"},
23019 {"QUAT_TDM_TX_1", NULL, "BE_IN"},
23020 {"QUAT_TDM_TX_2", NULL, "BE_IN"},
23021 {"QUAT_TDM_TX_3", NULL, "BE_IN"},
Surendar Karkad47fda42018-05-20 19:21:10 +053023022 {"AFE_LOOPBACK_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053023023 {"QUIN_TDM_TX_0", NULL, "BE_IN"},
23024 {"QUIN_TDM_TX_1", NULL, "BE_IN"},
23025 {"QUIN_TDM_TX_2", NULL, "BE_IN"},
23026 {"QUIN_TDM_TX_3", NULL, "BE_IN"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023027 {"WSA_CDC_DMA_TX_0", NULL, "BE_IN"},
23028 {"WSA_CDC_DMA_TX_1", NULL, "BE_IN"},
23029 {"WSA_CDC_DMA_TX_2", NULL, "BE_IN"},
23030 {"VA_CDC_DMA_TX_0", NULL, "BE_IN"},
23031 {"VA_CDC_DMA_TX_1", NULL, "BE_IN"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053023032 {"TX_CDC_DMA_TX_0", NULL, "BE_IN"},
23033 {"TX_CDC_DMA_TX_1", NULL, "BE_IN"},
23034 {"TX_CDC_DMA_TX_2", NULL, "BE_IN"},
23035 {"TX_CDC_DMA_TX_3", NULL, "BE_IN"},
23036 {"TX_CDC_DMA_TX_4", NULL, "BE_IN"},
23037 {"TX_CDC_DMA_TX_5", NULL, "BE_IN"},
Ralf Herzc8701f72018-06-20 11:37:35 +020023038 {"PRI_SPDIF_TX", NULL, "BE_IN"},
23039 {"SEC_SPDIF_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023040};
23041
23042static int msm_pcm_routing_hw_params(struct snd_pcm_substream *substream,
23043 struct snd_pcm_hw_params *params)
23044{
23045 struct snd_soc_pcm_runtime *rtd = substream->private_data;
23046 unsigned int be_id = rtd->dai_link->id;
23047
23048 if (be_id >= MSM_BACKEND_DAI_MAX) {
23049 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
23050 return -EINVAL;
23051 }
23052
23053 mutex_lock(&routing_lock);
23054 msm_bedais[be_id].sample_rate = params_rate(params);
23055 msm_bedais[be_id].channel = params_channels(params);
23056 msm_bedais[be_id].format = params_format(params);
23057 pr_debug("%s: BE Sample Rate (%d) format (%d) BE id %d\n",
23058 __func__, msm_bedais[be_id].sample_rate,
23059 msm_bedais[be_id].format, be_id);
23060 mutex_unlock(&routing_lock);
23061 return 0;
23062}
23063
23064static int msm_pcm_routing_close(struct snd_pcm_substream *substream)
23065{
23066 struct snd_soc_pcm_runtime *rtd = substream->private_data;
23067 unsigned int be_id = rtd->dai_link->id;
23068 int i, session_type, path_type, topology;
23069 struct msm_pcm_routing_bdai_data *bedai;
23070 struct msm_pcm_routing_fdai_data *fdai;
23071
23072 pr_debug("%s: substream->pcm->id:%s\n",
23073 __func__, substream->pcm->id);
23074
23075 if (be_id >= MSM_BACKEND_DAI_MAX) {
23076 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
23077 return -EINVAL;
23078 }
23079
23080 bedai = &msm_bedais[be_id];
23081 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK ?
23082 0 : 1);
23083 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
23084 path_type = ADM_PATH_PLAYBACK;
23085 else
23086 path_type = ADM_PATH_LIVE_REC;
23087
23088 mutex_lock(&routing_lock);
23089 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
23090 if (!is_mm_lsm_fe_id(i))
23091 continue;
23092 fdai = &fe_dai_map[i][session_type];
23093 if (fdai->strm_id != INVALID_SESSION) {
23094 int idx;
23095 int port_id;
23096 unsigned long copp =
23097 session_copp_map[i][session_type][be_id];
23098 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
23099 if (test_bit(idx, &copp))
23100 break;
Vignesh Kulothungane59d3152018-10-10 14:19:59 -070023101
23102 if (idx >= MAX_COPPS_PER_PORT) {
23103 pr_debug("%s: copp idx is invalid, exiting\n",
23104 __func__);
23105 continue;
23106 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023107 fdai->be_srate = bedai->sample_rate;
Surendar Karkae7507512018-07-20 15:46:54 +053023108 port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023109 topology = adm_get_topology_for_port_copp_idx(port_id,
23110 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023111 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +053023112 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023113 pr_debug("%s: copp:%ld,idx bit fe:%d, type:%d,be:%d topology=0x%x\n",
23114 __func__, copp, i, session_type, be_id,
23115 topology);
23116 clear_bit(idx,
23117 &session_copp_map[i][session_type][be_id]);
23118 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023119 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +053023120 msm_pcm_routing_deinit_pp(port_id,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023121 topology);
23122 }
23123 }
23124
23125 bedai->active = 0;
23126 bedai->sample_rate = 0;
23127 bedai->channel = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023128 mutex_unlock(&routing_lock);
23129
23130 return 0;
23131}
23132
23133static int msm_pcm_routing_prepare(struct snd_pcm_substream *substream)
23134{
23135 struct snd_soc_pcm_runtime *rtd = substream->private_data;
23136 unsigned int be_id = rtd->dai_link->id;
23137 int i, path_type, topology;
23138 int session_type = INVALID_SESSION;
23139 struct msm_pcm_routing_bdai_data *bedai;
23140 u32 channels, sample_rate;
23141 uint16_t bits_per_sample = 16, voc_path_type;
23142 struct msm_pcm_routing_fdai_data *fdai;
23143 u32 session_id;
23144 struct media_format_info voc_be_media_format;
23145 bool is_lsm;
23146
23147 pr_debug("%s: substream->pcm->id:%s\n",
23148 __func__, substream->pcm->id);
23149
23150 if (be_id >= MSM_BACKEND_DAI_MAX) {
23151 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
23152 return -EINVAL;
23153 }
23154
23155 bedai = &msm_bedais[be_id];
23156
23157 mutex_lock(&routing_lock);
23158 if (bedai->active == 1)
23159 goto done; /* Ignore prepare if back-end already active */
23160
23161 /* AFE port is not active at this point. However, still
23162 * go ahead setting active flag under the notion that
23163 * QDSP6 is able to handle ADM starting before AFE port
23164 * is started.
23165 */
23166 bedai->active = 1;
23167
23168 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
23169 if (!(is_mm_lsm_fe_id(i) &&
23170 route_check_fe_id_adm_support(i)))
23171 continue;
23172
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023173 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) ?
23174 SESSION_TYPE_RX : SESSION_TYPE_TX;
23175 fdai = &fe_dai_map[i][session_type];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023176 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023177 if (fdai->passthr_mode != LEGACY_PCM)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023178 path_type = ADM_PATH_COMPRESSED_RX;
23179 else
23180 path_type = ADM_PATH_PLAYBACK;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023181 } else {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023182 if ((fdai->passthr_mode != LEGACY_PCM) &&
23183 (fdai->passthr_mode != LISTEN))
Ralf Herzc8701f72018-06-20 11:37:35 +020023184 path_type = ADM_PATH_COMPRESSED_TX;
23185 else
23186 path_type = ADM_PATH_LIVE_REC;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023187 }
23188
23189 is_lsm = (i >= MSM_FRONTEND_DAI_LSM1) &&
23190 (i <= MSM_FRONTEND_DAI_LSM8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023191 if (fdai->strm_id != INVALID_SESSION) {
23192 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +053023193 int port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023194
23195 if (session_type == SESSION_TYPE_TX &&
23196 fdai->be_srate &&
23197 (fdai->be_srate != bedai->sample_rate)) {
23198 pr_debug("%s: flush strm %d diff BE rates\n",
23199 __func__,
23200 fdai->strm_id);
23201
23202 if (fdai->event_info.event_func)
23203 fdai->event_info.event_func(
23204 MSM_PCM_RT_EVT_BUF_RECFG,
23205 fdai->event_info.priv_data);
23206 fdai->be_srate = 0; /* might not need it */
23207 }
23208 bits_per_sample = msm_routing_get_bit_width(
23209 bedai->format);
23210
23211 app_type =
23212 fe_dai_app_type_cfg[i][session_type][be_id].app_type;
23213 if (app_type && is_lsm) {
23214 app_type_idx =
23215 msm_pcm_routing_get_lsm_app_type_idx(app_type);
23216 sample_rate =
23217 fe_dai_app_type_cfg[i][session_type][be_id]
23218 .sample_rate;
23219 bits_per_sample =
23220 lsm_app_type_cfg[app_type_idx].bit_width;
23221 } else if (app_type) {
23222 app_type_idx =
23223 msm_pcm_routing_get_app_type_idx(app_type);
23224 sample_rate =
23225 fe_dai_app_type_cfg[i][session_type]
23226 [be_id].sample_rate;
23227 bits_per_sample =
23228 app_type_cfg[app_type_idx].bit_width;
23229 } else
23230 sample_rate = bedai->sample_rate;
23231 /*
23232 * check if ADM needs to be configured with different
23233 * channel mapping than backend
23234 */
23235 if (!bedai->adm_override_ch)
23236 channels = bedai->channel;
23237 else
23238 channels = bedai->adm_override_ch;
23239 acdb_dev_id =
23240 fe_dai_app_type_cfg[i][session_type][be_id].acdb_dev_id;
23241 topology = msm_routing_get_adm_topology(i, session_type,
23242 be_id);
Ralf Herzc8701f72018-06-20 11:37:35 +020023243
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023244 if ((fdai->passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
23245 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_GEN)
23246 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_IEC61937))
Ralf Herzc8701f72018-06-20 11:37:35 +020023247 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
23248
Surendar Karkae7507512018-07-20 15:46:54 +053023249 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023250 sample_rate, channels, topology,
23251 fdai->perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +053023252 app_type, acdb_dev_id,
23253 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023254 if ((copp_idx < 0) ||
23255 (copp_idx >= MAX_COPPS_PER_PORT)) {
23256 pr_err("%s: adm open failed\n", __func__);
23257 mutex_unlock(&routing_lock);
23258 return -EINVAL;
23259 }
23260 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
23261 __func__, i, session_type, be_id);
23262 set_bit(copp_idx,
23263 &session_copp_map[i][session_type][be_id]);
23264
23265 if (msm_is_resample_needed(
23266 sample_rate,
23267 bedai->sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +053023268 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023269 bedai->sample_rate);
23270
23271 msm_pcm_routing_build_matrix(i, session_type, path_type,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023272 fdai->perf_mode, fdai->passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023273 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023274 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +053023275 msm_pcm_routing_cfg_pp(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023276 topology, channels);
23277 }
23278 }
23279
23280 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
23281 session_id = msm_pcm_routing_get_voc_sessionid(i);
23282 if (session_id) {
23283 pr_debug("%s voice session_id: 0x%x\n", __func__,
23284 session_id);
23285
23286 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
23287 voc_path_type = RX_PATH;
23288 else
23289 voc_path_type = TX_PATH;
23290
23291 voc_set_route_flag(session_id, voc_path_type, 1);
23292
23293 memset(&voc_be_media_format, 0,
23294 sizeof(struct media_format_info));
23295
23296 voc_be_media_format.port_id = bedai->port_id;
23297 voc_be_media_format.num_channels = bedai->channel;
23298 voc_be_media_format.sample_rate = bedai->sample_rate;
23299 voc_be_media_format.bits_per_sample = bedai->format;
23300 /* Defaulting this to 1 for voice call usecases */
23301 voc_be_media_format.channel_mapping[0] = 1;
23302
23303 voc_set_device_config(session_id, voc_path_type,
23304 &voc_be_media_format);
23305
23306 if (voc_get_route_flag(session_id, RX_PATH) &&
23307 voc_get_route_flag(session_id, TX_PATH))
23308 voc_enable_device(session_id);
23309 }
23310 }
23311
23312 /* Check if backend is an external ec ref port and set as needed */
23313 if (unlikely(bedai->port_id == voc_get_ext_ec_ref_port_id())) {
23314
23315 memset(&voc_be_media_format, 0,
23316 sizeof(struct media_format_info));
23317
23318 /* Get format info for ec ref port from msm_bedais[] */
23319 voc_be_media_format.port_id = bedai->port_id;
23320 voc_be_media_format.num_channels = bedai->channel;
23321 voc_be_media_format.bits_per_sample = bedai->format;
23322 voc_be_media_format.sample_rate = bedai->sample_rate;
23323 /* Defaulting this to 1 for voice call usecases */
23324 voc_be_media_format.channel_mapping[0] = 1;
23325 voc_set_ext_ec_ref_media_fmt_info(&voc_be_media_format);
23326 pr_debug("%s: EC Ref media format info set to port_id=%d, num_channels=%d, bits_per_sample=%d, sample_rate=%d\n",
23327 __func__, voc_be_media_format.port_id,
23328 voc_be_media_format.num_channels,
23329 voc_be_media_format.bits_per_sample,
23330 voc_be_media_format.sample_rate);
23331 }
23332
23333done:
23334 mutex_unlock(&routing_lock);
23335
23336 return 0;
23337}
23338
23339static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
23340 int fe_id)
23341{
23342 int index, topo_id, be_idx;
23343 unsigned long pp_config = 0;
23344 bool mute_on;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023345 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023346 bool compr_passthr_mode = true;
23347
23348 pr_debug("%s: port_id %d, copp_idx %d\n", __func__, port_id, copp_idx);
23349
23350 if (port_id != HDMI_RX && port_id != DISPLAY_PORT_RX) {
23351 pr_err("%s: Device pp params on invalid port %d\n",
23352 __func__, port_id);
23353 return -EINVAL;
23354 }
23355
23356 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
23357 if (port_id == msm_bedais[be_idx].port_id)
23358 break;
23359 }
23360
23361 if (be_idx >= MSM_BACKEND_DAI_MAX) {
23362 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
23363 return -EINVAL;
23364 }
23365
23366 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
23367 if (msm_bedais_pp_params[index].port_id == port_id)
23368 break;
23369 }
23370 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
23371 pr_err("%s: Invalid backend pp params index %d\n",
23372 __func__, index);
23373 return -EINVAL;
23374 }
23375
23376 topo_id = adm_get_topology_for_port_copp_idx(port_id, copp_idx);
23377 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY) {
23378 pr_err("%s: Invalid passthrough topology 0x%x\n",
23379 __func__, topo_id);
23380 return -EINVAL;
23381 }
23382
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023383 session_type =
23384 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
23385 SESSION_TYPE_RX : SESSION_TYPE_TX;
23386
23387 if ((fe_dai_map[fe_id][session_type].passthr_mode == LEGACY_PCM) ||
23388 (fe_dai_map[fe_id][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023389 compr_passthr_mode = false;
23390
23391 pp_config = msm_bedais_pp_params[index].pp_params_config;
23392 if (test_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config)) {
23393 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
23394 clear_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config);
23395 mute_on = msm_bedais_pp_params[index].mute_on;
23396 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23397 adm_send_compressed_device_mute(port_id,
23398 copp_idx,
23399 mute_on);
23400 }
23401 if (test_bit(ADM_PP_PARAM_LATENCY_BIT, &pp_config)) {
23402 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
23403 clear_bit(ADM_PP_PARAM_LATENCY_BIT,
23404 &pp_config);
23405 latency = msm_bedais_pp_params[index].latency;
23406 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23407 adm_send_compressed_device_latency(port_id,
23408 copp_idx,
23409 latency);
23410 }
23411 return 0;
23412}
23413
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023414static uint32_t msm_routing_get_topology(size_t data_size, void *data)
23415{
23416 uint32_t topology = NULL_COPP_TOPOLOGY;
23417 void *cal_info = NULL;
23418 uint32_t size = 0;
23419
23420 /* Retrieve cal_info size from cal data*/
23421 size = data_size - sizeof(struct audio_cal_type_basic);
23422 cal_info = kzalloc(size, GFP_KERNEL);
23423
23424 if (!cal_info)
23425 goto done;
23426
23427 memcpy(cal_info,
23428 ((uint8_t *)data + sizeof(struct audio_cal_type_basic)), size);
23429
23430 topology = ((struct audio_cal_info_adm_top *)cal_info)->topology;
23431 kfree(cal_info);
23432 cal_info = NULL;
23433
23434done:
23435 pr_debug("%s: Using topology %d\n", __func__, topology);
23436
23437 return topology;
23438}
23439
23440static void msm_routing_load_topology(size_t data_size, void *data)
23441{
23442 uint32_t topology_id;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053023443 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023444
23445 topology_id = msm_routing_get_topology(data_size, data);
23446 if (topology_id != NULL_COPP_TOPOLOGY)
23447 ret = q6core_load_unload_topo_modules(topology_id,
23448 CORE_LOAD_TOPOLOGY);
23449 if (ret < 0)
23450 pr_debug("%s %d load topology failed\n",
23451 __func__, topology_id);
23452
23453}
23454
23455static void msm_routing_unload_topology(uint32_t topology_id)
23456{
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053023457 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023458
23459 if (topology_id != NULL_COPP_TOPOLOGY)
23460 ret = q6core_load_unload_topo_modules(topology_id,
23461 CORE_UNLOAD_TOPOLOGY);
23462 if (ret < 0)
23463 pr_debug("%s %d unload topology failed\n",
23464 __func__, topology_id);
23465
23466}
23467
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023468static int msm_routing_put_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
23469 struct snd_ctl_elem_value *ucontrol)
23470{
23471 int pp_id = ucontrol->value.integer.value[0];
23472 int port_id = 0;
23473 int index, be_idx, i, topo_id, idx;
23474 bool mute;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023475 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023476 bool compr_passthr_mode = true;
23477
23478 pr_debug("%s: pp_id: 0x%x\n", __func__, pp_id);
23479
23480 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
23481 port_id = msm_bedais[be_idx].port_id;
23482 if (port_id == HDMI_RX || port_id == DISPLAY_PORT_RX)
23483 break;
23484 }
23485
23486 if (be_idx >= MSM_BACKEND_DAI_MAX) {
23487 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
23488 return -EINVAL;
23489 }
23490
23491 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
23492 if (msm_bedais_pp_params[index].port_id == port_id)
23493 break;
23494 }
23495 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
23496 pr_err("%s: Invalid pp params backend index %d\n",
23497 __func__, index);
23498 return -EINVAL;
23499 }
23500
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023501 session_type =
23502 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
23503 SESSION_TYPE_RX : SESSION_TYPE_TX;
23504
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023505 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
23506 MSM_FRONTEND_DAI_MM_SIZE) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023507 if ((fe_dai_map[i][session_type].passthr_mode == LEGACY_PCM) ||
23508 (fe_dai_map[i][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023509 compr_passthr_mode = false;
23510
23511 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
23512 unsigned long copp =
23513 session_copp_map[i]
23514 [SESSION_TYPE_RX][be_idx];
23515 if (!test_bit(idx, &copp))
23516 continue;
23517 topo_id = adm_get_topology_for_port_copp_idx(port_id,
23518 idx);
23519 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY)
23520 continue;
23521 pr_debug("%s: port: 0x%x, copp %ld, be active: %d, passt: %d\n",
23522 __func__, port_id, copp, msm_bedais[be_idx].active,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023523 fe_dai_map[i][session_type].passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023524 switch (pp_id) {
23525 case ADM_PP_PARAM_MUTE_ID:
23526 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
23527 mute = ucontrol->value.integer.value[1] ? true : false;
23528 msm_bedais_pp_params[index].mute_on = mute;
23529 set_bit(ADM_PP_PARAM_MUTE_BIT,
23530 &msm_bedais_pp_params[index].pp_params_config);
23531 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23532 adm_send_compressed_device_mute(port_id,
23533 idx, mute);
23534 break;
23535 case ADM_PP_PARAM_LATENCY_ID:
23536 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
23537 msm_bedais_pp_params[index].latency =
23538 ucontrol->value.integer.value[1];
23539 set_bit(ADM_PP_PARAM_LATENCY_BIT,
23540 &msm_bedais_pp_params[index].pp_params_config);
23541 latency = msm_bedais_pp_params[index].latency =
23542 ucontrol->value.integer.value[1];
23543 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23544 adm_send_compressed_device_latency(port_id,
23545 idx, latency);
23546 break;
23547 default:
23548 pr_info("%s, device pp param %d not supported\n",
23549 __func__, pp_id);
23550 break;
23551 }
23552 }
23553 }
23554 return 0;
23555}
23556
23557static int msm_routing_get_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
23558 struct snd_ctl_elem_value *ucontrol)
23559{
23560 pr_debug("%s:msm_routing_get_device_pp_params_mixer", __func__);
23561 return 0;
23562}
23563
23564static const struct snd_kcontrol_new device_pp_params_mixer_controls[] = {
23565 SOC_SINGLE_MULTI_EXT("Device PP Params", SND_SOC_NOPM, 0, 0xFFFFFFFF,
23566 0, 3, msm_routing_get_device_pp_params_mixer,
23567 msm_routing_put_device_pp_params_mixer),
23568};
23569
23570static int msm_aptx_dec_license_control_get(struct snd_kcontrol *kcontrol,
23571 struct snd_ctl_elem_value *ucontrol)
23572{
23573 ucontrol->value.integer.value[0] =
23574 core_get_license_status(ASM_MEDIA_FMT_APTX);
23575 pr_debug("%s: status %ld\n", __func__,
23576 ucontrol->value.integer.value[0]);
23577 return 0;
23578}
23579
23580static int msm_aptx_dec_license_control_put(struct snd_kcontrol *kcontrol,
23581 struct snd_ctl_elem_value *ucontrol)
23582{
23583 int32_t status = 0;
23584
23585 status = core_set_license(ucontrol->value.integer.value[0],
23586 APTX_CLASSIC_DEC_LICENSE_ID);
23587 pr_debug("%s: status %d\n", __func__, status);
23588 return status;
23589}
23590
23591static const struct snd_kcontrol_new aptx_dec_license_controls[] = {
23592 SOC_SINGLE_EXT("APTX Dec License", SND_SOC_NOPM, 0,
23593 0xFFFF, 0, msm_aptx_dec_license_control_get,
23594 msm_aptx_dec_license_control_put),
23595};
23596
23597static int msm_routing_be_dai_name_table_info(struct snd_kcontrol *kcontrol,
23598 struct snd_ctl_elem_info *uinfo)
23599{
23600 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
23601 uinfo->count = sizeof(be_dai_name_table);
23602 return 0;
23603}
23604
23605static int msm_routing_be_dai_name_table_tlv_get(struct snd_kcontrol *kcontrol,
23606 unsigned int __user *bytes,
23607 unsigned int size)
23608{
23609 int i;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053023610 int ret = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023611
23612 if (size < sizeof(be_dai_name_table)) {
23613 pr_err("%s: invalid size %d requested, returning\n",
23614 __func__, size);
23615 ret = -EINVAL;
23616 goto done;
23617 }
23618
23619 /*
23620 * Fill be_dai_name_table from msm_bedais table to reduce code changes
23621 * needed when adding new backends
23622 */
23623 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
23624 be_dai_name_table[i].be_id = i;
23625 strlcpy(be_dai_name_table[i].be_name,
23626 msm_bedais[i].name,
23627 LPASS_BE_NAME_MAX_LENGTH);
23628 }
23629
23630 ret = copy_to_user(bytes, &be_dai_name_table,
23631 sizeof(be_dai_name_table));
23632 if (ret) {
23633 pr_err("%s: failed to copy be_dai_name_table\n", __func__);
23634 ret = -EFAULT;
23635 }
23636
23637done:
23638 return ret;
23639}
23640
23641static const struct snd_kcontrol_new
23642 msm_routing_be_dai_name_table_mixer_controls[] = {
23643 {
23644 .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |
23645 SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK,
23646 .info = msm_routing_be_dai_name_table_info,
23647 .name = "Backend DAI Name Table",
23648 .tlv.c = snd_soc_bytes_tlv_callback,
23649 .private_value = (unsigned long) &(struct soc_bytes_ext) {
23650 .max = sizeof(be_dai_name_table),
23651 .get = msm_routing_be_dai_name_table_tlv_get,
23652 }
23653 },
23654};
23655
23656static int msm_routing_stereo_channel_reverse_control_get(
23657 struct snd_kcontrol *kcontrol,
23658 struct snd_ctl_elem_value *ucontrol)
23659{
23660 ucontrol->value.integer.value[0] = swap_ch;
23661 pr_debug("%s: Swap channel value: %ld\n", __func__,
23662 ucontrol->value.integer.value[0]);
23663 return 0;
23664}
23665
23666static int msm_routing_stereo_channel_reverse_control_put(
23667 struct snd_kcontrol *kcontrol,
23668 struct snd_ctl_elem_value *ucontrol)
23669{
23670 int i, idx, be_index, port_id;
23671 int ret = 0;
23672 unsigned long copp;
23673
23674 pr_debug("%s Swap channel value:%ld\n", __func__,
23675 ucontrol->value.integer.value[0]);
23676
23677 swap_ch = ucontrol->value.integer.value[0];
23678
23679 mutex_lock(&routing_lock);
23680 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
23681 port_id = msm_bedais[be_index].port_id;
23682 if (!msm_bedais[be_index].active)
23683 continue;
23684
23685 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
23686 MSM_FRONTEND_DAI_MM_SIZE) {
23687 copp = session_copp_map[i][SESSION_TYPE_RX][be_index];
23688 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
23689 if (!test_bit(idx, &copp))
23690 continue;
23691
23692 pr_debug("%s: swap channel control of portid:%d, coppid:%d\n",
23693 __func__, port_id, idx);
23694 ret = adm_swap_speaker_channels(
23695 port_id, idx,
23696 msm_bedais[be_index].sample_rate,
23697 swap_ch);
23698 if (ret) {
23699 pr_err("%s:Swap_channel failed, err=%d\n",
23700 __func__, ret);
23701 goto done;
23702 }
23703 }
23704 }
23705 }
23706done:
23707 mutex_unlock(&routing_lock);
23708 return ret;
23709}
23710
23711static const struct snd_kcontrol_new stereo_channel_reverse_control[] = {
23712 SOC_SINGLE_EXT("Swap channel", SND_SOC_NOPM, 0,
23713 1, 0, msm_routing_stereo_channel_reverse_control_get,
23714 msm_routing_stereo_channel_reverse_control_put),
23715};
23716
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080023717static int msm_routing_instance_id_support_info(struct snd_kcontrol *kcontrol,
23718 struct snd_ctl_elem_info *uinfo)
23719{
23720 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
23721 uinfo->count = 1;
23722 return 0;
23723}
23724
23725static int msm_routing_instance_id_support_put(
23726 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
23727{
23728 bool supported = ucontrol->value.integer.value[0] ? true : false;
23729
23730 q6common_update_instance_id_support(supported);
23731 return 0;
23732}
23733
23734static int msm_routing_instance_id_support_get(
23735 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
23736{
23737 bool supported = false;
23738
23739 supported = q6common_is_instance_id_supported();
23740 ucontrol->value.integer.value[0] = supported ? 1 : 0;
23741
23742 return 0;
23743}
23744
23745static const struct snd_kcontrol_new
23746 msm_routing_feature_support_mixer_controls[] = {
23747 {
23748 .access = SNDRV_CTL_ELEM_ACCESS_READ |
23749 SNDRV_CTL_ELEM_ACCESS_WRITE,
23750 .info = msm_routing_instance_id_support_info,
23751 .name = "Instance ID Support",
23752 .put = msm_routing_instance_id_support_put,
23753 .get = msm_routing_instance_id_support_get,
23754 },
23755};
23756
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023757static const struct snd_pcm_ops msm_routing_pcm_ops = {
23758 .hw_params = msm_pcm_routing_hw_params,
23759 .close = msm_pcm_routing_close,
23760 .prepare = msm_pcm_routing_prepare,
23761};
23762
23763/* Not used but frame seems to require it */
Meng Wangee084a02018-09-04 16:11:58 +080023764static int msm_routing_probe(struct snd_soc_component *component)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023765{
Meng Wangee084a02018-09-04 16:11:58 +080023766 snd_soc_dapm_new_controls(&component->dapm, msm_qdsp6_widgets,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023767 ARRAY_SIZE(msm_qdsp6_widgets));
Meng Wangee084a02018-09-04 16:11:58 +080023768 snd_soc_dapm_add_routes(&component->dapm, intercon,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023769 ARRAY_SIZE(intercon));
23770
Meng Wangee084a02018-09-04 16:11:58 +080023771 snd_soc_dapm_new_widgets(component->dapm.card);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023772
Meng Wangee084a02018-09-04 16:11:58 +080023773 snd_soc_add_component_controls(component, lsm_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023774 ARRAY_SIZE(lsm_controls));
23775
Meng Wangee084a02018-09-04 16:11:58 +080023776 snd_soc_add_component_controls(component, aanc_slim_0_rx_mux,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023777 ARRAY_SIZE(aanc_slim_0_rx_mux));
23778
Meng Wangee084a02018-09-04 16:11:58 +080023779 snd_soc_add_component_controls(component, aanc_noise_level,
Sudheer Papothic07b37a2018-05-04 05:56:47 +053023780 ARRAY_SIZE(aanc_noise_level));
23781
Meng Wangee084a02018-09-04 16:11:58 +080023782 snd_soc_add_component_controls(component, msm_voc_session_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023783 ARRAY_SIZE(msm_voc_session_controls));
23784
Meng Wangee084a02018-09-04 16:11:58 +080023785 snd_soc_add_component_controls(component, app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023786 ARRAY_SIZE(app_type_cfg_controls));
23787
Meng Wangee084a02018-09-04 16:11:58 +080023788 snd_soc_add_component_controls(component, lsm_app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023789 ARRAY_SIZE(lsm_app_type_cfg_controls));
23790
Meng Wangee084a02018-09-04 16:11:58 +080023791 snd_soc_add_component_controls(component, module_cfg_controls,
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070023792 ARRAY_SIZE(module_cfg_controls));
23793
Meng Wangee084a02018-09-04 16:11:58 +080023794 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023795 stereo_to_custom_stereo_controls,
23796 ARRAY_SIZE(stereo_to_custom_stereo_controls));
23797
Meng Wangee084a02018-09-04 16:11:58 +080023798 snd_soc_add_component_controls(component, ec_ref_param_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023799 ARRAY_SIZE(ec_ref_param_controls));
23800
Meng Wangee084a02018-09-04 16:11:58 +080023801 snd_soc_add_component_controls(component, channel_mixer_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023802 ARRAY_SIZE(channel_mixer_controls));
23803
Meng Wangee084a02018-09-04 16:11:58 +080023804 msm_qti_pp_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023805
Meng Wangee084a02018-09-04 16:11:58 +080023806 msm_dts_srs_tm_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023807
Meng Wangee084a02018-09-04 16:11:58 +080023808 msm_dolby_dap_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023809
Meng Wangee084a02018-09-04 16:11:58 +080023810 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023811 use_ds1_or_ds2_controls,
23812 ARRAY_SIZE(use_ds1_or_ds2_controls));
23813
Meng Wangee084a02018-09-04 16:11:58 +080023814 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023815 device_pp_params_mixer_controls,
23816 ARRAY_SIZE(device_pp_params_mixer_controls));
23817
Meng Wangee084a02018-09-04 16:11:58 +080023818 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023819 msm_routing_be_dai_name_table_mixer_controls,
23820 ARRAY_SIZE(msm_routing_be_dai_name_table_mixer_controls));
23821
Meng Wangee084a02018-09-04 16:11:58 +080023822 snd_soc_add_component_controls(component, msm_source_tracking_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023823 ARRAY_SIZE(msm_source_tracking_controls));
Meng Wangee084a02018-09-04 16:11:58 +080023824 snd_soc_add_component_controls(component, adm_channel_config_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023825 ARRAY_SIZE(adm_channel_config_controls));
23826
Meng Wangee084a02018-09-04 16:11:58 +080023827 snd_soc_add_component_controls(component, aptx_dec_license_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023828 ARRAY_SIZE(aptx_dec_license_controls));
Meng Wangee084a02018-09-04 16:11:58 +080023829 snd_soc_add_component_controls(component,
23830 stereo_channel_reverse_control,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023831 ARRAY_SIZE(stereo_channel_reverse_control));
Meng Wangee084a02018-09-04 16:11:58 +080023832 snd_soc_add_component_controls(
23833 component, msm_routing_feature_support_mixer_controls,
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080023834 ARRAY_SIZE(msm_routing_feature_support_mixer_controls));
23835
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023836 return 0;
23837}
23838
23839int msm_routing_pcm_new(struct snd_soc_pcm_runtime *runtime)
23840{
23841 return msm_pcm_routing_hwdep_new(runtime, msm_bedais);
23842}
23843
23844void msm_routing_pcm_free(struct snd_pcm *pcm)
23845{
23846 msm_pcm_routing_hwdep_free(pcm);
23847}
23848
Meng Wangee084a02018-09-04 16:11:58 +080023849static struct snd_soc_component_driver msm_soc_routing_component = {
23850 .name = DRV_NAME,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023851 .ops = &msm_routing_pcm_ops,
23852 .probe = msm_routing_probe,
23853 .pcm_new = msm_routing_pcm_new,
23854 .pcm_free = msm_routing_pcm_free,
23855};
23856
23857static int msm_routing_pcm_probe(struct platform_device *pdev)
23858{
23859
23860 dev_dbg(&pdev->dev, "dev name %s\n", dev_name(&pdev->dev));
Meng Wangee084a02018-09-04 16:11:58 +080023861 return snd_soc_register_component(&pdev->dev,
23862 &msm_soc_routing_component,
23863 NULL, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023864}
23865
23866static int msm_routing_pcm_remove(struct platform_device *pdev)
23867{
Meng Wangee084a02018-09-04 16:11:58 +080023868 snd_soc_unregister_component(&pdev->dev);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023869 return 0;
23870}
23871
23872static const struct of_device_id msm_pcm_routing_dt_match[] = {
23873 {.compatible = "qcom,msm-pcm-routing"},
23874 {}
23875};
23876MODULE_DEVICE_TABLE(of, msm_pcm_routing_dt_match);
23877
23878static struct platform_driver msm_routing_pcm_driver = {
23879 .driver = {
23880 .name = "msm-pcm-routing",
23881 .owner = THIS_MODULE,
23882 .of_match_table = msm_pcm_routing_dt_match,
23883 },
23884 .probe = msm_routing_pcm_probe,
23885 .remove = msm_routing_pcm_remove,
23886};
23887
23888int msm_routing_check_backend_enabled(int fedai_id)
23889{
23890 int i;
23891
23892 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
23893 /* bad ID assigned in machine driver */
23894 pr_err("%s: bad MM ID\n", __func__);
23895 return 0;
23896 }
23897 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
23898 if (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))
23899 return msm_bedais[i].active;
23900 }
23901 return 0;
23902}
23903
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023904static int get_cal_type_index(int32_t cal_type)
23905{
23906 int ret = -EINVAL;
23907
23908 switch (cal_type) {
23909 case ADM_TOPOLOGY_CAL_TYPE:
23910 ret = ADM_TOPOLOGY_CAL_TYPE_IDX;
23911 break;
23912 case ADM_LSM_TOPOLOGY_CAL_TYPE:
23913 ret = ADM_LSM_TOPOLOGY_CAL_TYPE_IDX;
23914 break;
23915 default:
23916 pr_err("%s: Invalid cal type %d\n", __func__, cal_type);
23917 }
23918 return ret;
23919}
23920
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023921static int msm_routing_set_cal(int32_t cal_type,
23922 size_t data_size, void *data)
23923{
23924 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023925 int cal_index;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023926 pr_debug("%s\n", __func__);
23927
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023928 cal_index = get_cal_type_index(cal_type);
23929 if (cal_index < 0) {
23930 pr_err("%s: Could not get cal index %d\n",
23931 __func__, cal_index);
23932 ret = -EINVAL;
23933 goto done;
23934 }
23935
23936 ret = cal_utils_set_cal(data_size, data, cal_data[cal_index], 0, NULL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023937 if (ret < 0) {
23938 pr_err("%s: cal_utils_set_cal failed, ret = %d, cal type = %d!\n",
23939 __func__, ret, cal_type);
23940 ret = -EINVAL;
23941 goto done;
23942 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023943 /* Pre-load if it is ADM topology */
23944 if ((cal_index == ADM_TOPOLOGY_CAL_TYPE_IDX) ||
23945 (cal_index == ADM_LSM_TOPOLOGY_CAL_TYPE_IDX)) {
23946 msm_routing_load_topology(data_size, data);
23947 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023948done:
23949 return ret;
23950}
23951
23952static void msm_routing_delete_cal_data(void)
23953{
23954 pr_debug("%s\n", __func__);
23955
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023956 cal_utils_destroy_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023957}
23958
23959static int msm_routing_init_cal_data(void)
23960{
23961 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023962 struct cal_type_info cal_type_info[] = {
23963 {{ADM_TOPOLOGY_CAL_TYPE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023964 {NULL, NULL, NULL,
23965 msm_routing_set_cal, NULL, NULL} },
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023966 {NULL, NULL, cal_utils_match_buf_num} },
23967
23968 {{ADM_LSM_TOPOLOGY_CAL_TYPE,
23969 {NULL, NULL, NULL,
23970 msm_routing_set_cal, NULL, NULL} },
23971 {NULL, NULL, cal_utils_match_buf_num} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023972 };
23973 pr_debug("%s\n", __func__);
23974
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023975 ret = cal_utils_create_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0],
23976 &cal_type_info[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023977 if (ret < 0) {
23978 pr_err("%s: could not create cal type!\n",
23979 __func__);
23980 ret = -EINVAL;
23981 goto err;
23982 }
23983
23984 return ret;
23985err:
23986 msm_routing_delete_cal_data();
23987 return ret;
23988}
23989
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053023990int __init msm_soc_routing_platform_init(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023991{
23992 mutex_init(&routing_lock);
23993 if (msm_routing_init_cal_data())
23994 pr_err("%s: could not init cal data!\n", __func__);
23995
23996 afe_set_routing_callback(
23997 (routing_cb)msm_pcm_get_dev_acdb_id_by_port_id);
23998
23999 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
24000 memset(&last_be_id_configured, 0, sizeof(last_be_id_configured));
24001
24002 return platform_driver_register(&msm_routing_pcm_driver);
24003}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024004
Asish Bhattacharya5faacb32017-12-04 17:23:15 +053024005void msm_soc_routing_platform_exit(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024006{
24007 msm_routing_delete_cal_data();
24008 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
24009 mutex_destroy(&routing_lock);
24010 platform_driver_unregister(&msm_routing_pcm_driver);
24011}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024012
24013MODULE_DESCRIPTION("MSM routing platform driver");
24014MODULE_LICENSE("GPL v2");