blob: b431685683d3105943134c01f5baf27bc330cbc9 [file] [log] [blame]
Vignesh Kulothungan5c109922018-01-24 17:36:18 -08001/* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302 *
3 * This program is free software; you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License version 2 and
5 * only version 2 as published by the Free Software Foundation.
6 *
7 * This program is distributed in the hope that it will be useful,
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 * GNU General Public License for more details.
11 */
12
13#include <linux/init.h>
14#include <linux/err.h>
15#include <linux/module.h>
16#include <linux/moduleparam.h>
17#include <linux/platform_device.h>
18#include <linux/bitops.h>
19#include <linux/mutex.h>
20#include <linux/of_device.h>
21#include <linux/slab.h>
22#include <sound/core.h>
23#include <sound/soc.h>
24#include <sound/soc-dapm.h>
25#include <sound/pcm.h>
26#include <sound/initval.h>
27#include <sound/control.h>
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028#include <sound/tlv.h>
29#include <sound/asound.h>
30#include <sound/pcm_params.h>
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053031#include <sound/hwdep.h>
Laxminath Kasam605b42f2017-08-01 22:02:15 +053032#include <sound/audio_effects.h>
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053033#include <dsp/msm-dts-srs-tm-config.h>
Laxminath Kasam605b42f2017-08-01 22:02:15 +053034#include <dsp/q6voice.h>
35#include <dsp/q6adm-v2.h>
36#include <dsp/q6asm-v2.h>
37#include <dsp/q6afe-v2.h>
38#include <dsp/q6lsm.h>
39#include <dsp/q6core.h>
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080040#include <dsp/q6common.h>
Laxminath Kasam605b42f2017-08-01 22:02:15 +053041#include <dsp/audio_cal_utils.h>
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053042
43#include "msm-pcm-routing-v2.h"
44#include "msm-pcm-routing-devdep.h"
45#include "msm-qti-pp-config.h"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053046#include "msm-dolby-dap-config.h"
47#include "msm-ds2-dap-config.h"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053048
49#ifndef CONFIG_DOLBY_DAP
50#undef DOLBY_ADM_COPP_TOPOLOGY_ID
51#define DOLBY_ADM_COPP_TOPOLOGY_ID 0xFFFFFFFE
52#endif
53
54#ifndef CONFIG_DOLBY_DS2
55#undef DS2_ADM_COPP_TOPOLOGY_ID
56#define DS2_ADM_COPP_TOPOLOGY_ID 0xFFFFFFFF
57#endif
58
59static struct mutex routing_lock;
60
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053061static struct cal_type_data *cal_data[MAX_ROUTING_CAL_TYPES];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053062
63static int fm_switch_enable;
64static int hfp_switch_enable;
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080065static int a2dp_switch_enable;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053066static int int0_mi2s_switch_enable;
67static int int4_mi2s_switch_enable;
68static int pri_mi2s_switch_enable;
69static int sec_mi2s_switch_enable;
70static int tert_mi2s_switch_enable;
71static int quat_mi2s_switch_enable;
Rohit Kumara5077932017-09-10 22:05:05 +053072static int quin_mi2s_switch_enable;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053073static int fm_pcmrx_switch_enable;
74static int usb_switch_enable;
75static int lsm_port_index;
76static int slim0_rx_aanc_fb_port;
77static int msm_route_ec_ref_rx;
78static int msm_ec_ref_ch = 4;
79static int msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
80static int msm_ec_ref_sampling_rate = 48000;
81static uint32_t voc_session_id = ALL_SESSION_VSID;
82static int msm_route_ext_ec_ref;
83static bool is_custom_stereo_on;
84static bool is_ds2_on;
85static bool swap_ch;
Sudheer Papothic07b37a2018-05-04 05:56:47 +053086static int aanc_level;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053087
88#define WEIGHT_0_DB 0x4000
89/* all the FEs which can support channel mixer */
90static struct msm_pcm_channel_mixer channel_mixer[MSM_FRONTEND_DAI_MM_SIZE];
91/* input BE for each FE */
92static int channel_input[MSM_FRONTEND_DAI_MM_SIZE][ADM_MAX_CHANNELS];
93
94enum {
95 MADNONE,
96 MADAUDIO,
97 MADBEACON,
98 MADULTRASOUND,
99 MADSWAUDIO,
100};
101
102#define ADM_LSM_PORT_INDEX 9
103
104#define SLIMBUS_0_TX_TEXT "SLIMBUS_0_TX"
105#define SLIMBUS_1_TX_TEXT "SLIMBUS_1_TX"
106#define SLIMBUS_2_TX_TEXT "SLIMBUS_2_TX"
107#define SLIMBUS_3_TX_TEXT "SLIMBUS_3_TX"
108#define SLIMBUS_4_TX_TEXT "SLIMBUS_4_TX"
109#define SLIMBUS_5_TX_TEXT "SLIMBUS_5_TX"
110#define TERT_MI2S_TX_TEXT "TERT_MI2S_TX"
111#define QUAT_MI2S_TX_TEXT "QUAT_MI2S_TX"
112#define ADM_LSM_TX_TEXT "ADM_LSM_TX"
113#define INT3_MI2S_TX_TEXT "INT3_MI2S_TX"
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +0530114#define VA_CDC_DMA_TX_0_TEXT "VA_CDC_DMA_TX_0"
115#define VA_CDC_DMA_TX_1_TEXT "VA_CDC_DMA_TX_1"
Aditya Bavanarie9454c62018-08-23 23:45:20 +0530116#define TX_CDC_DMA_TX_3_TEXT "TX_CDC_DMA_TX_3"
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +0530117#define QUIN_TDM_TX_TEXT "QUIN_TDM_TX_0"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530118
119#define LSM_FUNCTION_TEXT "LSM Function"
120static const char * const lsm_port_text[] = {
121 "None",
122 SLIMBUS_0_TX_TEXT, SLIMBUS_1_TX_TEXT, SLIMBUS_2_TX_TEXT,
123 SLIMBUS_3_TX_TEXT, SLIMBUS_4_TX_TEXT, SLIMBUS_5_TX_TEXT,
124 TERT_MI2S_TX_TEXT, QUAT_MI2S_TX_TEXT, ADM_LSM_TX_TEXT,
Aditya Bavanarie9454c62018-08-23 23:45:20 +0530125 INT3_MI2S_TX_TEXT, VA_CDC_DMA_TX_0_TEXT, VA_CDC_DMA_TX_1_TEXT,
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +0530126 TX_CDC_DMA_TX_3_TEXT, QUIN_TDM_TX_TEXT
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530127};
128
129struct msm_pcm_route_bdai_pp_params {
130 u16 port_id; /* AFE port ID */
131 unsigned long pp_params_config;
132 bool mute_on;
133 int latency;
134};
135
136static struct msm_pcm_route_bdai_pp_params
137 msm_bedais_pp_params[MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX] = {
138 {HDMI_RX, 0, 0, 0},
139 {DISPLAY_PORT_RX, 0, 0, 0},
140};
141
142/*
143 * The be_dai_name_table is passed to HAL so that it can specify the
144 * BE ID for the BE it wants to enable based on the name. Thus there
145 * is a matching table and structure in HAL that need to be updated
146 * if any changes to these are made.
147 */
148struct msm_pcm_route_bdai_name {
149 unsigned int be_id;
150 char be_name[LPASS_BE_NAME_MAX_LENGTH];
151};
152static struct msm_pcm_route_bdai_name be_dai_name_table[MSM_BACKEND_DAI_MAX];
153
154static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
155 int fe_id);
156
Vikram Panduranga6e55ad82018-03-14 13:56:18 -0700157static void msm_routing_load_topology(size_t data_size, void *data);
158static void msm_routing_unload_topology(uint32_t topology_id);
159
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530160static int msm_routing_get_bit_width(unsigned int format)
161{
162 int bit_width;
163
164 switch (format) {
165 case SNDRV_PCM_FORMAT_S32_LE:
166 bit_width = 32;
167 break;
168 case SNDRV_PCM_FORMAT_S24_LE:
169 case SNDRV_PCM_FORMAT_S24_3LE:
170 bit_width = 24;
171 break;
172 case SNDRV_PCM_FORMAT_S16_LE:
173 default:
174 bit_width = 16;
175 }
176 return bit_width;
177}
178
179static bool msm_is_resample_needed(int input_sr, int output_sr)
180{
181 bool rc = false;
182
183 if (input_sr != output_sr)
184 rc = true;
185
186 pr_debug("perform resampling (%s) for copp rate (%d)afe rate (%d)",
187 (rc ? "oh yes" : "not really"),
188 input_sr, output_sr);
189
190 return rc;
191}
192
193static void msm_pcm_routing_cfg_pp(int port_id, int copp_idx, int topology,
194 int channels)
195{
196 int rc = 0;
197
198 switch (topology) {
199 case SRS_TRUMEDIA_TOPOLOGY_ID:
200 pr_debug("%s: SRS_TRUMEDIA_TOPOLOGY_ID\n", __func__);
201 msm_dts_srs_tm_init(port_id, copp_idx);
202 break;
203 case DS2_ADM_COPP_TOPOLOGY_ID:
204 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY %d\n",
205 __func__, DS2_ADM_COPP_TOPOLOGY_ID);
206 rc = msm_ds2_dap_init(port_id, copp_idx, channels,
207 is_custom_stereo_on);
208 if (rc < 0)
209 pr_err("%s: DS2 topo_id 0x%x, port %d, CS %d rc %d\n",
210 __func__, topology, port_id,
211 is_custom_stereo_on, rc);
212 break;
213 case DOLBY_ADM_COPP_TOPOLOGY_ID:
214 if (is_ds2_on) {
215 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY\n", __func__);
216 rc = msm_ds2_dap_init(port_id, copp_idx, channels,
217 is_custom_stereo_on);
218 if (rc < 0)
219 pr_err("%s:DS2 topo_id 0x%x, port %d, rc %d\n",
220 __func__, topology, port_id, rc);
221 } else {
222 pr_debug("%s: DOLBY_ADM_COPP_TOPOLOGY_ID\n", __func__);
223 rc = msm_dolby_dap_init(port_id, copp_idx, channels,
224 is_custom_stereo_on);
225 if (rc < 0)
226 pr_err("%s: DS1 topo_id 0x%x, port %d, rc %d\n",
227 __func__, topology, port_id, rc);
228 }
229 break;
230 case ADM_CMD_COPP_OPEN_TOPOLOGY_ID_AUDIOSPHERE:
231 pr_debug("%s: TOPOLOGY_ID_AUDIOSPHERE\n", __func__);
232 rc = msm_qti_pp_asphere_init(port_id, copp_idx);
233 if (rc < 0)
234 pr_err("%s: topo_id 0x%x, port %d, copp %d, rc %d\n",
235 __func__, topology, port_id, copp_idx, rc);
236 break;
237 default:
238 /* custom topology specific feature param handlers */
239 break;
240 }
241}
242
243static void msm_pcm_routing_deinit_pp(int port_id, int topology)
244{
245 switch (topology) {
246 case SRS_TRUMEDIA_TOPOLOGY_ID:
247 pr_debug("%s: SRS_TRUMEDIA_TOPOLOGY_ID\n", __func__);
248 msm_dts_srs_tm_deinit(port_id);
249 break;
250 case DS2_ADM_COPP_TOPOLOGY_ID:
251 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY_ID %d\n",
252 __func__, DS2_ADM_COPP_TOPOLOGY_ID);
253 msm_ds2_dap_deinit(port_id);
254 break;
255 case DOLBY_ADM_COPP_TOPOLOGY_ID:
256 if (is_ds2_on) {
257 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY_ID\n", __func__);
258 msm_ds2_dap_deinit(port_id);
259 } else {
260 pr_debug("%s: DOLBY_ADM_COPP_TOPOLOGY_ID\n", __func__);
261 msm_dolby_dap_deinit(port_id);
262 }
263 break;
264 case ADM_CMD_COPP_OPEN_TOPOLOGY_ID_AUDIOSPHERE:
265 pr_debug("%s: TOPOLOGY_ID_AUDIOSPHERE\n", __func__);
266 msm_qti_pp_asphere_deinit(port_id);
267 break;
268 default:
269 /* custom topology specific feature deinit handlers */
270 break;
271 }
272}
273
274static void msm_pcm_routng_cfg_matrix_map_pp(struct route_payload payload,
275 int path_type, int perf_mode)
276{
277 int itr = 0, rc = 0;
278
279 if ((path_type == ADM_PATH_PLAYBACK) &&
280 (perf_mode == LEGACY_PCM_MODE) &&
281 is_custom_stereo_on) {
282 for (itr = 0; itr < payload.num_copps; itr++) {
283 if ((payload.port_id[itr] != SLIMBUS_0_RX) &&
284 (payload.port_id[itr] != RT_PROXY_PORT_001_RX)) {
285 continue;
286 }
287
288 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd(
289 payload.port_id[itr],
290 payload.copp_idx[itr],
291 payload.session_id,
292 Q14_GAIN_ZERO_POINT_FIVE,
293 Q14_GAIN_ZERO_POINT_FIVE,
294 Q14_GAIN_ZERO_POINT_FIVE,
295 Q14_GAIN_ZERO_POINT_FIVE);
296 if (rc < 0)
297 pr_err("%s: err setting custom stereo\n",
298 __func__);
299 }
300 }
301}
302
303#define SLIMBUS_EXTPROC_RX AFE_PORT_INVALID
304struct msm_pcm_routing_bdai_data msm_bedais[MSM_BACKEND_DAI_MAX] = {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530305 { PRIMARY_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_PRI_I2S_RX},
306 { PRIMARY_I2S_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_PRI_I2S_TX},
307 { SLIMBUS_0_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_0_RX},
308 { SLIMBUS_0_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_0_TX},
309 { HDMI_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_HDMI},
310 { INT_BT_SCO_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_BT_SCO_RX},
311 { INT_BT_SCO_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_BT_SCO_TX},
312 { INT_FM_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_FM_RX},
313 { INT_FM_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_FM_TX},
314 { RT_PROXY_PORT_001_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530315 LPASS_BE_AFE_PCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530316 { RT_PROXY_PORT_001_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530317 LPASS_BE_AFE_PCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530318 { AFE_PORT_ID_PRIMARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530319 LPASS_BE_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530320 { AFE_PORT_ID_PRIMARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530321 LPASS_BE_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530322 { VOICE_PLAYBACK_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530323 LPASS_BE_VOICE_PLAYBACK_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530324 { VOICE2_PLAYBACK_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530325 LPASS_BE_VOICE2_PLAYBACK_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530326 { VOICE_RECORD_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530327 LPASS_BE_INCALL_RECORD_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530328 { VOICE_RECORD_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530329 LPASS_BE_INCALL_RECORD_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530330 { MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_MI2S_RX},
331 { MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_MI2S_TX},
332 { SECONDARY_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SEC_I2S_RX},
333 { SLIMBUS_1_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_1_RX},
334 { SLIMBUS_1_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_1_TX},
335 { SLIMBUS_2_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_2_RX},
336 { SLIMBUS_2_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_2_TX},
337 { SLIMBUS_3_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_3_RX},
338 { SLIMBUS_3_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_3_TX},
339 { SLIMBUS_4_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_4_RX},
340 { SLIMBUS_4_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_4_TX},
341 { SLIMBUS_5_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_5_RX},
342 { SLIMBUS_5_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_5_TX},
343 { SLIMBUS_6_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_6_RX},
344 { SLIMBUS_6_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_6_TX},
345 { SLIMBUS_7_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_7_RX},
346 { SLIMBUS_7_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_7_TX},
347 { SLIMBUS_8_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_8_RX},
348 { SLIMBUS_8_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_8_TX},
349 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_RX},
350 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_TX},
351 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_1_TX},
352 { AFE_PORT_ID_QUATERNARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530353 LPASS_BE_QUAT_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530354 { AFE_PORT_ID_QUATERNARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530355 LPASS_BE_QUAT_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530356 { AFE_PORT_ID_SECONDARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530357 LPASS_BE_SEC_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530358 { AFE_PORT_ID_SECONDARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530359 LPASS_BE_SEC_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530360 { AFE_PORT_ID_PRIMARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530361 LPASS_BE_PRI_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530362 { AFE_PORT_ID_PRIMARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530363 LPASS_BE_PRI_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530364 { AFE_PORT_ID_TERTIARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530365 LPASS_BE_TERT_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530366 { AFE_PORT_ID_TERTIARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530367 LPASS_BE_TERT_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530368 { AUDIO_PORT_ID_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530369 LPASS_BE_AUDIO_I2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530370 { AFE_PORT_ID_SECONDARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530371 LPASS_BE_SEC_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530372 { AFE_PORT_ID_SECONDARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530373 LPASS_BE_SEC_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530374 { AFE_PORT_ID_PRIMARY_SPDIF_RX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200375 LPASS_BE_PRI_SPDIF_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530376 { AFE_PORT_ID_SECONDARY_MI2S_RX_SD1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530377 LPASS_BE_SEC_MI2S_RX_SD1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530378 { AFE_PORT_ID_QUINARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530379 LPASS_BE_QUIN_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530380 { AFE_PORT_ID_QUINARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530381 LPASS_BE_QUIN_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530382 { AFE_PORT_ID_SENARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530383 LPASS_BE_SENARY_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530384 { AFE_PORT_ID_PRIMARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530385 LPASS_BE_PRI_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530386 { AFE_PORT_ID_PRIMARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530387 LPASS_BE_PRI_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530388 { AFE_PORT_ID_PRIMARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530389 LPASS_BE_PRI_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530390 { AFE_PORT_ID_PRIMARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530391 LPASS_BE_PRI_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530392 { AFE_PORT_ID_PRIMARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530393 LPASS_BE_PRI_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530394 { AFE_PORT_ID_PRIMARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530395 LPASS_BE_PRI_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530396 { AFE_PORT_ID_PRIMARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530397 LPASS_BE_PRI_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530398 { AFE_PORT_ID_PRIMARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530399 LPASS_BE_PRI_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530400 { AFE_PORT_ID_PRIMARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530401 LPASS_BE_PRI_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530402 { AFE_PORT_ID_PRIMARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530403 LPASS_BE_PRI_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530404 { AFE_PORT_ID_PRIMARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530405 LPASS_BE_PRI_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530406 { AFE_PORT_ID_PRIMARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530407 LPASS_BE_PRI_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530408 { AFE_PORT_ID_PRIMARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530409 LPASS_BE_PRI_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530410 { AFE_PORT_ID_PRIMARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530411 LPASS_BE_PRI_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530412 { AFE_PORT_ID_PRIMARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530413 LPASS_BE_PRI_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530414 { AFE_PORT_ID_PRIMARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530415 LPASS_BE_PRI_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530416 { AFE_PORT_ID_SECONDARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530417 LPASS_BE_SEC_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530418 { AFE_PORT_ID_SECONDARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530419 LPASS_BE_SEC_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530420 { AFE_PORT_ID_SECONDARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530421 LPASS_BE_SEC_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530422 { AFE_PORT_ID_SECONDARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530423 LPASS_BE_SEC_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530424 { AFE_PORT_ID_SECONDARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530425 LPASS_BE_SEC_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530426 { AFE_PORT_ID_SECONDARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530427 LPASS_BE_SEC_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530428 { AFE_PORT_ID_SECONDARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530429 LPASS_BE_SEC_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530430 { AFE_PORT_ID_SECONDARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530431 LPASS_BE_SEC_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530432 { AFE_PORT_ID_SECONDARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530433 LPASS_BE_SEC_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530434 { AFE_PORT_ID_SECONDARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530435 LPASS_BE_SEC_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530436 { AFE_PORT_ID_SECONDARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530437 LPASS_BE_SEC_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530438 { AFE_PORT_ID_SECONDARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530439 LPASS_BE_SEC_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530440 { AFE_PORT_ID_SECONDARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530441 LPASS_BE_SEC_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530442 { AFE_PORT_ID_SECONDARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530443 LPASS_BE_SEC_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530444 { AFE_PORT_ID_SECONDARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530445 LPASS_BE_SEC_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530446 { AFE_PORT_ID_SECONDARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530447 LPASS_BE_SEC_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530448 { AFE_PORT_ID_TERTIARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530449 LPASS_BE_TERT_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530450 { AFE_PORT_ID_TERTIARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530451 LPASS_BE_TERT_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530452 { AFE_PORT_ID_TERTIARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530453 LPASS_BE_TERT_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530454 { AFE_PORT_ID_TERTIARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530455 LPASS_BE_TERT_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530456 { AFE_PORT_ID_TERTIARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530457 LPASS_BE_TERT_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530458 { AFE_PORT_ID_TERTIARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530459 LPASS_BE_TERT_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530460 { AFE_PORT_ID_TERTIARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530461 LPASS_BE_TERT_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530462 { AFE_PORT_ID_TERTIARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530463 LPASS_BE_TERT_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530464 { AFE_PORT_ID_TERTIARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530465 LPASS_BE_TERT_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530466 { AFE_PORT_ID_TERTIARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530467 LPASS_BE_TERT_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530468 { AFE_PORT_ID_TERTIARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530469 LPASS_BE_TERT_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530470 { AFE_PORT_ID_TERTIARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530471 LPASS_BE_TERT_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530472 { AFE_PORT_ID_TERTIARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530473 LPASS_BE_TERT_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530474 { AFE_PORT_ID_TERTIARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530475 LPASS_BE_TERT_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530476 { AFE_PORT_ID_TERTIARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530477 LPASS_BE_TERT_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530478 { AFE_PORT_ID_TERTIARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530479 LPASS_BE_TERT_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530480 { AFE_PORT_ID_QUATERNARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530481 LPASS_BE_QUAT_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530482 { AFE_PORT_ID_QUATERNARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530483 LPASS_BE_QUAT_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530484 { AFE_PORT_ID_QUATERNARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530485 LPASS_BE_QUAT_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530486 { AFE_PORT_ID_QUATERNARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530487 LPASS_BE_QUAT_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530488 { AFE_PORT_ID_QUATERNARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530489 LPASS_BE_QUAT_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530490 { AFE_PORT_ID_QUATERNARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530491 LPASS_BE_QUAT_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530492 { AFE_PORT_ID_QUATERNARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530493 LPASS_BE_QUAT_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530494 { AFE_PORT_ID_QUATERNARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530495 LPASS_BE_QUAT_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530496 { AFE_PORT_ID_QUATERNARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530497 LPASS_BE_QUAT_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530498 { AFE_PORT_ID_QUATERNARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530499 LPASS_BE_QUAT_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530500 { AFE_PORT_ID_QUATERNARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530501 LPASS_BE_QUAT_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530502 { AFE_PORT_ID_QUATERNARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530503 LPASS_BE_QUAT_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530504 { AFE_PORT_ID_QUATERNARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530505 LPASS_BE_QUAT_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530506 { AFE_PORT_ID_QUATERNARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530507 LPASS_BE_QUAT_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530508 { AFE_PORT_ID_QUATERNARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530509 LPASS_BE_QUAT_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530510 { AFE_PORT_ID_QUATERNARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530511 LPASS_BE_QUAT_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530512 { AFE_PORT_ID_QUINARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530513 LPASS_BE_QUIN_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530514 { AFE_PORT_ID_QUINARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530515 LPASS_BE_QUIN_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530516 { AFE_PORT_ID_QUINARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530517 LPASS_BE_QUIN_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530518 { AFE_PORT_ID_QUINARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530519 LPASS_BE_QUIN_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530520 { AFE_PORT_ID_QUINARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530521 LPASS_BE_QUIN_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530522 { AFE_PORT_ID_QUINARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530523 LPASS_BE_QUIN_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530524 { AFE_PORT_ID_QUINARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530525 LPASS_BE_QUIN_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530526 { AFE_PORT_ID_QUINARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530527 LPASS_BE_QUIN_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530528 { AFE_PORT_ID_QUINARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530529 LPASS_BE_QUIN_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530530 { AFE_PORT_ID_QUINARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530531 LPASS_BE_QUIN_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530532 { AFE_PORT_ID_QUINARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530533 LPASS_BE_QUIN_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530534 { AFE_PORT_ID_QUINARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530535 LPASS_BE_QUIN_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530536 { AFE_PORT_ID_QUINARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530537 LPASS_BE_QUIN_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530538 { AFE_PORT_ID_QUINARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530539 LPASS_BE_QUIN_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530540 { AFE_PORT_ID_QUINARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530541 LPASS_BE_QUIN_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530542 { AFE_PORT_ID_QUINARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530543 LPASS_BE_QUIN_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530544 { INT_BT_A2DP_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530545 LPASS_BE_INT_BT_A2DP_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530546 { AFE_PORT_ID_USB_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530547 LPASS_BE_USB_AUDIO_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530548 { AFE_PORT_ID_USB_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530549 LPASS_BE_USB_AUDIO_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530550 { DISPLAY_PORT_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530551 LPASS_BE_DISPLAY_PORT},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530552 { DISPLAY_PORT_RX, 0, {0}, {0}, 0, 0, 0, 0,
Karthikeyan Mani57550082018-05-03 18:43:58 -0700553 LPASS_BE_DISPLAY_PORT1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530554 { AFE_PORT_ID_TERTIARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530555 LPASS_BE_TERT_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530556 { AFE_PORT_ID_TERTIARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530557 LPASS_BE_TERT_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530558 { AFE_PORT_ID_QUATERNARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530559 LPASS_BE_QUAT_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530560 { AFE_PORT_ID_QUATERNARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530561 LPASS_BE_QUAT_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530562 { AFE_PORT_ID_QUINARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530563 LPASS_BE_QUIN_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530564 { AFE_PORT_ID_QUINARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530565 LPASS_BE_QUIN_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530566 { AFE_PORT_ID_INT0_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530567 LPASS_BE_INT0_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530568 { AFE_PORT_ID_INT0_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530569 LPASS_BE_INT0_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530570 { AFE_PORT_ID_INT1_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530571 LPASS_BE_INT1_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530572 { AFE_PORT_ID_INT1_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530573 LPASS_BE_INT1_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530574 { AFE_PORT_ID_INT2_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530575 LPASS_BE_INT2_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530576 { AFE_PORT_ID_INT2_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530577 LPASS_BE_INT2_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530578 { AFE_PORT_ID_INT3_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530579 LPASS_BE_INT3_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530580 { AFE_PORT_ID_INT3_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530581 LPASS_BE_INT3_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530582 { AFE_PORT_ID_INT4_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530583 LPASS_BE_INT4_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530584 { AFE_PORT_ID_INT4_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530585 LPASS_BE_INT4_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530586 { AFE_PORT_ID_INT5_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530587 LPASS_BE_INT5_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530588 { AFE_PORT_ID_INT5_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530589 LPASS_BE_INT5_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530590 { AFE_PORT_ID_INT6_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530591 LPASS_BE_INT6_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530592 { AFE_PORT_ID_INT6_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530593 LPASS_BE_INT6_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530594 { AFE_PORT_ID_WSA_CODEC_DMA_RX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530595 LPASS_BE_WSA_CDC_DMA_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530596 { AFE_PORT_ID_WSA_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530597 LPASS_BE_WSA_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530598 { AFE_PORT_ID_WSA_CODEC_DMA_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530599 LPASS_BE_WSA_CDC_DMA_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530600 { AFE_PORT_ID_WSA_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530601 LPASS_BE_WSA_CDC_DMA_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530602 { AFE_PORT_ID_WSA_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530603 LPASS_BE_WSA_CDC_DMA_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530604 { AFE_PORT_ID_VA_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530605 LPASS_BE_VA_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530606 { AFE_PORT_ID_VA_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530607 LPASS_BE_VA_CDC_DMA_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530608 { AFE_PORT_ID_RX_CODEC_DMA_RX_0, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530609 LPASS_BE_RX_CDC_DMA_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530610 { AFE_PORT_ID_TX_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530611 LPASS_BE_TX_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530612 { AFE_PORT_ID_RX_CODEC_DMA_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530613 LPASS_BE_RX_CDC_DMA_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530614 { AFE_PORT_ID_TX_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530615 LPASS_BE_TX_CDC_DMA_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530616 { AFE_PORT_ID_RX_CODEC_DMA_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530617 LPASS_BE_RX_CDC_DMA_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530618 { AFE_PORT_ID_TX_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530619 LPASS_BE_TX_CDC_DMA_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530620 { AFE_PORT_ID_RX_CODEC_DMA_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530621 LPASS_BE_RX_CDC_DMA_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530622 { AFE_PORT_ID_TX_CODEC_DMA_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530623 LPASS_BE_TX_CDC_DMA_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530624 { AFE_PORT_ID_RX_CODEC_DMA_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530625 LPASS_BE_RX_CDC_DMA_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530626 { AFE_PORT_ID_TX_CODEC_DMA_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530627 LPASS_BE_TX_CDC_DMA_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530628 { AFE_PORT_ID_RX_CODEC_DMA_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530629 LPASS_BE_RX_CDC_DMA_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530630 { AFE_PORT_ID_TX_CODEC_DMA_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530631 LPASS_BE_TX_CDC_DMA_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530632 { AFE_PORT_ID_RX_CODEC_DMA_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530633 LPASS_BE_RX_CDC_DMA_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530634 { AFE_PORT_ID_RX_CODEC_DMA_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530635 LPASS_BE_RX_CDC_DMA_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530636 { AFE_PORT_ID_PRIMARY_SPDIF_TX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200637 LPASS_BE_PRI_SPDIF_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530638 { AFE_PORT_ID_SECONDARY_SPDIF_RX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200639 LPASS_BE_SEC_SPDIF_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530640 { AFE_PORT_ID_SECONDARY_SPDIF_TX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200641 LPASS_BE_SEC_SPDIF_TX},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530642};
643
644/* Track ASM playback & capture sessions of DAI
645 * Track LSM listen sessions
646 */
647static struct msm_pcm_routing_fdai_data
648 fe_dai_map[MSM_FRONTEND_DAI_MAX][2] = {
649 /* MULTIMEDIA1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530650 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
651 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530652 /* MULTIMEDIA2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530653 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
654 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530655 /* MULTIMEDIA3 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530656 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
657 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530658 /* MULTIMEDIA4 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530659 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
660 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530661 /* MULTIMEDIA5 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530662 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
663 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530664 /* MULTIMEDIA6 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530665 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
666 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530667 /* MULTIMEDIA7*/
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530668 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
669 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530670 /* MULTIMEDIA8 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530671 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
672 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530673 /* MULTIMEDIA9 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530674 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
675 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530676 /* MULTIMEDIA10 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530677 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
678 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530679 /* MULTIMEDIA11 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530680 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
681 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530682 /* MULTIMEDIA12 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530683 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
684 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530685 /* MULTIMEDIA13 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530686 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
687 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530688 /* MULTIMEDIA14 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530689 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
690 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530691 /* MULTIMEDIA15 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530692 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
693 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530694 /* MULTIMEDIA16 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530695 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
696 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530697 /* MULTIMEDIA17 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530698 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
699 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530700 /* MULTIMEDIA18 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530701 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
702 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530703 /* MULTIMEDIA19 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530704 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
705 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530706 /* MULTIMEDIA20 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530707 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
708 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Derek Chen07c6d1c2018-07-05 10:39:25 -0700709 /* MULTIMEDIA21 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530710 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
711 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Surendar Karkac1cde372018-08-14 18:56:24 +0530712 /* MULTIMEDIA26 */
713 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
714 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
715 /* MULTIMEDIA27 */
716 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
717 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +0530718 /* MULTIMEDIA28 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530719 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
720 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +0530721 /* MULTIMEDIA29 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530722 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
723 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530724 /* VOIP */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530725 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
726 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530727 /* AFE_RX */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530728 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
729 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530730 /* AFE_TX */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530731 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
732 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530733 /* VOICE_STUB */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530734 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
735 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530736 /* DTMF_RX */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530737 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
738 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530739 /* QCHAT */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530740 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
741 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530742 /* VOLTE_STUB */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530743 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
744 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530745 /* LSM1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530746 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
747 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530748 /* LSM2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530749 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
750 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530751 /* LSM3 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530752 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
753 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530754 /* LSM4 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530755 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
756 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530757 /* LSM5 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530758 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
759 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530760 /* LSM6 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530761 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
762 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530763 /* LSM7 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530764 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
765 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530766 /* LSM8 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530767 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
768 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530769 /* VOICE2_STUB */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530770 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
771 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530772 /* VOICEMMODE1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530773 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
774 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530775 /* VOICEMMODE2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530776 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
777 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530778};
779
780static unsigned long session_copp_map[MSM_FRONTEND_DAI_MAX][2]
781 [MSM_BACKEND_DAI_MAX];
782static struct msm_pcm_routing_app_type_data app_type_cfg[MAX_APP_TYPES];
783static struct msm_pcm_routing_app_type_data lsm_app_type_cfg[MAX_APP_TYPES];
784static struct msm_pcm_stream_app_type_cfg
785 fe_dai_app_type_cfg[MSM_FRONTEND_DAI_MAX][2][MSM_BACKEND_DAI_MAX];
786
787static int last_be_id_configured[MSM_FRONTEND_DAI_MAX][MAX_SESSION_TYPES];
788
789/* The caller of this should aqcuire routing lock */
790void msm_pcm_routing_get_bedai_info(int be_idx,
791 struct msm_pcm_routing_bdai_data *be_dai)
792{
793 if (be_idx >= 0 && be_idx < MSM_BACKEND_DAI_MAX)
794 memcpy(be_dai, &msm_bedais[be_idx],
795 sizeof(struct msm_pcm_routing_bdai_data));
796}
797
798/* The caller of this should aqcuire routing lock */
799void msm_pcm_routing_get_fedai_info(int fe_idx, int sess_type,
800 struct msm_pcm_routing_fdai_data *fe_dai)
801{
802 if ((sess_type == SESSION_TYPE_TX) || (sess_type == SESSION_TYPE_RX))
803 memcpy(fe_dai, &fe_dai_map[fe_idx][sess_type],
804 sizeof(struct msm_pcm_routing_fdai_data));
805}
806
807void msm_pcm_routing_acquire_lock(void)
808{
809 mutex_lock(&routing_lock);
810}
811
812void msm_pcm_routing_release_lock(void)
813{
814 mutex_unlock(&routing_lock);
815}
816
817static int msm_pcm_routing_get_app_type_idx(int app_type)
818{
819 int idx;
820
821 pr_debug("%s: app_type: %d\n", __func__, app_type);
822 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
823 if (app_type_cfg[idx].app_type == app_type)
824 return idx;
825 }
826 pr_info("%s: App type not available, fallback to default\n", __func__);
827 return 0;
828}
829
830static int msm_pcm_routing_get_lsm_app_type_idx(int app_type)
831{
832 int idx;
833
834 pr_debug("%s: app_type: %d\n", __func__, app_type);
835 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
836 if (lsm_app_type_cfg[idx].app_type == app_type)
837 return idx;
838 }
839 pr_debug("%s: App type not available, fallback to default\n", __func__);
840 return 0;
841}
842
843static bool is_mm_lsm_fe_id(int fe_id)
844{
845 bool rc = true;
846
847 if (fe_id > MSM_FRONTEND_DAI_MM_MAX_ID &&
848 ((fe_id < MSM_FRONTEND_DAI_LSM1) ||
849 (fe_id > MSM_FRONTEND_DAI_LSM8))) {
850 rc = false;
851 }
852 return rc;
853}
854
Bhalchandra Gajareeed46bd2018-05-15 16:48:07 -0700855/*
856 * msm_pcm_routing_send_chmix_cfg:
857 * send the channel mixer command to mix the input channels
858 * into output channels.
859 *
860 * @fe_id: front end id
861 * @ip_channel_cnt: input channel count
862 * @op_channel_cnt: output channel count
863 * @ch_wght_coeff: channel weight co-efficients for channel mixing
864 * @session_type: indicates session is of type TX or RX
865 * @stream_type: indicates either Audio or Listen stream type
866 */
867int msm_pcm_routing_send_chmix_cfg(int fe_id, int ip_channel_cnt,
868 int op_channel_cnt, int *ch_wght_coeff,
869 int session_type, int stream_type)
870{
871
872 int rc = 0, idx = 0;
873 int be_index = 0, port_id;
874 unsigned int session_id = 0;
875
876 pr_debug("%s:fe_id[%d] ip_ch[%d] op_ch[%d] sess_type [%d], stream_type[%d]",
877 __func__, fe_id, ip_channel_cnt, op_channel_cnt, session_type,
878 stream_type);
879 if (!is_mm_lsm_fe_id(fe_id)) {
880 /* bad ID assigned in machine driver */
881 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
882 return -EINVAL;
883 }
884
885 if (ch_wght_coeff == NULL) {
886 pr_err("%s: Null channel weightage coefficients passed\n",
887 __func__);
888 return -EINVAL;
889 }
890
891 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
892 port_id = msm_bedais[be_index].port_id;
893 if (!msm_bedais[be_index].active ||
894 !test_bit(fe_id, &msm_bedais[be_index].fe_sessions[0]))
895 continue;
896
897 session_id = fe_dai_map[fe_id][session_type].strm_id;
898
899 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
900 unsigned long copp =
901 session_copp_map[fe_id][session_type][be_index];
902 if (!test_bit(idx, &copp))
903 continue;
904 msm_qti_pp_send_chmix_cfg_cmd(port_id, idx,
905 session_id, ip_channel_cnt,
906 op_channel_cnt, ch_wght_coeff,
907 session_type, stream_type);
908 if (rc < 0)
909 pr_err("%s: err setting channel mix config\n",
910 __func__);
911 }
912 }
913
914 return 0;
915}
916EXPORT_SYMBOL(msm_pcm_routing_send_chmix_cfg);
917
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530918int msm_pcm_routing_reg_stream_app_type_cfg(
919 int fedai_id, int session_type, int be_id,
920 struct msm_pcm_stream_app_type_cfg *cfg_data)
921{
922 int ret = 0;
923
924 if (cfg_data == NULL) {
925 pr_err("%s: Received NULL pointer for cfg_data\n", __func__);
926 ret = -EINVAL;
927 goto done;
928 }
929
930 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
931 __func__, fedai_id, session_type, be_id,
932 cfg_data->app_type, cfg_data->acdb_dev_id,
933 cfg_data->sample_rate);
934
935 if (!is_mm_lsm_fe_id(fedai_id)) {
936 pr_err("%s: Invalid machine driver ID %d\n",
937 __func__, fedai_id);
938 ret = -EINVAL;
939 goto done;
940 }
941 if (session_type != SESSION_TYPE_RX &&
942 session_type != SESSION_TYPE_TX) {
943 pr_err("%s: Invalid session type %d\n",
944 __func__, session_type);
945 ret = -EINVAL;
946 goto done;
947 }
948 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
949 pr_err("%s: Received out of bounds be_id %d\n",
950 __func__, be_id);
951 ret = -EINVAL;
952 goto done;
953 }
954
955 fe_dai_app_type_cfg[fedai_id][session_type][be_id] = *cfg_data;
956
957 /*
958 * Store the BE ID of the configuration information set as the latest so
959 * the get mixer control knows what to return.
960 */
961 last_be_id_configured[fedai_id][session_type] = be_id;
962
963done:
964 return ret;
965}
966EXPORT_SYMBOL(msm_pcm_routing_reg_stream_app_type_cfg);
967
968/**
969 * msm_pcm_routing_get_stream_app_type_cfg
970 *
971 * Receives fedai_id, session_type, be_id, and populates app_type,
972 * acdb_dev_id, & sample rate. Returns 0 on success. On failure returns
973 * -EINVAL and does not alter passed values.
974 *
975 * fedai_id - Passed value, front end ID for which app type config is wanted
976 * session_type - Passed value, session type for which app type config
977 * is wanted
978 * be_id - Returned value, back end device id the app type config data is for
979 * cfg_data - Returned value, configuration data used by app type config
980 */
981int msm_pcm_routing_get_stream_app_type_cfg(
982 int fedai_id, int session_type, int *bedai_id,
983 struct msm_pcm_stream_app_type_cfg *cfg_data)
984{
985 int be_id;
986 int ret = 0;
987
988 if (bedai_id == NULL) {
989 pr_err("%s: Received NULL pointer for backend ID\n", __func__);
990 ret = -EINVAL;
991 goto done;
992 } else if (cfg_data == NULL) {
993 pr_err("%s: NULL pointer sent for cfg_data\n", __func__);
994 ret = -EINVAL;
995 goto done;
996 } else if (!is_mm_lsm_fe_id(fedai_id)) {
997 pr_err("%s: Invalid FE ID %d\n", __func__, fedai_id);
998 ret = -EINVAL;
999 goto done;
1000 } else if (session_type != SESSION_TYPE_RX &&
1001 session_type != SESSION_TYPE_TX) {
1002 pr_err("%s: Invalid session type %d\n", __func__, session_type);
1003 ret = -EINVAL;
1004 goto done;
1005 }
1006
1007 be_id = last_be_id_configured[fedai_id][session_type];
1008 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1009 pr_err("%s: Invalid BE ID %d\n", __func__, be_id);
1010 ret = -EINVAL;
1011 goto done;
1012 }
1013
1014 *bedai_id = be_id;
1015 *cfg_data = fe_dai_app_type_cfg[fedai_id][session_type][be_id];
1016 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
1017 __func__, fedai_id, session_type, *bedai_id,
1018 cfg_data->app_type, cfg_data->acdb_dev_id,
1019 cfg_data->sample_rate);
1020done:
1021 return ret;
1022}
1023EXPORT_SYMBOL(msm_pcm_routing_get_stream_app_type_cfg);
1024
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301025static struct cal_block_data *msm_routing_find_topology_by_path(int path,
1026 int cal_index)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301027{
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301028 struct list_head *ptr, *next;
1029 struct cal_block_data *cal_block = NULL;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301030 pr_debug("%s\n", __func__);
1031
1032 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301033 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301034
1035 cal_block = list_entry(ptr,
1036 struct cal_block_data, list);
1037
Vikram Panduranga770b8382017-09-27 12:17:36 -07001038 if (cal_utils_is_cal_stale(cal_block))
1039 continue;
1040
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301041 if (((struct audio_cal_info_adm_top *)cal_block
1042 ->cal_info)->path == path) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301043 return cal_block;
1044 }
1045 }
1046 pr_debug("%s: Can't find topology for path %d\n", __func__, path);
1047 return NULL;
1048}
1049
1050static struct cal_block_data *msm_routing_find_topology(int path,
1051 int app_type,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301052 int acdb_id,
1053 int cal_index)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301054{
1055 struct list_head *ptr, *next;
1056 struct cal_block_data *cal_block = NULL;
1057 struct audio_cal_info_adm_top *cal_info;
1058
1059 pr_debug("%s\n", __func__);
1060
1061 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301062 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301063
1064 cal_block = list_entry(ptr,
1065 struct cal_block_data, list);
1066
Vikram Panduranga770b8382017-09-27 12:17:36 -07001067 if (cal_utils_is_cal_stale(cal_block))
1068 continue;
1069
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301070 cal_info = (struct audio_cal_info_adm_top *)
1071 cal_block->cal_info;
1072 if ((cal_info->path == path) &&
1073 (cal_info->app_type == app_type) &&
1074 (cal_info->acdb_id == acdb_id)) {
1075 return cal_block;
1076 }
1077 }
1078 pr_debug("%s: Can't find topology for path %d, app %d, acdb_id %d defaulting to search by path\n",
1079 __func__, path, app_type, acdb_id);
Vikram Panduranga770b8382017-09-27 12:17:36 -07001080 return msm_routing_find_topology_by_path(path, cal_index);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301081}
1082
Vikram Panduranga770b8382017-09-27 12:17:36 -07001083/*
1084 * Retrieving cal_block will mark cal_block as stale.
1085 * Hence it cannot be reused or resent unless the flag
1086 * is reset.
1087 */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301088static int msm_routing_get_adm_topology(int fedai_id, int session_type,
1089 int be_id)
1090{
1091 int topology = NULL_COPP_TOPOLOGY;
1092 struct cal_block_data *cal_block = NULL;
1093 int app_type = 0, acdb_dev_id = 0;
1094
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301095 pr_debug("%s: fedai_id %d, session_type %d, be_id %d\n",
1096 __func__, fedai_id, session_type, be_id);
1097
1098 if (cal_data == NULL)
1099 goto done;
1100
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301101 app_type = fe_dai_app_type_cfg[fedai_id][session_type][be_id].app_type;
1102 acdb_dev_id =
1103 fe_dai_app_type_cfg[fedai_id][session_type][be_id].acdb_dev_id;
1104
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301105 mutex_lock(&cal_data[ADM_TOPOLOGY_CAL_TYPE_IDX]->lock);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301106 cal_block = msm_routing_find_topology(session_type, app_type,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301107 acdb_dev_id,
1108 ADM_TOPOLOGY_CAL_TYPE_IDX);
Vikram Panduranga770b8382017-09-27 12:17:36 -07001109 if (cal_block != NULL) {
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301110 topology = ((struct audio_cal_info_adm_top *)
1111 cal_block->cal_info)->topology;
Vikram Panduranga770b8382017-09-27 12:17:36 -07001112 cal_utils_mark_cal_used(cal_block);
1113 mutex_unlock(&cal_data[ADM_TOPOLOGY_CAL_TYPE_IDX]->lock);
1114 } else {
1115 mutex_unlock(&cal_data[ADM_TOPOLOGY_CAL_TYPE_IDX]->lock);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301116
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301117 pr_debug("%s: Check for LSM topology\n", __func__);
1118 mutex_lock(&cal_data[ADM_LSM_TOPOLOGY_CAL_TYPE_IDX]->lock);
1119 cal_block = msm_routing_find_topology(session_type, app_type,
1120 acdb_dev_id,
1121 ADM_LSM_TOPOLOGY_CAL_TYPE_IDX);
Vikram Panduranga770b8382017-09-27 12:17:36 -07001122 if (cal_block != NULL) {
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301123 topology = ((struct audio_cal_info_adm_top *)
1124 cal_block->cal_info)->topology;
Vikram Panduranga770b8382017-09-27 12:17:36 -07001125 cal_utils_mark_cal_used(cal_block);
1126 }
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301127 mutex_unlock(&cal_data[ADM_LSM_TOPOLOGY_CAL_TYPE_IDX]->lock);
1128 }
1129
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301130done:
1131 pr_debug("%s: Using topology %d\n", __func__, topology);
1132 return topology;
1133}
1134
1135static uint8_t is_be_dai_extproc(int be_dai)
1136{
1137 if (be_dai == MSM_BACKEND_DAI_EXTPROC_RX ||
1138 be_dai == MSM_BACKEND_DAI_EXTPROC_TX ||
1139 be_dai == MSM_BACKEND_DAI_EXTPROC_EC_TX)
1140 return 1;
1141 else
1142 return 0;
1143}
1144
1145static void msm_pcm_routing_build_matrix(int fedai_id, int sess_type,
1146 int path_type, int perf_mode,
1147 uint32_t passthr_mode)
1148{
1149 int i, port_type, j, num_copps = 0;
1150 struct route_payload payload;
1151
1152 port_type = ((path_type == ADM_PATH_PLAYBACK ||
1153 path_type == ADM_PATH_COMPRESSED_RX) ?
1154 MSM_AFE_PORT_TYPE_RX : MSM_AFE_PORT_TYPE_TX);
1155
1156 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1157 if (!is_be_dai_extproc(i) &&
1158 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1159 (msm_bedais[i].active) &&
1160 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1161 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1162 unsigned long copp =
1163 session_copp_map[fedai_id][sess_type][i];
1164 if (test_bit(j, &copp)) {
1165 payload.port_id[num_copps] =
1166 msm_bedais[i].port_id;
1167 payload.copp_idx[num_copps] = j;
1168 payload.app_type[num_copps] =
1169 fe_dai_app_type_cfg
1170 [fedai_id][sess_type][i]
1171 .app_type;
1172 payload.acdb_dev_id[num_copps] =
1173 fe_dai_app_type_cfg
1174 [fedai_id][sess_type][i]
1175 .acdb_dev_id;
1176 payload.sample_rate[num_copps] =
1177 fe_dai_app_type_cfg
1178 [fedai_id][sess_type][i]
1179 .sample_rate;
1180 num_copps++;
1181 }
1182 }
1183 }
1184 }
1185
1186 if (num_copps) {
1187 payload.num_copps = num_copps;
1188 payload.session_id = fe_dai_map[fedai_id][sess_type].strm_id;
1189 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1190 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1191 }
1192}
1193
1194void msm_pcm_routing_reg_psthr_stream(int fedai_id, int dspst_id,
1195 int stream_type)
1196{
1197 int i, session_type, path_type, port_type;
1198 u32 mode = 0;
1199
1200 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1201 /* bad ID assigned in machine driver */
1202 pr_err("%s: bad MM ID\n", __func__);
1203 return;
1204 }
1205
1206 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1207 session_type = SESSION_TYPE_RX;
1208 path_type = ADM_PATH_PLAYBACK;
1209 port_type = MSM_AFE_PORT_TYPE_RX;
1210 } else {
1211 session_type = SESSION_TYPE_TX;
1212 path_type = ADM_PATH_LIVE_REC;
1213 port_type = MSM_AFE_PORT_TYPE_TX;
1214 }
1215
1216 mutex_lock(&routing_lock);
1217
1218 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1219 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1220 if (!is_be_dai_extproc(i) &&
1221 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1222 (msm_bedais[i].active) &&
1223 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1224 mode = afe_get_port_type(msm_bedais[i].port_id);
1225 adm_connect_afe_port(mode, dspst_id,
1226 msm_bedais[i].port_id);
1227 break;
1228 }
1229 }
1230 mutex_unlock(&routing_lock);
1231}
1232
1233static bool route_check_fe_id_adm_support(int fe_id)
1234{
1235 bool rc = true;
1236
1237 if ((fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1238 (fe_id <= MSM_FRONTEND_DAI_LSM8)) {
1239 /* fe id is listen while port is set to afe */
1240 if (lsm_port_index != ADM_LSM_PORT_INDEX) {
1241 pr_debug("%s: fe_id %d, lsm mux slim port %d\n",
1242 __func__, fe_id, lsm_port_index);
1243 rc = false;
1244 }
1245 }
1246
1247 return rc;
1248}
1249
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001250/*
1251 * msm_pcm_routing_get_pp_ch_cnt:
1252 * Read the processed channel count
1253 *
1254 * @fe_id: Front end ID
1255 * @session_type: Inidicates RX or TX session type
1256 */
1257int msm_pcm_routing_get_pp_ch_cnt(int fe_id, int session_type)
1258{
1259 struct msm_pcm_stream_app_type_cfg cfg_data;
1260 int be_id = 0, app_type_idx = 0, app_type = 0;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +05301261 int ret = -EINVAL;
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001262
1263 memset(&cfg_data, 0, sizeof(cfg_data));
1264
1265 if (!is_mm_lsm_fe_id(fe_id)) {
1266 pr_err("%s: bad MM ID\n", __func__);
1267 return -EINVAL;
1268 }
1269
1270 ret = msm_pcm_routing_get_stream_app_type_cfg(fe_id, session_type,
1271 &be_id, &cfg_data);
1272 if (ret) {
Mangesh Kunchamwardaf02b02018-06-28 19:42:24 +05301273 pr_err("%s: cannot get stream app type cfg\n", __func__);
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001274 return ret;
1275 }
1276
1277 app_type = cfg_data.app_type;
1278 app_type_idx = msm_pcm_routing_get_lsm_app_type_idx(app_type);
1279 return lsm_app_type_cfg[app_type_idx].num_out_channels;
1280}
1281EXPORT_SYMBOL(msm_pcm_routing_get_pp_ch_cnt);
1282
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301283int msm_pcm_routing_reg_phy_compr_stream(int fe_id, int perf_mode,
1284 int dspst_id, int stream_type,
1285 uint32_t passthr_mode)
1286{
1287 int i, j, session_type, path_type, port_type, topology;
1288 int num_copps = 0;
1289 struct route_payload payload;
1290 u32 channels, sample_rate;
1291 u16 bit_width = 16;
1292 bool is_lsm;
1293
1294 pr_debug("%s:fe_id[%d] perf_mode[%d] id[%d] stream_type[%d] passt[%d]",
1295 __func__, fe_id, perf_mode, dspst_id,
1296 stream_type, passthr_mode);
1297 if (!is_mm_lsm_fe_id(fe_id)) {
1298 /* bad ID assigned in machine driver */
1299 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
1300 return -EINVAL;
1301 }
1302
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301303 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1304 session_type = SESSION_TYPE_RX;
1305 if (passthr_mode != LEGACY_PCM)
1306 path_type = ADM_PATH_COMPRESSED_RX;
1307 else
1308 path_type = ADM_PATH_PLAYBACK;
1309 port_type = MSM_AFE_PORT_TYPE_RX;
1310 } else if (stream_type == SNDRV_PCM_STREAM_CAPTURE) {
1311 session_type = SESSION_TYPE_TX;
Laxminath Kasam38070be2017-08-17 18:21:59 +05301312 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301313 path_type = ADM_PATH_COMPRESSED_TX;
1314 else
1315 path_type = ADM_PATH_LIVE_REC;
1316 port_type = MSM_AFE_PORT_TYPE_TX;
1317 } else {
1318 pr_err("%s: invalid stream type %d\n", __func__, stream_type);
1319 return -EINVAL;
1320 }
1321
1322 is_lsm = (fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1323 (fe_id <= MSM_FRONTEND_DAI_LSM8);
1324 mutex_lock(&routing_lock);
1325
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301326 fe_dai_map[fe_id][session_type].strm_id = dspst_id;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301327 fe_dai_map[fe_id][session_type].perf_mode = perf_mode;
1328 fe_dai_map[fe_id][session_type].passthr_mode = passthr_mode;
1329 if (!route_check_fe_id_adm_support(fe_id)) {
1330 /* ignore adm open if not supported for fe_id */
1331 pr_debug("%s: No ADM support for fe id %d\n", __func__, fe_id);
1332 mutex_unlock(&routing_lock);
1333 return 0;
1334 }
1335
1336 payload.num_copps = 0; /* only RX needs to use payload */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301337 /* re-enable EQ if active */
1338 msm_qti_pp_send_eq_values(fe_id);
1339 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301340 if (!is_be_dai_extproc(i) &&
1341 (afe_get_port_type(msm_bedais[i].port_id) ==
1342 port_type) &&
1343 (msm_bedais[i].active) &&
1344 (test_bit(fe_id, &msm_bedais[i].fe_sessions[0]))) {
1345 int app_type, app_type_idx, copp_idx, acdb_dev_id;
1346
1347 /*
1348 * check if ADM needs to be configured with different
1349 * channel mapping than backend
1350 */
1351 if (!msm_bedais[i].adm_override_ch)
1352 channels = msm_bedais[i].channel;
1353 else
1354 channels = msm_bedais[i].adm_override_ch;
1355
1356 bit_width = msm_routing_get_bit_width(
1357 msm_bedais[i].format);
1358 app_type =
1359 fe_dai_app_type_cfg[fe_id][session_type][i].app_type;
1360 if (app_type && is_lsm) {
1361 app_type_idx =
1362 msm_pcm_routing_get_lsm_app_type_idx(app_type);
1363 sample_rate =
1364 fe_dai_app_type_cfg[fe_id][session_type][i]
1365 .sample_rate;
1366 bit_width =
1367 lsm_app_type_cfg[app_type_idx].bit_width;
1368 } else if (app_type) {
1369 app_type_idx =
1370 msm_pcm_routing_get_app_type_idx(
1371 app_type);
1372 sample_rate =
1373 fe_dai_app_type_cfg[fe_id][session_type][i].sample_rate;
1374 bit_width =
1375 app_type_cfg[app_type_idx].bit_width;
1376 } else {
1377 sample_rate = msm_bedais[i].sample_rate;
1378 }
1379 acdb_dev_id =
1380 fe_dai_app_type_cfg[fe_id][session_type][i].acdb_dev_id;
1381 topology = msm_routing_get_adm_topology(fe_id,
1382 session_type,
1383 i);
1384 if ((passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
1385 || (passthr_mode ==
Ralf Herzc8701f72018-06-20 11:37:35 +02001386 COMPRESSED_PASSTHROUGH_GEN)
1387 || (passthr_mode ==
1388 COMPRESSED_PASSTHROUGH_IEC61937))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301389 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
1390 pr_debug("%s: Before adm open topology %d\n", __func__,
1391 topology);
1392
1393 copp_idx =
1394 adm_open(msm_bedais[i].port_id,
1395 path_type, sample_rate, channels,
1396 topology, perf_mode, bit_width,
1397 app_type, acdb_dev_id);
1398 if ((copp_idx < 0) ||
1399 (copp_idx >= MAX_COPPS_PER_PORT)) {
1400 pr_err("%s:adm open failed coppid:%d\n",
1401 __func__, copp_idx);
1402 mutex_unlock(&routing_lock);
1403 return -EINVAL;
1404 }
1405 pr_debug("%s: set idx bit of fe:%d, type: %d, be:%d\n",
1406 __func__, fe_id, session_type, i);
1407 set_bit(copp_idx,
1408 &session_copp_map[fe_id][session_type][i]);
1409
1410 if (msm_is_resample_needed(
1411 sample_rate,
1412 msm_bedais[i].sample_rate))
1413 adm_copp_mfc_cfg(
1414 msm_bedais[i].port_id, copp_idx,
1415 msm_bedais[i].sample_rate);
1416
1417 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1418 unsigned long copp =
1419 session_copp_map[fe_id][session_type][i];
1420 if (test_bit(j, &copp)) {
1421 payload.port_id[num_copps] =
1422 msm_bedais[i].port_id;
1423 payload.copp_idx[num_copps] = j;
1424 payload.app_type[num_copps] =
1425 fe_dai_app_type_cfg
1426 [fe_id][session_type][i]
1427 .app_type;
1428 payload.acdb_dev_id[num_copps] =
1429 fe_dai_app_type_cfg
1430 [fe_id][session_type][i]
1431 .acdb_dev_id;
1432 payload.sample_rate[num_copps] =
1433 fe_dai_app_type_cfg
1434 [fe_id][session_type][i]
1435 .sample_rate;
1436 num_copps++;
1437 }
1438 }
1439 if (passthr_mode != COMPRESSED_PASSTHROUGH_DSD
Ralf Herzc8701f72018-06-20 11:37:35 +02001440 && passthr_mode != COMPRESSED_PASSTHROUGH_GEN
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301441 && passthr_mode != COMPRESSED_PASSTHROUGH_IEC61937)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301442 msm_routing_send_device_pp_params(
Ralf Herzc8701f72018-06-20 11:37:35 +02001443 msm_bedais[i].port_id,
1444 copp_idx, fe_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301445 }
1446 }
1447 if (num_copps) {
1448 payload.num_copps = num_copps;
1449 payload.session_id = fe_dai_map[fe_id][session_type].strm_id;
1450 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1451 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1452 }
1453 mutex_unlock(&routing_lock);
1454 return 0;
1455}
1456
1457static u32 msm_pcm_routing_get_voc_sessionid(u16 val)
1458{
1459 u32 session_id;
1460
1461 switch (val) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301462 case MSM_FRONTEND_DAI_QCHAT:
1463 session_id = voc_get_session_id(QCHAT_SESSION_NAME);
1464 break;
1465 case MSM_FRONTEND_DAI_VOIP:
1466 session_id = voc_get_session_id(VOIP_SESSION_NAME);
1467 break;
1468 case MSM_FRONTEND_DAI_VOICEMMODE1:
1469 session_id = voc_get_session_id(VOICEMMODE1_NAME);
1470 break;
1471 case MSM_FRONTEND_DAI_VOICEMMODE2:
1472 session_id = voc_get_session_id(VOICEMMODE2_NAME);
1473 break;
1474 default:
1475 session_id = 0;
1476 }
1477
1478 pr_debug("%s session_id 0x%x", __func__, session_id);
1479 return session_id;
1480}
1481
1482static int msm_pcm_routing_channel_mixer(int fe_id, bool perf_mode,
1483 int dspst_id, int stream_type)
1484{
1485 int copp_idx = 0;
1486 int sess_type = 0;
1487 int i = 0, j = 0, be_id;
1488 int ret = 0;
1489
1490 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
1491 pr_err("%s: invalid FE %d\n", __func__, fe_id);
1492 return 0;
1493 }
1494
1495 if (!(channel_mixer[fe_id].enable)) {
1496 pr_debug("%s: channel mixer not enabled for FE %d\n",
1497 __func__, fe_id);
1498 return 0;
1499 }
1500
1501 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1502 sess_type = SESSION_TYPE_RX;
1503 else
1504 sess_type = SESSION_TYPE_TX;
1505
1506 for (i = 0; i < ADM_MAX_CHANNELS && channel_input[fe_id][i] > 0;
1507 ++i) {
1508 be_id = channel_input[fe_id][i] - 1;
1509 channel_mixer[fe_id].input_channels[i] =
1510 msm_bedais[be_id].channel;
1511
1512 if ((msm_bedais[be_id].active) &&
1513 test_bit(fe_id,
1514 &msm_bedais[be_id].fe_sessions[0])) {
1515 unsigned long copp =
1516 session_copp_map[fe_id][sess_type][be_id];
1517 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1518 if (test_bit(j, &copp)) {
1519 copp_idx = j;
1520 break;
1521 }
1522 }
1523
1524 pr_debug("%s: fe %d, be %d, channel %d, copp %d\n",
1525 __func__,
1526 fe_id, be_id, msm_bedais[be_id].channel,
1527 copp_idx);
1528 ret = adm_programable_channel_mixer(
1529 msm_bedais[be_id].port_id,
1530 copp_idx, dspst_id, sess_type,
1531 channel_mixer + fe_id, i);
1532 }
1533 }
1534
1535 return ret;
1536}
1537
1538int msm_pcm_routing_reg_phy_stream(int fedai_id, int perf_mode,
1539 int dspst_id, int stream_type)
1540{
1541 int i, j, session_type, path_type, port_type, topology, num_copps = 0;
1542 struct route_payload payload;
1543 u32 channels, sample_rate;
1544 uint16_t bits_per_sample = 16;
1545 uint32_t passthr_mode = LEGACY_PCM;
1546 int ret = 0;
1547
1548 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1549 /* bad ID assigned in machine driver */
1550 pr_err("%s: bad MM ID %d\n", __func__, fedai_id);
1551 return -EINVAL;
1552 }
1553
1554 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1555 session_type = SESSION_TYPE_RX;
1556 path_type = ADM_PATH_PLAYBACK;
1557 port_type = MSM_AFE_PORT_TYPE_RX;
1558 } else {
1559 session_type = SESSION_TYPE_TX;
1560 path_type = ADM_PATH_LIVE_REC;
1561 port_type = MSM_AFE_PORT_TYPE_TX;
1562 }
1563
1564 mutex_lock(&routing_lock);
1565
1566 payload.num_copps = 0; /* only RX needs to use payload */
1567 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1568 fe_dai_map[fedai_id][session_type].perf_mode = perf_mode;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301569 fe_dai_map[fedai_id][session_type].passthr_mode = LEGACY_PCM;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301570
1571 /* re-enable EQ if active */
1572 msm_qti_pp_send_eq_values(fedai_id);
1573 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1574 if (!is_be_dai_extproc(i) &&
1575 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1576 (msm_bedais[i].active) &&
1577 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1578 int app_type, app_type_idx, copp_idx, acdb_dev_id;
1579 /*
1580 * check if ADM needs to be configured with different
1581 * channel mapping than backend
1582 */
1583 if (!msm_bedais[i].adm_override_ch)
1584 channels = msm_bedais[i].channel;
1585 else
1586 channels = msm_bedais[i].adm_override_ch;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301587
1588 bits_per_sample = msm_routing_get_bit_width(
1589 msm_bedais[i].format);
1590
1591 app_type =
1592 fe_dai_app_type_cfg[fedai_id][session_type][i].app_type;
1593 if (app_type) {
1594 app_type_idx =
1595 msm_pcm_routing_get_app_type_idx(app_type);
1596 sample_rate =
1597 fe_dai_app_type_cfg[fedai_id][session_type][i]
1598 .sample_rate;
1599 bits_per_sample =
1600 app_type_cfg[app_type_idx].bit_width;
1601 } else
1602 sample_rate = msm_bedais[i].sample_rate;
1603
1604 acdb_dev_id =
1605 fe_dai_app_type_cfg[fedai_id][session_type][i]
1606 .acdb_dev_id;
1607 topology = msm_routing_get_adm_topology(fedai_id,
1608 session_type,
1609 i);
1610 copp_idx = adm_open(msm_bedais[i].port_id, path_type,
1611 sample_rate, channels, topology,
1612 perf_mode, bits_per_sample,
1613 app_type, acdb_dev_id);
1614 if ((copp_idx < 0) ||
1615 (copp_idx >= MAX_COPPS_PER_PORT)) {
1616 pr_err("%s: adm open failed copp_idx:%d\n",
Vikram Panduranga770b8382017-09-27 12:17:36 -07001617 __func__, copp_idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301618 mutex_unlock(&routing_lock);
1619 return -EINVAL;
1620 }
1621 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
1622 __func__, fedai_id, session_type, i);
1623 set_bit(copp_idx,
1624 &session_copp_map[fedai_id][session_type][i]);
1625
1626 if (msm_is_resample_needed(
1627 sample_rate,
1628 msm_bedais[i].sample_rate))
1629 adm_copp_mfc_cfg(
1630 msm_bedais[i].port_id, copp_idx,
1631 msm_bedais[i].sample_rate);
1632
1633 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1634 unsigned long copp =
1635 session_copp_map[fedai_id][session_type][i];
1636 if (test_bit(j, &copp)) {
1637 payload.port_id[num_copps] =
1638 msm_bedais[i].port_id;
1639 payload.copp_idx[num_copps] = j;
1640 payload.app_type[num_copps] =
1641 fe_dai_app_type_cfg
1642 [fedai_id][session_type]
1643 [i].app_type;
1644 payload.acdb_dev_id[num_copps] =
1645 fe_dai_app_type_cfg
1646 [fedai_id][session_type]
1647 [i].acdb_dev_id;
1648 payload.sample_rate[num_copps] =
1649 fe_dai_app_type_cfg
1650 [fedai_id][session_type]
1651 [i].sample_rate;
1652 num_copps++;
1653 }
1654 }
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301655 if (perf_mode == LEGACY_PCM_MODE)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301656 msm_pcm_routing_cfg_pp(msm_bedais[i].port_id,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301657 copp_idx, topology, channels);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301658 }
1659 }
1660 if (num_copps) {
1661 payload.num_copps = num_copps;
1662 payload.session_id = fe_dai_map[fedai_id][session_type].strm_id;
1663 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1664 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1665 }
1666
1667 ret = msm_pcm_routing_channel_mixer(fedai_id, perf_mode,
1668 dspst_id, stream_type);
1669 mutex_unlock(&routing_lock);
1670 return ret;
1671}
1672
1673int msm_pcm_routing_reg_phy_stream_v2(int fedai_id, int perf_mode,
1674 int dspst_id, int stream_type,
1675 struct msm_pcm_routing_evt event_info)
1676{
1677 if (msm_pcm_routing_reg_phy_stream(fedai_id, perf_mode, dspst_id,
1678 stream_type)) {
1679 pr_err("%s: failed to reg phy stream\n", __func__);
1680 return -EINVAL;
1681 }
1682
1683 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1684 fe_dai_map[fedai_id][SESSION_TYPE_RX].event_info = event_info;
1685 else
1686 fe_dai_map[fedai_id][SESSION_TYPE_TX].event_info = event_info;
1687 return 0;
1688}
1689
1690void msm_pcm_routing_dereg_phy_stream(int fedai_id, int stream_type)
1691{
1692 int i, port_type, session_type, path_type, topology;
1693 struct msm_pcm_routing_fdai_data *fdai;
1694
1695 if (!is_mm_lsm_fe_id(fedai_id)) {
1696 /* bad ID assigned in machine driver */
1697 pr_err("%s: bad MM ID\n", __func__);
1698 return;
1699 }
1700
1701 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1702 port_type = MSM_AFE_PORT_TYPE_RX;
1703 session_type = SESSION_TYPE_RX;
1704 path_type = ADM_PATH_PLAYBACK;
1705 } else {
1706 port_type = MSM_AFE_PORT_TYPE_TX;
1707 session_type = SESSION_TYPE_TX;
1708 path_type = ADM_PATH_LIVE_REC;
1709 }
1710
1711 mutex_lock(&routing_lock);
1712 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1713 if (!is_be_dai_extproc(i) &&
1714 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1715 (msm_bedais[i].active) &&
1716 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1717 int idx;
1718 unsigned long copp =
1719 session_copp_map[fedai_id][session_type][i];
1720 fdai = &fe_dai_map[fedai_id][session_type];
1721
1722 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
1723 if (test_bit(idx, &copp))
1724 break;
1725
1726 if (idx >= MAX_COPPS_PER_PORT || idx < 0) {
1727 pr_debug("%s: copp idx is invalid, exiting\n",
1728 __func__);
1729 continue;
1730 }
1731 topology = adm_get_topology_for_port_copp_idx(
1732 msm_bedais[i].port_id, idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07001733 msm_routing_unload_topology(topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301734 adm_close(msm_bedais[i].port_id, fdai->perf_mode, idx);
1735 pr_debug("%s:copp:%ld,idx bit fe:%d,type:%d,be:%d\n",
1736 __func__, copp, fedai_id, session_type, i);
1737 clear_bit(idx,
1738 &session_copp_map[fedai_id][session_type][i]);
1739 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
1740 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
1741 (fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301742 (fdai->passthr_mode == LEGACY_PCM))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301743 msm_pcm_routing_deinit_pp(msm_bedais[i].port_id,
1744 topology);
1745 }
1746 }
1747
1748 fe_dai_map[fedai_id][session_type].strm_id = INVALID_SESSION;
1749 fe_dai_map[fedai_id][session_type].be_srate = 0;
1750 mutex_unlock(&routing_lock);
1751}
1752
1753/* Check if FE/BE route is set */
1754static bool msm_pcm_routing_route_is_set(u16 be_id, u16 fe_id)
1755{
1756 bool rc = false;
1757
1758 if (!is_mm_lsm_fe_id(fe_id)) {
1759 /* recheck FE ID in the mixer control defined in this file */
1760 pr_err("%s: bad MM ID\n", __func__);
1761 return rc;
1762 }
1763
1764 if (test_bit(fe_id, &msm_bedais[be_id].fe_sessions[0]))
1765 rc = true;
1766
1767 return rc;
1768}
1769
1770static void msm_pcm_routing_process_audio(u16 reg, u16 val, int set)
1771{
1772 int session_type, path_type, topology;
1773 u32 channels, sample_rate;
1774 uint16_t bits_per_sample = 16;
1775 struct msm_pcm_routing_fdai_data *fdai;
1776 uint32_t passthr_mode;
1777 bool is_lsm;
1778
1779 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
1780
1781 if (!is_mm_lsm_fe_id(val)) {
1782 /* recheck FE ID in the mixer control defined in this file */
1783 pr_err("%s: bad MM ID\n", __func__);
1784 return;
1785 }
1786
1787 if (!route_check_fe_id_adm_support(val)) {
1788 /* ignore adm open if not supported for fe_id */
1789 pr_debug("%s: No ADM support for fe id %d\n", __func__, val);
1790 return;
1791 }
1792
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301793 session_type =
1794 (afe_get_port_type(msm_bedais[reg].port_id) == MSM_AFE_PORT_TYPE_RX) ?
1795 SESSION_TYPE_RX : SESSION_TYPE_TX;
1796 fdai = &fe_dai_map[val][session_type];
1797 passthr_mode = fdai->passthr_mode;
1798 if (session_type == SESSION_TYPE_RX) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301799 if (passthr_mode != LEGACY_PCM)
1800 path_type = ADM_PATH_COMPRESSED_RX;
1801 else
1802 path_type = ADM_PATH_PLAYBACK;
1803 } else {
Ralf Herzc8701f72018-06-20 11:37:35 +02001804 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301805 path_type = ADM_PATH_COMPRESSED_TX;
1806 else
1807 path_type = ADM_PATH_LIVE_REC;
1808 }
1809 is_lsm = (val >= MSM_FRONTEND_DAI_LSM1) &&
1810 (val <= MSM_FRONTEND_DAI_LSM8);
1811
1812 mutex_lock(&routing_lock);
1813 if (set) {
1814 if (!test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
1815 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
1816 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
1817 voc_start_playback(set, msm_bedais[reg].port_id);
1818
1819 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301820 if (msm_bedais[reg].active && fdai->strm_id !=
1821 INVALID_SESSION) {
1822 int app_type, app_type_idx, copp_idx, acdb_dev_id;
1823 /*
1824 * check if ADM needs to be configured with different
1825 * channel mapping than backend
1826 */
1827 if (!msm_bedais[reg].adm_override_ch)
1828 channels = msm_bedais[reg].channel;
1829 else
1830 channels = msm_bedais[reg].adm_override_ch;
1831 if (session_type == SESSION_TYPE_TX &&
1832 fdai->be_srate &&
1833 (fdai->be_srate != msm_bedais[reg].sample_rate)) {
1834 pr_debug("%s: flush strm %d diff BE rates\n",
1835 __func__, fdai->strm_id);
1836
1837 if (fdai->event_info.event_func)
1838 fdai->event_info.event_func(
1839 MSM_PCM_RT_EVT_BUF_RECFG,
1840 fdai->event_info.priv_data);
1841 fdai->be_srate = 0; /* might not need it */
1842 }
1843
1844 bits_per_sample = msm_routing_get_bit_width(
1845 msm_bedais[reg].format);
1846
1847 app_type =
1848 fe_dai_app_type_cfg[val][session_type][reg].app_type;
1849 if (app_type && is_lsm) {
1850 app_type_idx =
1851 msm_pcm_routing_get_lsm_app_type_idx(app_type);
1852 sample_rate =
1853 fe_dai_app_type_cfg[val][session_type][reg]
1854 .sample_rate;
1855 bits_per_sample =
1856 lsm_app_type_cfg[app_type_idx].bit_width;
1857 } else if (app_type) {
1858 app_type_idx =
1859 msm_pcm_routing_get_app_type_idx(app_type);
1860 sample_rate =
1861 fe_dai_app_type_cfg[val][session_type][reg]
1862 .sample_rate;
1863 bits_per_sample =
1864 app_type_cfg[app_type_idx].bit_width;
1865 } else
1866 sample_rate = msm_bedais[reg].sample_rate;
1867
1868 topology = msm_routing_get_adm_topology(val,
1869 session_type,
1870 reg);
1871 acdb_dev_id =
1872 fe_dai_app_type_cfg[val][session_type][reg].acdb_dev_id;
1873 copp_idx = adm_open(msm_bedais[reg].port_id, path_type,
1874 sample_rate, channels, topology,
1875 fdai->perf_mode, bits_per_sample,
1876 app_type, acdb_dev_id);
1877 if ((copp_idx < 0) ||
1878 (copp_idx >= MAX_COPPS_PER_PORT)) {
1879 pr_err("%s: adm open failed\n", __func__);
1880 mutex_unlock(&routing_lock);
1881 return;
1882 }
1883 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
1884 __func__, val, session_type, reg);
1885 set_bit(copp_idx,
1886 &session_copp_map[val][session_type][reg]);
1887
1888 if (msm_is_resample_needed(
1889 sample_rate,
1890 msm_bedais[reg].sample_rate))
1891 adm_copp_mfc_cfg(
1892 msm_bedais[reg].port_id, copp_idx,
1893 msm_bedais[reg].sample_rate);
1894
1895 if (session_type == SESSION_TYPE_RX &&
1896 fdai->event_info.event_func)
1897 fdai->event_info.event_func(
1898 MSM_PCM_RT_EVT_DEVSWITCH,
1899 fdai->event_info.priv_data);
1900
1901 msm_pcm_routing_build_matrix(val, session_type,
1902 path_type,
1903 fdai->perf_mode,
1904 passthr_mode);
1905 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
1906 (passthr_mode == LEGACY_PCM))
1907 msm_pcm_routing_cfg_pp(msm_bedais[reg].port_id,
1908 copp_idx, topology,
1909 channels);
1910 }
1911 } else {
1912 if (test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
1913 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
1914 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
1915 voc_start_playback(set, msm_bedais[reg].port_id);
1916 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301917 if (msm_bedais[reg].active && fdai->strm_id !=
1918 INVALID_SESSION) {
1919 int idx;
1920 int port_id;
1921 unsigned long copp =
1922 session_copp_map[val][session_type][reg];
1923 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
1924 if (test_bit(idx, &copp))
1925 break;
1926
1927 port_id = msm_bedais[reg].port_id;
1928 topology = adm_get_topology_for_port_copp_idx(port_id,
1929 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07001930 msm_routing_unload_topology(topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301931 adm_close(msm_bedais[reg].port_id, fdai->perf_mode,
1932 idx);
1933 pr_debug("%s: copp: %ld, reset idx bit fe:%d, type: %d, be:%d topology=0x%x\n",
1934 __func__, copp, val, session_type, reg,
1935 topology);
1936 clear_bit(idx,
1937 &session_copp_map[val][session_type][reg]);
1938 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
1939 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
1940 (fdai->perf_mode == LEGACY_PCM_MODE) &&
1941 (passthr_mode == LEGACY_PCM))
1942 msm_pcm_routing_deinit_pp(
1943 msm_bedais[reg].port_id,
1944 topology);
1945 msm_pcm_routing_build_matrix(val, session_type,
1946 path_type,
1947 fdai->perf_mode,
1948 passthr_mode);
1949 }
1950 }
1951 if ((msm_bedais[reg].port_id == VOICE_RECORD_RX)
1952 || (msm_bedais[reg].port_id == VOICE_RECORD_TX))
1953 voc_start_record(msm_bedais[reg].port_id, set, voc_session_id);
1954
1955 mutex_unlock(&routing_lock);
1956}
1957
1958static int msm_routing_get_audio_mixer(struct snd_kcontrol *kcontrol,
1959 struct snd_ctl_elem_value *ucontrol)
1960{
1961 struct soc_mixer_control *mc =
1962 (struct soc_mixer_control *)kcontrol->private_value;
1963
Meng Wang05d5e9a2018-03-28 16:45:03 +08001964 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301965 ucontrol->value.integer.value[0] = 1;
1966 else
1967 ucontrol->value.integer.value[0] = 0;
1968
Meng Wang05d5e9a2018-03-28 16:45:03 +08001969 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301970 ucontrol->value.integer.value[0]);
1971
1972 return 0;
1973}
1974
1975static int msm_routing_put_audio_mixer(struct snd_kcontrol *kcontrol,
1976 struct snd_ctl_elem_value *ucontrol)
1977{
Asish Bhattacharya34504582017-08-08 12:55:01 +05301978 struct snd_soc_dapm_widget *widget =
1979 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301980 struct soc_mixer_control *mc =
1981 (struct soc_mixer_control *)kcontrol->private_value;
1982 struct snd_soc_dapm_update *update = NULL;
1983
1984 if (ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08001985 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false) {
1986 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301987 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
1988 update);
1989 } else if (!ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08001990 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true) {
1991 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301992 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
1993 update);
1994 }
1995
1996 return 1;
1997}
1998
1999static int msm_routing_get_listen_mixer(struct snd_kcontrol *kcontrol,
2000 struct snd_ctl_elem_value *ucontrol)
2001{
2002 struct soc_mixer_control *mc =
2003 (struct soc_mixer_control *)kcontrol->private_value;
2004
Meng Wang05d5e9a2018-03-28 16:45:03 +08002005 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302006 ucontrol->value.integer.value[0] = 1;
2007 else
2008 ucontrol->value.integer.value[0] = 0;
2009
Meng Wang05d5e9a2018-03-28 16:45:03 +08002010 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302011 ucontrol->value.integer.value[0]);
2012
2013 return 0;
2014}
2015
2016static int msm_routing_put_listen_mixer(struct snd_kcontrol *kcontrol,
2017 struct snd_ctl_elem_value *ucontrol)
2018{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302019 struct snd_soc_dapm_widget *widget =
2020 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302021 struct soc_mixer_control *mc =
2022 (struct soc_mixer_control *)kcontrol->private_value;
2023 struct snd_soc_dapm_update *update = NULL;
2024
Meng Wang05d5e9a2018-03-28 16:45:03 +08002025 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302026 ucontrol->value.integer.value[0]);
2027
2028 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002029 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false)
2030 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302031 snd_soc_dapm_mixer_update_power(widget->dapm,
2032 kcontrol, 1, update);
2033 } else if (!ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002034 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true)
2035 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302036 snd_soc_dapm_mixer_update_power(widget->dapm,
2037 kcontrol, 0, update);
2038 }
2039
2040 return 1;
2041}
2042
2043static void msm_pcm_routing_process_voice(u16 reg, u16 val, int set)
2044{
2045 u32 session_id = 0;
2046 u16 path_type;
2047 struct media_format_info voc_be_media_format;
2048
2049 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
2050
2051 session_id = msm_pcm_routing_get_voc_sessionid(val);
2052
2053 pr_debug("%s: FE DAI 0x%x session_id 0x%x\n",
2054 __func__, val, session_id);
2055
2056 mutex_lock(&routing_lock);
2057
2058 if (set)
2059 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
2060 else
2061 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
2062
2063 if (val == MSM_FRONTEND_DAI_DTMF_RX &&
2064 afe_get_port_type(msm_bedais[reg].port_id) ==
2065 MSM_AFE_PORT_TYPE_RX) {
2066 pr_debug("%s(): set=%d port id=0x%x for dtmf generation\n",
2067 __func__, set, msm_bedais[reg].port_id);
2068 afe_set_dtmf_gen_rx_portid(msm_bedais[reg].port_id, set);
2069 }
2070
2071 if (afe_get_port_type(msm_bedais[reg].port_id) ==
2072 MSM_AFE_PORT_TYPE_RX)
2073 path_type = RX_PATH;
2074 else
2075 path_type = TX_PATH;
2076
2077 if (set) {
2078 if (msm_bedais[reg].active) {
2079 voc_set_route_flag(session_id, path_type, 1);
2080
2081 memset(&voc_be_media_format, 0,
2082 sizeof(struct media_format_info));
2083
2084 voc_be_media_format.port_id = msm_bedais[reg].port_id;
2085 voc_be_media_format.num_channels =
2086 msm_bedais[reg].channel;
2087 voc_be_media_format.sample_rate =
2088 msm_bedais[reg].sample_rate;
2089 voc_be_media_format.bits_per_sample =
2090 msm_bedais[reg].format;
2091 /* Defaulting this to 1 for voice call usecases */
2092 voc_be_media_format.channel_mapping[0] = 1;
2093
2094 voc_set_device_config(session_id, path_type,
2095 &voc_be_media_format);
2096
2097 if (voc_get_route_flag(session_id, TX_PATH) &&
2098 voc_get_route_flag(session_id, RX_PATH))
2099 voc_enable_device(session_id);
2100 } else {
2101 pr_debug("%s BE is not active\n", __func__);
2102 }
2103 } else {
2104 voc_set_route_flag(session_id, path_type, 0);
2105 voc_disable_device(session_id);
2106 }
2107
2108 mutex_unlock(&routing_lock);
2109
2110}
2111
2112static int msm_routing_get_voice_mixer(struct snd_kcontrol *kcontrol,
2113 struct snd_ctl_elem_value *ucontrol)
2114{
2115 struct soc_mixer_control *mc =
2116 (struct soc_mixer_control *)kcontrol->private_value;
2117
2118 mutex_lock(&routing_lock);
2119
Meng Wang05d5e9a2018-03-28 16:45:03 +08002120 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302121 ucontrol->value.integer.value[0] = 1;
2122 else
2123 ucontrol->value.integer.value[0] = 0;
2124
2125 mutex_unlock(&routing_lock);
2126
Meng Wang05d5e9a2018-03-28 16:45:03 +08002127 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302128 ucontrol->value.integer.value[0]);
2129
2130 return 0;
2131}
2132
2133static int msm_routing_put_voice_mixer(struct snd_kcontrol *kcontrol,
2134 struct snd_ctl_elem_value *ucontrol)
2135{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302136 struct snd_soc_dapm_widget *widget =
2137 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302138 struct soc_mixer_control *mc =
2139 (struct soc_mixer_control *)kcontrol->private_value;
2140 struct snd_soc_dapm_update *update = NULL;
2141
2142 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002143 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302144 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2145 update);
2146 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002147 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302148 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2149 update);
2150 }
2151
2152 return 1;
2153}
2154
2155static int msm_routing_get_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2156 struct snd_ctl_elem_value *ucontrol)
2157{
2158 struct soc_mixer_control *mc =
2159 (struct soc_mixer_control *)kcontrol->private_value;
2160
2161 mutex_lock(&routing_lock);
2162
Meng Wang05d5e9a2018-03-28 16:45:03 +08002163 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302164 ucontrol->value.integer.value[0] = 1;
2165 else
2166 ucontrol->value.integer.value[0] = 0;
2167
2168 mutex_unlock(&routing_lock);
2169
Meng Wang05d5e9a2018-03-28 16:45:03 +08002170 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302171 ucontrol->value.integer.value[0]);
2172
2173 return 0;
2174}
2175
2176static int msm_routing_put_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2177 struct snd_ctl_elem_value *ucontrol)
2178{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302179 struct snd_soc_dapm_widget *widget =
2180 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302181 struct soc_mixer_control *mc =
2182 (struct soc_mixer_control *)kcontrol->private_value;
2183 struct snd_soc_dapm_update *update = NULL;
2184
2185 if (ucontrol->value.integer.value[0]) {
2186 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002187 set_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302188 mutex_unlock(&routing_lock);
2189
2190 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2191 update);
2192 } else {
2193 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002194 clear_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302195 mutex_unlock(&routing_lock);
2196
2197 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2198 update);
2199 }
2200
Meng Wang05d5e9a2018-03-28 16:45:03 +08002201 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302202 ucontrol->value.integer.value[0]);
2203
2204 return 1;
2205}
2206
2207/*
2208 * Return the mapping between port ID and backend ID to enable the AFE callback
2209 * to determine the acdb_dev_id from the port id
2210 */
2211int msm_pcm_get_be_id_from_port_id(int port_id)
2212{
2213 int i;
2214 int be_id = -EINVAL;
2215
2216 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
2217 if (msm_bedais[i].port_id == port_id) {
2218 be_id = i;
2219 break;
2220 }
2221 }
2222
2223 return be_id;
2224}
2225
2226/*
2227 * Return the registered dev_acdb_id given a port ID to enable identifying the
2228 * correct AFE calibration information by comparing the header information.
2229 */
2230static int msm_pcm_get_dev_acdb_id_by_port_id(int port_id)
2231{
2232 int acdb_id = -EINVAL;
2233 int i = 0;
2234 int session;
2235 int port_type = afe_get_port_type(port_id);
2236 int be_id = msm_pcm_get_be_id_from_port_id(port_id);
2237
2238 pr_debug("%s:port_id %d be_id %d, port_type 0x%x\n",
2239 __func__, port_id, be_id, port_type);
2240
2241 if (port_type == MSM_AFE_PORT_TYPE_TX) {
2242 session = SESSION_TYPE_TX;
2243 } else if (port_type == MSM_AFE_PORT_TYPE_RX) {
2244 session = SESSION_TYPE_RX;
2245 } else {
2246 pr_err("%s: Invalid port type %d\n", __func__, port_type);
2247 acdb_id = -EINVAL;
2248 goto exit;
2249 }
2250
2251 if (be_id < 0) {
2252 pr_err("%s: Error getting backend id %d\n", __func__, be_id);
2253 goto exit;
2254 }
2255
2256 mutex_lock(&routing_lock);
2257 i = find_first_bit(&msm_bedais[be_id].fe_sessions[0],
2258 MSM_FRONTEND_DAI_MAX);
2259 if (i < MSM_FRONTEND_DAI_MAX)
2260 acdb_id = fe_dai_app_type_cfg[i][session][be_id].acdb_dev_id;
2261
2262 pr_debug("%s: FE[%d] session[%d] BE[%d] acdb_id(%d)\n",
2263 __func__, i, session, be_id, acdb_id);
2264 mutex_unlock(&routing_lock);
2265exit:
2266 return acdb_id;
2267}
2268
2269static int msm_routing_get_switch_mixer(struct snd_kcontrol *kcontrol,
2270 struct snd_ctl_elem_value *ucontrol)
2271{
2272 ucontrol->value.integer.value[0] = fm_switch_enable;
2273 pr_debug("%s: FM Switch enable %ld\n", __func__,
2274 ucontrol->value.integer.value[0]);
2275 return 0;
2276}
2277
2278static int msm_routing_put_switch_mixer(struct snd_kcontrol *kcontrol,
2279 struct snd_ctl_elem_value *ucontrol)
2280{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302281 struct snd_soc_dapm_widget *widget =
2282 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302283 struct snd_soc_dapm_update *update = NULL;
2284
2285 pr_debug("%s: FM Switch enable %ld\n", __func__,
2286 ucontrol->value.integer.value[0]);
2287 if (ucontrol->value.integer.value[0])
2288 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2289 update);
2290 else
2291 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2292 update);
2293 fm_switch_enable = ucontrol->value.integer.value[0];
2294 return 1;
2295}
2296
2297static int msm_routing_get_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2298 struct snd_ctl_elem_value *ucontrol)
2299{
2300 ucontrol->value.integer.value[0] = hfp_switch_enable;
2301 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2302 ucontrol->value.integer.value[0]);
2303 return 0;
2304}
2305
2306static int msm_routing_put_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2307 struct snd_ctl_elem_value *ucontrol)
2308{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302309 struct snd_soc_dapm_widget *widget =
2310 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302311 struct snd_soc_dapm_update *update = NULL;
2312
2313 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2314 ucontrol->value.integer.value[0]);
2315 if (ucontrol->value.integer.value[0])
2316 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2317 1, update);
2318 else
2319 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2320 0, update);
2321 hfp_switch_enable = ucontrol->value.integer.value[0];
2322 return 1;
2323}
2324
Aniket Kumar Latac0c31472018-02-22 14:46:09 -08002325static int msm_routing_a2dp_switch_mixer_get(struct snd_kcontrol *kcontrol,
2326 struct snd_ctl_elem_value *ucontrol)
2327{
2328 ucontrol->value.integer.value[0] = a2dp_switch_enable;
2329 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2330 ucontrol->value.integer.value[0]);
2331 return 0;
2332}
2333
2334static int msm_routing_a2dp_switch_mixer_put(struct snd_kcontrol *kcontrol,
2335 struct snd_ctl_elem_value *ucontrol)
2336{
2337 struct snd_soc_dapm_widget *widget =
2338 snd_soc_dapm_kcontrol_widget(kcontrol);
2339 struct snd_soc_dapm_update *update = NULL;
2340
2341 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2342 ucontrol->value.integer.value[0]);
2343 a2dp_switch_enable = ucontrol->value.integer.value[0];
2344 if (a2dp_switch_enable)
2345 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2346 1, update);
2347 else
2348 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2349 0, update);
2350 return 1;
2351}
2352
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302353static int msm_routing_get_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2354 struct snd_ctl_elem_value *ucontrol)
2355{
2356 ucontrol->value.integer.value[0] = int0_mi2s_switch_enable;
2357 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2358 ucontrol->value.integer.value[0]);
2359 return 0;
2360}
2361
2362static int msm_routing_put_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2363 struct snd_ctl_elem_value *ucontrol)
2364{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302365 struct snd_soc_dapm_widget *widget =
2366 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302367 struct snd_soc_dapm_update *update = NULL;
2368
2369 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2370 ucontrol->value.integer.value[0]);
2371 if (ucontrol->value.integer.value[0])
2372 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2373 update);
2374 else
2375 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2376 update);
2377 int0_mi2s_switch_enable = ucontrol->value.integer.value[0];
2378 return 1;
2379}
2380
2381static int msm_routing_get_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2382 struct snd_ctl_elem_value *ucontrol)
2383{
2384 ucontrol->value.integer.value[0] = int4_mi2s_switch_enable;
2385 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2386 ucontrol->value.integer.value[0]);
2387 return 0;
2388}
2389
2390static int msm_routing_put_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2391 struct snd_ctl_elem_value *ucontrol)
2392{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302393 struct snd_soc_dapm_widget *widget =
2394 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302395 struct snd_soc_dapm_update *update = NULL;
2396
2397 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2398 ucontrol->value.integer.value[0]);
2399 if (ucontrol->value.integer.value[0])
2400 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2401 update);
2402 else
2403 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2404 update);
2405 int4_mi2s_switch_enable = ucontrol->value.integer.value[0];
2406 return 1;
2407}
2408
2409static int msm_routing_get_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2410 struct snd_ctl_elem_value *ucontrol)
2411{
2412 ucontrol->value.integer.value[0] = usb_switch_enable;
2413 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2414 ucontrol->value.integer.value[0]);
2415 return 0;
2416}
2417
2418static int msm_routing_put_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2419 struct snd_ctl_elem_value *ucontrol)
2420{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302421 struct snd_soc_dapm_widget *widget =
2422 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302423 struct snd_soc_dapm_update *update = NULL;
2424
2425 pr_debug("%s: USB Switch enable %ld\n", __func__,
2426 ucontrol->value.integer.value[0]);
2427 if (ucontrol->value.integer.value[0])
2428 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2429 1, update);
2430 else
2431 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2432 0, update);
2433 usb_switch_enable = ucontrol->value.integer.value[0];
2434 return 1;
2435}
2436
2437static int msm_routing_get_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2438 struct snd_ctl_elem_value *ucontrol)
2439{
2440 ucontrol->value.integer.value[0] = pri_mi2s_switch_enable;
2441 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2442 ucontrol->value.integer.value[0]);
2443 return 0;
2444}
2445
2446static int msm_routing_put_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2447 struct snd_ctl_elem_value *ucontrol)
2448{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302449 struct snd_soc_dapm_widget *widget =
2450 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302451 struct snd_soc_dapm_update *update = NULL;
2452
2453 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2454 ucontrol->value.integer.value[0]);
2455 if (ucontrol->value.integer.value[0])
2456 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2457 update);
2458 else
2459 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2460 update);
2461 pri_mi2s_switch_enable = ucontrol->value.integer.value[0];
2462 return 1;
2463}
2464
2465static int msm_routing_get_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2466 struct snd_ctl_elem_value *ucontrol)
2467{
2468 ucontrol->value.integer.value[0] = sec_mi2s_switch_enable;
2469 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2470 ucontrol->value.integer.value[0]);
2471 return 0;
2472}
2473
2474static int msm_routing_put_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2475 struct snd_ctl_elem_value *ucontrol)
2476{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302477 struct snd_soc_dapm_widget *widget =
2478 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302479 struct snd_soc_dapm_update *update = NULL;
2480
2481 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2482 ucontrol->value.integer.value[0]);
2483 if (ucontrol->value.integer.value[0])
2484 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2485 update);
2486 else
2487 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2488 update);
2489 sec_mi2s_switch_enable = ucontrol->value.integer.value[0];
2490 return 1;
2491}
2492
2493static int msm_routing_get_tert_mi2s_switch_mixer(
2494 struct snd_kcontrol *kcontrol,
2495 struct snd_ctl_elem_value *ucontrol)
2496{
2497 ucontrol->value.integer.value[0] = tert_mi2s_switch_enable;
2498 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2499 ucontrol->value.integer.value[0]);
2500 return 0;
2501}
2502
2503static int msm_routing_put_tert_mi2s_switch_mixer(
2504 struct snd_kcontrol *kcontrol,
2505 struct snd_ctl_elem_value *ucontrol)
2506{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302507 struct snd_soc_dapm_widget *widget =
2508 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302509 struct snd_soc_dapm_update *update = NULL;
2510
2511 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2512 ucontrol->value.integer.value[0]);
2513 if (ucontrol->value.integer.value[0])
2514 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2515 update);
2516 else
2517 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2518 update);
2519 tert_mi2s_switch_enable = ucontrol->value.integer.value[0];
2520 return 1;
2521}
2522
2523static int msm_routing_get_quat_mi2s_switch_mixer(
2524 struct snd_kcontrol *kcontrol,
2525 struct snd_ctl_elem_value *ucontrol)
2526{
2527 ucontrol->value.integer.value[0] = quat_mi2s_switch_enable;
2528 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2529 ucontrol->value.integer.value[0]);
2530 return 0;
2531}
2532
2533static int msm_routing_put_quat_mi2s_switch_mixer(
2534 struct snd_kcontrol *kcontrol,
2535 struct snd_ctl_elem_value *ucontrol)
2536{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302537 struct snd_soc_dapm_widget *widget =
2538 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302539 struct snd_soc_dapm_update *update = NULL;
2540
2541 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2542 ucontrol->value.integer.value[0]);
2543 if (ucontrol->value.integer.value[0])
2544 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2545 update);
2546 else
2547 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2548 update);
2549 quat_mi2s_switch_enable = ucontrol->value.integer.value[0];
2550 return 1;
2551}
2552
Rohit Kumara5077932017-09-10 22:05:05 +05302553static int msm_routing_get_quin_mi2s_switch_mixer(
2554 struct snd_kcontrol *kcontrol,
2555 struct snd_ctl_elem_value *ucontrol)
2556{
2557 ucontrol->value.integer.value[0] = quin_mi2s_switch_enable;
2558 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2559 ucontrol->value.integer.value[0]);
2560 return 0;
2561}
2562
2563static int msm_routing_put_quin_mi2s_switch_mixer(
2564 struct snd_kcontrol *kcontrol,
2565 struct snd_ctl_elem_value *ucontrol)
2566{
2567 struct snd_soc_dapm_widget *widget =
2568 snd_soc_dapm_kcontrol_widget(kcontrol);
2569 struct snd_soc_dapm_update *update = NULL;
2570
2571 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2572 ucontrol->value.integer.value[0]);
2573 if (ucontrol->value.integer.value[0])
2574 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2575 update);
2576 else
2577 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2578 update);
2579 quin_mi2s_switch_enable = ucontrol->value.integer.value[0];
2580 return 1;
2581}
2582
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302583static int msm_routing_get_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2584 struct snd_ctl_elem_value *ucontrol)
2585{
2586 ucontrol->value.integer.value[0] = fm_pcmrx_switch_enable;
2587 pr_debug("%s: FM Switch enable %ld\n", __func__,
2588 ucontrol->value.integer.value[0]);
2589 return 0;
2590}
2591
2592static int msm_routing_put_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2593 struct snd_ctl_elem_value *ucontrol)
2594{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302595 struct snd_soc_dapm_widget *widget =
2596 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302597 struct snd_soc_dapm_update *update = NULL;
2598
2599 pr_debug("%s: FM Switch enable %ld\n", __func__,
2600 ucontrol->value.integer.value[0]);
2601 if (ucontrol->value.integer.value[0])
2602 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2603 update);
2604 else
2605 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2606 update);
2607 fm_pcmrx_switch_enable = ucontrol->value.integer.value[0];
2608 return 1;
2609}
2610
2611static int msm_routing_lsm_port_get(struct snd_kcontrol *kcontrol,
2612 struct snd_ctl_elem_value *ucontrol)
2613{
2614 ucontrol->value.integer.value[0] = lsm_port_index;
2615 return 0;
2616}
2617
2618static int msm_routing_lsm_port_put(struct snd_kcontrol *kcontrol,
2619 struct snd_ctl_elem_value *ucontrol)
2620{
2621 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
2622 int mux = ucontrol->value.enumerated.item[0];
2623 int lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2624
2625 if (mux >= e->items) {
2626 pr_err("%s: Invalid mux value %d\n", __func__, mux);
2627 return -EINVAL;
2628 }
2629
2630 pr_debug("%s: LSM enable %ld\n", __func__,
2631 ucontrol->value.integer.value[0]);
2632 switch (ucontrol->value.integer.value[0]) {
2633 case 1:
2634 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_0_TX;
2635 break;
2636 case 2:
2637 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_1_TX;
2638 break;
2639 case 3:
2640 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_2_TX;
2641 break;
2642 case 4:
2643 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_3_TX;
2644 break;
2645 case 5:
2646 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_4_TX;
2647 break;
2648 case 6:
2649 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2650 break;
2651 case 7:
2652 lsm_port = AFE_PORT_ID_TERTIARY_MI2S_TX;
2653 break;
2654 case 8:
2655 lsm_port = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2656 break;
2657 case 9:
2658 lsm_port = ADM_LSM_PORT_ID;
2659 break;
2660 case 10:
2661 lsm_port = AFE_PORT_ID_INT3_MI2S_TX;
2662 break;
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +05302663 case 11:
2664 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
2665 break;
2666 case 12:
2667 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_1;
2668 break;
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302669 case 13:
2670 lsm_port = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
2671 break;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05302672 case 14:
2673 lsm_port = AFE_PORT_ID_QUINARY_TDM_TX;
2674 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302675 default:
2676 pr_err("Default lsm port");
2677 break;
2678 }
2679 set_lsm_port(lsm_port);
2680 lsm_port_index = ucontrol->value.integer.value[0];
2681
2682 return 0;
2683}
2684
2685static int msm_routing_lsm_func_get(struct snd_kcontrol *kcontrol,
2686 struct snd_ctl_elem_value *ucontrol)
2687{
2688 int i;
2689 u16 port_id;
2690 enum afe_mad_type mad_type;
2691
2692 pr_debug("%s: enter\n", __func__);
2693 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
2694 if (!strnstr(kcontrol->id.name, lsm_port_text[i],
2695 strlen(lsm_port_text[i])))
2696 break;
2697
2698 if (i-- == ARRAY_SIZE(lsm_port_text)) {
2699 WARN(1, "Invalid id name %s\n", kcontrol->id.name);
2700 return -EINVAL;
2701 }
2702
2703 port_id = i * 2 + 1 + SLIMBUS_0_RX;
2704
2705 /*Check for Tertiary/Quaternary/INT3 TX port*/
2706 if (strnstr(kcontrol->id.name, lsm_port_text[7],
2707 strlen(lsm_port_text[7])))
2708 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
2709
2710 if (strnstr(kcontrol->id.name, lsm_port_text[8],
2711 strlen(lsm_port_text[8])))
2712 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2713
2714 if (strnstr(kcontrol->id.name, lsm_port_text[10],
2715 strlen(lsm_port_text[10])))
2716 port_id = AFE_PORT_ID_INT3_MI2S_TX;
2717
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302718 if (strnstr(kcontrol->id.name, lsm_port_text[13],
2719 strlen(lsm_port_text[13])))
2720 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
2721
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05302722 if (strnstr(kcontrol->id.name, lsm_port_text[14],
2723 strlen(lsm_port_text[14])))
2724 port_id = AFE_PORT_ID_QUINARY_TDM_TX;
2725
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302726 mad_type = afe_port_get_mad_type(port_id);
2727 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
2728 mad_type);
2729 switch (mad_type) {
2730 case MAD_HW_NONE:
2731 ucontrol->value.integer.value[0] = MADNONE;
2732 break;
2733 case MAD_HW_AUDIO:
2734 ucontrol->value.integer.value[0] = MADAUDIO;
2735 break;
2736 case MAD_HW_BEACON:
2737 ucontrol->value.integer.value[0] = MADBEACON;
2738 break;
2739 case MAD_HW_ULTRASOUND:
2740 ucontrol->value.integer.value[0] = MADULTRASOUND;
2741 break;
2742 case MAD_SW_AUDIO:
2743 ucontrol->value.integer.value[0] = MADSWAUDIO;
2744 break;
2745 default:
2746 WARN(1, "Unknown\n");
2747 return -EINVAL;
2748 }
2749 return 0;
2750}
2751
2752static int msm_routing_lsm_func_put(struct snd_kcontrol *kcontrol,
2753 struct snd_ctl_elem_value *ucontrol)
2754{
2755 int i;
2756 u16 port_id;
2757 enum afe_mad_type mad_type;
2758
2759 pr_debug("%s: enter\n", __func__);
2760 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
2761 if (strnstr(kcontrol->id.name, lsm_port_text[i],
2762 strlen(lsm_port_text[i])))
2763 break;
2764
2765 if (i-- == ARRAY_SIZE(lsm_port_text)) {
2766 WARN(1, "Invalid id name %s\n", kcontrol->id.name);
2767 return -EINVAL;
2768 }
2769
2770 port_id = i * 2 + 1 + SLIMBUS_0_RX;
2771 switch (ucontrol->value.integer.value[0]) {
2772 case MADNONE:
2773 mad_type = MAD_HW_NONE;
2774 break;
2775 case MADAUDIO:
2776 mad_type = MAD_HW_AUDIO;
2777 break;
2778 case MADBEACON:
2779 mad_type = MAD_HW_BEACON;
2780 break;
2781 case MADULTRASOUND:
2782 mad_type = MAD_HW_ULTRASOUND;
2783 break;
2784 case MADSWAUDIO:
2785 mad_type = MAD_SW_AUDIO;
2786 break;
2787 default:
2788 WARN(1, "Unknown\n");
2789 return -EINVAL;
2790 }
2791
2792 /*Check for Tertiary/Quaternary/INT3 TX port*/
2793 if (strnstr(kcontrol->id.name, lsm_port_text[7],
2794 strlen(lsm_port_text[7])))
2795 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
2796
2797 if (strnstr(kcontrol->id.name, lsm_port_text[8],
2798 strlen(lsm_port_text[8])))
2799 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2800
2801 if (strnstr(kcontrol->id.name, lsm_port_text[10],
2802 strlen(lsm_port_text[10])))
2803 port_id = AFE_PORT_ID_INT3_MI2S_TX;
2804
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302805 if (strnstr(kcontrol->id.name, lsm_port_text[13],
2806 strlen(lsm_port_text[13])))
2807 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
2808
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05302809 if (strnstr(kcontrol->id.name, lsm_port_text[14],
2810 strlen(lsm_port_text[14])))
2811 port_id = AFE_PORT_ID_QUINARY_TDM_TX;
2812
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302813 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
2814 mad_type);
2815 return afe_port_set_mad_type(port_id, mad_type);
2816}
2817
2818static const char *const adm_override_chs_text[] = {"Zero", "One", "Two"};
2819
2820static SOC_ENUM_SINGLE_EXT_DECL(slim_7_rx_adm_override_chs,
2821 adm_override_chs_text);
2822
2823static int msm_routing_adm_get_backend_idx(struct snd_kcontrol *kcontrol)
2824{
2825 int backend_id;
2826
2827 if (strnstr(kcontrol->id.name, "SLIM7_RX", sizeof("SLIM7_RX"))) {
2828 backend_id = MSM_BACKEND_DAI_SLIMBUS_7_RX;
2829 } else {
2830 pr_err("%s: unsupported backend id: %s",
2831 __func__, kcontrol->id.name);
2832 return -EINVAL;
2833 }
2834
2835 return backend_id;
2836}
2837static int msm_routing_adm_channel_config_get(
2838 struct snd_kcontrol *kcontrol,
2839 struct snd_ctl_elem_value *ucontrol)
2840{
2841 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
2842
2843 if (backend_id >= 0) {
2844 mutex_lock(&routing_lock);
2845 ucontrol->value.integer.value[0] =
2846 msm_bedais[backend_id].adm_override_ch;
2847 pr_debug("%s: adm channel count %ld for BE:%d\n", __func__,
2848 ucontrol->value.integer.value[0], backend_id);
2849 mutex_unlock(&routing_lock);
2850 }
2851
2852 return 0;
2853}
2854
2855static int msm_routing_adm_channel_config_put(
2856 struct snd_kcontrol *kcontrol,
2857 struct snd_ctl_elem_value *ucontrol)
2858{
2859 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
2860
2861 if (backend_id >= 0) {
2862 mutex_lock(&routing_lock);
2863 msm_bedais[backend_id].adm_override_ch =
2864 ucontrol->value.integer.value[0];
2865 pr_debug("%s:updating BE :%d adm channels: %d\n",
2866 __func__, backend_id,
2867 msm_bedais[backend_id].adm_override_ch);
2868 mutex_unlock(&routing_lock);
2869 }
2870
2871 return 0;
2872}
2873
2874static const struct snd_kcontrol_new adm_channel_config_controls[] = {
2875 SOC_ENUM_EXT("SLIM7_RX ADM Channels", slim_7_rx_adm_override_chs,
2876 msm_routing_adm_channel_config_get,
2877 msm_routing_adm_channel_config_put),
2878};
2879
2880static int msm_routing_slim_0_rx_aanc_mux_get(struct snd_kcontrol *kcontrol,
2881 struct snd_ctl_elem_value *ucontrol)
2882{
2883
2884 mutex_lock(&routing_lock);
2885 ucontrol->value.integer.value[0] = slim0_rx_aanc_fb_port;
2886 mutex_unlock(&routing_lock);
2887 pr_debug("%s: AANC Mux Port %ld\n", __func__,
2888 ucontrol->value.integer.value[0]);
2889 return 0;
2890};
2891
2892static int msm_routing_slim_0_rx_aanc_mux_put(struct snd_kcontrol *kcontrol,
2893 struct snd_ctl_elem_value *ucontrol)
2894{
2895 struct aanc_data aanc_info;
2896
2897 mutex_lock(&routing_lock);
2898 memset(&aanc_info, 0x00, sizeof(aanc_info));
2899 pr_debug("%s: AANC Mux Port %ld\n", __func__,
2900 ucontrol->value.integer.value[0]);
2901 slim0_rx_aanc_fb_port = ucontrol->value.integer.value[0];
2902 if (ucontrol->value.integer.value[0] == 0) {
2903 aanc_info.aanc_active = false;
2904 aanc_info.aanc_tx_port = 0;
2905 aanc_info.aanc_rx_port = 0;
2906 } else {
2907 aanc_info.aanc_active = true;
2908 aanc_info.aanc_rx_port = SLIMBUS_0_RX;
2909 aanc_info.aanc_tx_port =
2910 (SLIMBUS_0_RX - 1 + (slim0_rx_aanc_fb_port * 2));
2911 }
2912 afe_set_aanc_info(&aanc_info);
2913 mutex_unlock(&routing_lock);
2914 return 0;
2915};
2916static int msm_routing_get_port_mixer(struct snd_kcontrol *kcontrol,
2917 struct snd_ctl_elem_value *ucontrol)
2918{
2919 int idx = 0, shift = 0;
2920 struct soc_mixer_control *mc =
2921 (struct soc_mixer_control *)kcontrol->private_value;
2922
Meng Wang05d5e9a2018-03-28 16:45:03 +08002923 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
2924 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302925
2926 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
2927 pr_err("%s: Invalid idx = %d\n", __func__, idx);
2928 return -EINVAL;
2929 }
2930
2931 if (test_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08002932 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302933 ucontrol->value.integer.value[0] = 1;
2934 else
2935 ucontrol->value.integer.value[0] = 0;
2936
Meng Wang05d5e9a2018-03-28 16:45:03 +08002937 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302938 ucontrol->value.integer.value[0]);
2939
2940 return 0;
2941}
2942
2943static int msm_routing_put_port_mixer(struct snd_kcontrol *kcontrol,
2944 struct snd_ctl_elem_value *ucontrol)
2945{
2946 int idx = 0, shift = 0;
2947 struct soc_mixer_control *mc =
2948 (struct soc_mixer_control *)kcontrol->private_value;
2949
Meng Wang05d5e9a2018-03-28 16:45:03 +08002950 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
2951 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302952
2953 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
2954 pr_err("%s: Invalid idx = %d\n", __func__, idx);
2955 return -EINVAL;
2956 }
2957
Meng Wang05d5e9a2018-03-28 16:45:03 +08002958 pr_debug("%s: shift 0x%x rshift 0x%x val %ld idx %d reminder shift %d\n",
2959 __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302960 ucontrol->value.integer.value[0], idx, shift);
2961
2962 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002963 afe_loopback(1, msm_bedais[mc->shift].port_id,
2964 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302965 set_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08002966 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302967 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002968 afe_loopback(0, msm_bedais[mc->shift].port_id,
2969 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302970 clear_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08002971 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302972 }
2973
2974 return 1;
2975}
2976
2977static int msm_pcm_get_channel_rule_index(struct snd_kcontrol *kcontrol,
2978 struct snd_ctl_elem_value *ucontrol)
2979{
2980 u16 fe_id = 0;
2981
2982 fe_id = ((struct soc_mixer_control *)
2983 kcontrol->private_value)->shift;
2984 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
2985 pr_err("%s: invalid FE %d\n", __func__, fe_id);
2986 return -EINVAL;
2987 }
2988
2989 ucontrol->value.integer.value[0] = channel_mixer[fe_id].rule;
2990
2991 return 0;
2992}
2993
2994static int msm_pcm_put_channel_rule_index(struct snd_kcontrol *kcontrol,
2995 struct snd_ctl_elem_value *ucontrol)
2996{
2997 u16 fe_id = 0;
2998
2999 fe_id = ((struct soc_mixer_control *)
3000 kcontrol->private_value)->shift;
3001 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3002 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3003 return -EINVAL;
3004 }
3005
3006 channel_mixer[fe_id].rule = ucontrol->value.integer.value[0];
3007
3008 return 1;
3009}
3010
3011static int msm_pcm_get_out_chs(struct snd_kcontrol *kcontrol,
3012 struct snd_ctl_elem_value *ucontrol)
3013{
3014 u16 fe_id = 0;
3015
3016 fe_id = ((struct soc_multi_mixer_control *)
3017 kcontrol->private_value)->shift;
3018 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3019 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3020 return -EINVAL;
3021 }
3022
3023 ucontrol->value.integer.value[0] =
3024 channel_mixer[fe_id].output_channel;
3025 return 0;
3026}
3027
3028static int msm_pcm_put_out_chs(struct snd_kcontrol *kcontrol,
3029 struct snd_ctl_elem_value *ucontrol)
3030{
3031 u16 fe_id = 0;
3032
3033 fe_id = ((struct soc_multi_mixer_control *)
3034 kcontrol->private_value)->shift;
3035 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3036 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3037 return -EINVAL;
3038 }
3039
3040 pr_debug("%s: fe_id is %d, output channels = %d\n", __func__,
3041 fe_id,
3042 (unsigned int)(ucontrol->value.integer.value[0]));
3043 channel_mixer[fe_id].output_channel =
3044 (unsigned int)(ucontrol->value.integer.value[0]);
3045
3046 return 1;
3047}
3048
3049static const char *const ch_mixer[] = {"Disable", "Enable"};
3050
3051/* If new backend is added, need update this array */
3052static const char *const be_name[] = {
3053"ZERO", "PRI_I2S_RX", "PRI_I2S_TX", "SLIM_0_RX",
3054"SLIM_0_TX", "HDMI_RX", "INT_BT_SCO_RX", "INT_BT_SCO_TX",
3055"INT_FM_RX", "INT_FM_TX", "AFE_PCM_RX", "AFE_PCM_TX",
3056"AUXPCM_RX", "AUXPCM_TX", "VOICE_PLAYBACK_TX", "VOICE2_PLAYBACK_TX",
3057"INCALL_RECORD_RX", "INCALL_RECORD_TX", "MI2S_RX", "MI2S_TX",
3058"SEC_I2S_RX", "SLIM_1_RX", "SLIM_1_TX", "SLIM_2_RX",
3059"SLIM_2_TX", "SLIM_3_RX", "SLIM_3_TX", "SLIM_4_RX",
3060"SLIM_4_TX", "SLIM_5_RX", "SLIM_5_TX", "SLIM_6_RX",
3061"SLIM_6_TX", "SLIM_7_RX", "SLIM_7_TX", "SLIM_8_RX",
3062"SLIM_8_TX", "EXTPROC_RX", "EXTPROC_TX", "EXPROC_EC_TX",
3063"QUAT_MI2S_RX", "QUAT_MI2S_TX", "SECOND_MI2S_RX", "SECOND_MI2S_TX",
3064"PRI_MI2S_RX", "PRI_MI2S_TX", "TERT_MI2S_RX", "TERT_MI2S_TX",
Ralf Herzc8701f72018-06-20 11:37:35 +02003065"AUDIO_I2S_RX", "SEC_AUXPCM_RX", "SEC_AUXPCM_TX", "PRI_SPDIF_RX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303066"SECOND_MI2S_RX_SD1", "QUIN_MI2S_RX", "QUIN_MI2S_TX", "SENARY_MI2S_TX",
3067"PRI_TDM_RX_0", "PRI_TDM_TX_0", "PRI_TDM_RX_1", "PRI_TDM_TX_1",
3068"PRI_TDM_RX_2", "PRI_TDM_TX_2", "PRI_TDM_RX_3", "PRI_TDM_TX_3",
3069"PRI_TDM_RX_4", "PRI_TDM_TX_4", "PRI_TDM_RX_5", "PRI_TDM_TX_5",
3070"PRI_TDM_RX_6", "PRI_TDM_TX_6", "PRI_TDM_RX_7", "PRI_TDM_TX_7",
3071"SEC_TDM_RX_0", "SEC_TDM_TX_0", "SEC_TDM_RX_1", "SEC_TDM_TX_1",
3072"SEC_TDM_RX_2", "SEC_TDM_TX_2", "SEC_TDM_RX_3", "SEC_TDM_TX_3",
3073"SEC_TDM_RX_4", "SEC_TDM_TX_4", "SEC_TDM_RX_5", "SEC_TDM_TX_5",
3074"SEC_TDM_RX_6", "SEC_TDM_TX_6", "SEC_TDM_RX_7", "SEC_TDM_TX_7",
3075"TERT_TDM_RX_0", "TERT_TDM_TX_0", "TERT_TDM_RX_1", "TERT_TDM_TX_1",
3076"TERT_TDM_RX_2", "TERT_TDM_TX_2", "TERT_TDM_RX_3", "TERT_TDM_TX_3",
3077"TERT_TDM_RX_4", "TERT_TDM_TX_4", "TERT_TDM_RX_5", "TERT_TDM_TX_5",
3078"TERT_TDM_RX_6", "TERT_TDM_TX_6", "TERT_TDM_RX_7", "TERT_TDM_TX_7",
3079"QUAT_TDM_RX_0", "QUAT_TDM_TX_0", "QUAT_TDM_RX_1", "QUAT_TDM_TX_1",
3080"QUAT_TDM_RX_2", "QUAT_TDM_TX_2", "QUAT_TDM_RX_3", "QUAT_TDM_TX_3",
3081"QUAT_TDM_RX_4", "QUAT_TDM_TX_4", "QUAT_TDM_RX_5", "QUAT_TDM_TX_5",
3082"QUAT_TDM_RX_6", "QUAT_TDM_TX_6", "QUAT_TDM_RX_7", "QUAT_TDM_TX_7",
Rohit Kumara5077932017-09-10 22:05:05 +05303083"QUIN_TDM_RX_0", "QUIN_TDM_TX_0", "QUIN_TDM_RX_1", "QUIN_TDM_TX_1",
3084"QUIN_TDM_RX_2", "QUIN_TDM_TX_2", "QUIN_TDM_RX_3", "QUIN_TDM_TX_3",
3085"QUIN_TDM_RX_4", "QUIN_TDM_TX_4", "QUIN_TDM_RX_5", "QUIN_TDM_TX_5",
3086"QUIN_TDM_RX_6", "QUIN_TDM_TX_6", "QUIN_TDM_RX_7", "QUIN_TDM_TX_7",
Karthikeyan Mani57550082018-05-03 18:43:58 -07003087"INT_BT_A2DP_RX", "USB_RX", "USB_TX", "DISPLAY_PORT_RX", "DISPLAY_PORT_RX1",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303088"TERT_AUXPCM_RX", "TERT_AUXPCM_TX", "QUAT_AUXPCM_RX", "QUAT_AUXPCM_TX",
Rohit Kumara5077932017-09-10 22:05:05 +05303089"QUIN_AUXPCM_RX", "QUIN_AUXPCM_TX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303090"INT0_MI2S_RX", "INT0_MI2S_TX", "INT1_MI2S_RX", "INT1_MI2S_TX",
3091"INT2_MI2S_RX", "INT2_MI2S_TX", "INT3_MI2S_RX", "INT3_MI2S_TX",
3092"INT4_MI2S_RX", "INT4_MI2S_TX", "INT5_MI2S_RX", "INT5_MI2S_TX",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303093"INT6_MI2S_RX", "INT6_MI2S_TX", "WSA_CDC_DMA_RX_0",
3094"WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_RX_1", "WSA_CDC_DMA_TX_1",
Ralf Herzc8701f72018-06-20 11:37:35 +02003095"WSA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_1",
Aditya Bavanari1e84a932018-06-18 19:40:08 +05303096"RX_CDC_DMA_RX_0", "TX_CDC_DMA_TX_0", "RX_CDC_DMA_RX_1", "TX_CDC_DMA_TX_1",
3097"RX_CDC_DMA_RX_2", "TX_CDC_DMA_TX_2", "RX_CDC_DMA_RX_3", "TX_CDC_DMA_TX_3",
3098"RX_CDC_DMA_RX_4", "TX_CDC_DMA_TX_4", "RX_CDC_DMA_RX_5", "TX_CDC_DMA_TX_5",
3099"RX_CDC_DMA_RX_6", "RX_CDC_DMA_RX_7",
3100"PRI_SPDIF_TX", "SEC_SPDIF_RX", "SEC_SPDIF_TX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303101};
3102
3103static SOC_ENUM_SINGLE_DECL(mm1_channel_mux,
3104 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, ch_mixer);
3105static SOC_ENUM_SINGLE_DECL(mm2_channel_mux,
3106 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA2, ch_mixer);
3107static SOC_ENUM_SINGLE_DECL(mm3_channel_mux,
3108 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA3, ch_mixer);
3109static SOC_ENUM_SINGLE_DECL(mm4_channel_mux,
3110 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA4, ch_mixer);
3111
3112static SOC_ENUM_DOUBLE_DECL(mm1_ch1_enum,
3113 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 0, be_name);
3114static SOC_ENUM_DOUBLE_DECL(mm1_ch2_enum,
3115 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 1, be_name);
3116static SOC_ENUM_DOUBLE_DECL(mm1_ch3_enum,
3117 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 2, be_name);
3118static SOC_ENUM_DOUBLE_DECL(mm1_ch4_enum,
3119 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 3, be_name);
3120static SOC_ENUM_DOUBLE_DECL(mm1_ch5_enum,
3121 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 4, be_name);
3122static SOC_ENUM_DOUBLE_DECL(mm1_ch6_enum,
3123 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 5, be_name);
3124static SOC_ENUM_DOUBLE_DECL(mm1_ch7_enum,
3125 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 6, be_name);
3126static SOC_ENUM_DOUBLE_DECL(mm1_ch8_enum,
3127 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 7, be_name);
3128
3129static int msm_pcm_get_ctl_enum_info(struct snd_ctl_elem_info *uinfo,
3130 unsigned int channels,
3131 unsigned int items, const char *const names[])
3132{
3133 if (uinfo->value.enumerated.item >= items)
3134 uinfo->value.enumerated.item = items - 1;
3135
3136 WARN(strlen(names[uinfo->value.enumerated.item]) >=
3137 sizeof(uinfo->value.enumerated.name),
3138 "ALSA: too long item name '%s'\n",
3139 names[uinfo->value.enumerated.item]);
3140 strlcpy(uinfo->value.enumerated.name,
3141 names[uinfo->value.enumerated.item],
3142 sizeof(uinfo->value.enumerated.name));
3143 return 0;
3144}
3145
3146static int msm_pcm_channel_mixer_info(struct snd_kcontrol *kcontrol,
3147 struct snd_ctl_elem_info *uinfo)
3148{
3149 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3150
3151 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3152 uinfo->count = 1;
3153
3154 uinfo->value.enumerated.items = ARRAY_SIZE(ch_mixer);
3155 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3156
3157 return 0;
3158}
3159static int msm_pcm_channel_mixer_get(struct snd_kcontrol *kcontrol,
3160 struct snd_ctl_elem_value *ucontrol)
3161{
3162 u16 fe_id = 0;
3163
3164 fe_id = ((struct soc_enum *)
3165 kcontrol->private_value)->shift_l;
3166 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3167 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3168 return -EINVAL;
3169 }
3170
3171 pr_debug("%s: FE %d %s\n", __func__,
3172 fe_id,
3173 channel_mixer[fe_id].enable ? "Enabled" : "Disabled");
3174 ucontrol->value.enumerated.item[0] = channel_mixer[fe_id].enable;
3175 return 0;
3176}
3177
3178static int msm_pcm_channel_mixer_put(struct snd_kcontrol *kcontrol,
3179 struct snd_ctl_elem_value *ucontrol)
3180{
3181 u16 fe_id = 0;
3182
3183 fe_id = ((struct soc_enum *)
3184 kcontrol->private_value)->shift_l;
3185 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3186 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3187 return -EINVAL;
3188 }
3189
3190 channel_mixer[fe_id].enable = ucontrol->value.enumerated.item[0];
3191 pr_debug("%s: %s FE %d\n", __func__,
3192 channel_mixer[fe_id].enable ? "Enable" : "Disable",
3193 fe_id);
3194 return 0;
3195}
3196
3197static int msm_pcm_channel_input_be_info(struct snd_kcontrol *kcontrol,
3198 struct snd_ctl_elem_info *uinfo)
3199{
3200 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3201
3202 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3203 uinfo->count = 1;
3204
3205 uinfo->value.enumerated.items = ARRAY_SIZE(be_name);
3206 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3207
3208 return 0;
3209}
3210
3211static int msm_pcm_channel_input_be_put(struct snd_kcontrol *kcontrol,
3212 struct snd_ctl_elem_value *ucontrol)
3213{
3214 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3215 u16 fe_id = 0, in_ch = 0;
3216
3217 fe_id = e->shift_l;
3218 in_ch = e->shift_r;
3219 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3220 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3221 return -EINVAL;
3222 }
3223 if (in_ch >= ADM_MAX_CHANNELS) {
3224 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3225 return -EINVAL;
3226 }
3227
3228 channel_input[fe_id][in_ch] = ucontrol->value.enumerated.item[0];
3229 return 1;
3230}
3231
3232static int msm_pcm_channel_input_be_get(struct snd_kcontrol *kcontrol,
3233 struct snd_ctl_elem_value *ucontrol)
3234{
3235 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3236 u16 fe_id = 0, in_ch = 0;
3237
3238 fe_id = e->shift_l;
3239 in_ch = e->shift_r;
3240 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3241 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3242 return -EINVAL;
3243 }
3244 if (in_ch >= ADM_MAX_CHANNELS) {
3245 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3246 return -EINVAL;
3247 }
3248
3249 ucontrol->value.enumerated.item[0] = channel_input[fe_id][in_ch];
3250 return 1;
3251}
3252
3253
3254static int msm_pcm_channel_weight_info(struct snd_kcontrol *kcontrol,
3255 struct snd_ctl_elem_info *uinfo)
3256{
3257 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
3258 uinfo->count = ADM_MAX_CHANNELS;
3259 uinfo->value.integer.min = 0;
3260 uinfo->value.integer.max = WEIGHT_0_DB;
3261
3262 return 0;
3263}
3264
3265static int msm_pcm_channel_weight_put(struct snd_kcontrol *kcontrol,
3266 struct snd_ctl_elem_value *ucontrol)
3267{
3268 u16 fe_id = 0, out_ch = 0;
3269 int i, weight;
3270
3271 fe_id = ((struct soc_multi_mixer_control *)
3272 kcontrol->private_value)->shift;
3273 out_ch = ((struct soc_multi_mixer_control *)
3274 kcontrol->private_value)->rshift;
3275 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3276 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3277 return -EINVAL;
3278 }
3279 if (out_ch >= ADM_MAX_CHANNELS) {
3280 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3281 return -EINVAL;
3282 }
3283
3284 pr_debug("%s: FE_ID: %d, channel weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld\n",
3285 __func__, fe_id,
3286 ucontrol->value.integer.value[0],
3287 ucontrol->value.integer.value[1],
3288 ucontrol->value.integer.value[2],
3289 ucontrol->value.integer.value[3],
3290 ucontrol->value.integer.value[4],
3291 ucontrol->value.integer.value[5],
3292 ucontrol->value.integer.value[6],
3293 ucontrol->value.integer.value[7]);
3294
3295 for (i = 0; i < ADM_MAX_CHANNELS; ++i) {
3296 weight = ucontrol->value.integer.value[i];
3297 channel_mixer[fe_id].channel_weight[out_ch][i] = weight;
3298 pr_debug("%s: FE_ID %d, output %d input %d weight %d\n",
3299 __func__, fe_id, out_ch, i,
3300 channel_mixer[fe_id].channel_weight[out_ch][i]);
3301 }
3302
3303 return 0;
3304}
3305
3306static int msm_pcm_channel_weight_get(struct snd_kcontrol *kcontrol,
3307 struct snd_ctl_elem_value *ucontrol)
3308{
3309 u16 fe_id = 0, out_ch = 0;
3310 int i;
3311
3312 fe_id = ((struct soc_multi_mixer_control *)
3313 kcontrol->private_value)->shift;
3314 out_ch = ((struct soc_multi_mixer_control *)
3315 kcontrol->private_value)->rshift;
3316 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3317 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3318 return -EINVAL;
3319 }
3320 if (out_ch >= ADM_MAX_CHANNELS) {
3321 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3322 return -EINVAL;
3323 }
3324
3325 for (i = 0; i < ADM_MAX_CHANNELS; ++i)
3326 ucontrol->value.integer.value[i] =
3327 channel_mixer[fe_id].channel_weight[out_ch][i];
3328
3329 pr_debug("%s: FE_ID: %d, weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld",
3330 __func__, fe_id,
3331 ucontrol->value.integer.value[0],
3332 ucontrol->value.integer.value[1],
3333 ucontrol->value.integer.value[2],
3334 ucontrol->value.integer.value[3],
3335 ucontrol->value.integer.value[4],
3336 ucontrol->value.integer.value[5],
3337 ucontrol->value.integer.value[6],
3338 ucontrol->value.integer.value[7]);
3339
3340 return 0;
3341}
3342
3343static const struct snd_kcontrol_new channel_mixer_controls[] = {
3344 SOC_SINGLE_EXT("MultiMedia1 Channel Rule", SND_SOC_NOPM,
3345 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3346 msm_pcm_get_channel_rule_index,
3347 msm_pcm_put_channel_rule_index),
3348 SOC_SINGLE_EXT("MultiMedia2 Channel Rule", SND_SOC_NOPM,
3349 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3350 msm_pcm_get_channel_rule_index,
3351 msm_pcm_put_channel_rule_index),
3352 SOC_SINGLE_EXT("MultiMedia3 Channel Rule", SND_SOC_NOPM,
3353 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3354 msm_pcm_get_channel_rule_index,
3355 msm_pcm_put_channel_rule_index),
3356 SOC_SINGLE_EXT("MultiMedia4 Channel Rule", SND_SOC_NOPM,
3357 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3358 msm_pcm_get_channel_rule_index,
3359 msm_pcm_put_channel_rule_index),
3360 SOC_SINGLE_EXT("MultiMedia5 Channel Rule", SND_SOC_NOPM,
3361 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3362 msm_pcm_get_channel_rule_index,
3363 msm_pcm_put_channel_rule_index),
3364 SOC_SINGLE_EXT("MultiMedia6 Channel Rule", SND_SOC_NOPM,
3365 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3366 msm_pcm_get_channel_rule_index,
3367 msm_pcm_put_channel_rule_index),
3368
3369 SOC_SINGLE_EXT("MultiMedia1 Channels", SND_SOC_NOPM,
3370 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3371 msm_pcm_get_out_chs,
3372 msm_pcm_put_out_chs),
3373 SOC_SINGLE_EXT("MultiMedia2 Channels", SND_SOC_NOPM,
3374 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3375 msm_pcm_get_out_chs,
3376 msm_pcm_put_out_chs),
3377 SOC_SINGLE_EXT("MultiMedia3 Channels", SND_SOC_NOPM,
3378 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3379 msm_pcm_get_out_chs,
3380 msm_pcm_put_out_chs),
3381 SOC_SINGLE_EXT("MultiMedia4 Channels", SND_SOC_NOPM,
3382 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3383 msm_pcm_get_out_chs,
3384 msm_pcm_put_out_chs),
3385 SOC_SINGLE_EXT("MultiMedia5 Channels", SND_SOC_NOPM,
3386 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3387 msm_pcm_get_out_chs,
3388 msm_pcm_put_out_chs),
3389 SOC_SINGLE_EXT("MultiMedia6 Channels", SND_SOC_NOPM,
3390 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3391 msm_pcm_get_out_chs,
3392 msm_pcm_put_out_chs),
3393 {
3394 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3395 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3396 .name = "MultiMedia1 Channel Mixer",
3397 .info = msm_pcm_channel_mixer_info,
3398 .get = msm_pcm_channel_mixer_get,
3399 .put = msm_pcm_channel_mixer_put,
3400 .private_value = (unsigned long)&(mm1_channel_mux)
3401 },
3402 {
3403 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3404 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3405 .name = "MultiMedia2 Channel Mixer",
3406 .info = msm_pcm_channel_mixer_info,
3407 .get = msm_pcm_channel_mixer_get,
3408 .put = msm_pcm_channel_mixer_put,
3409 .private_value = (unsigned long)&(mm2_channel_mux)
3410 },
3411 {
3412 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3413 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3414 .name = "MultiMedia3 Channel Mixer",
3415 .info = msm_pcm_channel_mixer_info,
3416 .get = msm_pcm_channel_mixer_get,
3417 .put = msm_pcm_channel_mixer_put,
3418 .private_value = (unsigned long)&(mm3_channel_mux)
3419 },
3420 {
3421 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3422 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3423 .name = "MultiMedia4 Channel Mixer",
3424 .info = msm_pcm_channel_mixer_info,
3425 .get = msm_pcm_channel_mixer_get,
3426 .put = msm_pcm_channel_mixer_put,
3427 .private_value = (unsigned long)&(mm4_channel_mux)
3428 },
3429 {
3430 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3431 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3432 .name = "MultiMedia1 Output Channel1",
3433 .info = msm_pcm_channel_weight_info,
3434 .get = msm_pcm_channel_weight_get,
3435 .put = msm_pcm_channel_weight_put,
3436 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3437 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 0,}
3438 },
3439 {
3440 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3441 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3442 .name = "MultiMedia1 Output Channel2",
3443 .info = msm_pcm_channel_weight_info,
3444 .get = msm_pcm_channel_weight_get,
3445 .put = msm_pcm_channel_weight_put,
3446 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3447 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 1, }
3448 },
3449 {
3450 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3451 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3452 .name = "MultiMedia1 Output Channel3",
3453 .info = msm_pcm_channel_weight_info,
3454 .get = msm_pcm_channel_weight_get,
3455 .put = msm_pcm_channel_weight_put,
3456 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3457 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 2,}
3458 },
3459 {
3460 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3461 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3462 .name = "MultiMedia1 Output Channel4",
3463 .info = msm_pcm_channel_weight_info,
3464 .get = msm_pcm_channel_weight_get,
3465 .put = msm_pcm_channel_weight_put,
3466 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3467 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 3,}
3468 },
3469 {
3470 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3471 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3472 .name = "MultiMedia1 Output Channel5",
3473 .info = msm_pcm_channel_weight_info,
3474 .get = msm_pcm_channel_weight_get,
3475 .put = msm_pcm_channel_weight_put,
3476 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3477 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 4,}
3478 },
3479 {
3480 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3481 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3482 .name = "MultiMedia1 Output Channel6",
3483 .info = msm_pcm_channel_weight_info,
3484 .get = msm_pcm_channel_weight_get,
3485 .put = msm_pcm_channel_weight_put,
3486 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3487 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 5,}
3488 },
3489 {
3490 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3491 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3492 .name = "MultiMedia1 Output Channel7",
3493 .info = msm_pcm_channel_weight_info,
3494 .get = msm_pcm_channel_weight_get,
3495 .put = msm_pcm_channel_weight_put,
3496 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3497 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 6,}
3498 },
3499 {
3500 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3501 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3502 .name = "MultiMedia1 Output Channel8",
3503 .info = msm_pcm_channel_weight_info,
3504 .get = msm_pcm_channel_weight_get,
3505 .put = msm_pcm_channel_weight_put,
3506 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3507 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 7,}
3508 },
3509 {
3510 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3511 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3512 .name = "MultiMedia2 Output Channel1",
3513 .info = msm_pcm_channel_weight_info,
3514 .get = msm_pcm_channel_weight_get,
3515 .put = msm_pcm_channel_weight_put,
3516 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3517 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 0,}
3518 },
3519 {
3520 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3521 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3522 .name = "MultiMedia2 Output Channel2",
3523 .info = msm_pcm_channel_weight_info,
3524 .get = msm_pcm_channel_weight_get,
3525 .put = msm_pcm_channel_weight_put,
3526 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3527 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 1,}
3528 },
3529 {
3530 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3531 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3532 .name = "MultiMedia2 Output Channel3",
3533 .info = msm_pcm_channel_weight_info,
3534 .get = msm_pcm_channel_weight_get,
3535 .put = msm_pcm_channel_weight_put,
3536 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3537 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 2,}
3538 },
3539 {
3540 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3541 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3542 .name = "MultiMedia3 Output Channel1",
3543 .info = msm_pcm_channel_weight_info,
3544 .get = msm_pcm_channel_weight_get,
3545 .put = msm_pcm_channel_weight_put,
3546 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3547 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 0,}
3548 },
3549 {
3550 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3551 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3552 .name = "MultiMedia3 Output Channel2",
3553 .info = msm_pcm_channel_weight_info,
3554 .get = msm_pcm_channel_weight_get,
3555 .put = msm_pcm_channel_weight_put,
3556 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3557 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 1,}
3558 },
3559 {
3560 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3561 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3562 .name = "MultiMedia1 Channel1",
3563 .info = msm_pcm_channel_input_be_info,
3564 .get = msm_pcm_channel_input_be_get,
3565 .put = msm_pcm_channel_input_be_put,
3566 .private_value = (unsigned long)&(mm1_ch1_enum)
3567 },
3568 {
3569 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3570 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3571 .name = "MultiMedia1 Channel2",
3572 .info = msm_pcm_channel_input_be_info,
3573 .get = msm_pcm_channel_input_be_get,
3574 .put = msm_pcm_channel_input_be_put,
3575 .private_value = (unsigned long)&(mm1_ch2_enum)
3576 },
3577 {
3578 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3579 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3580 .name = "MultiMedia1 Channel3",
3581 .info = msm_pcm_channel_input_be_info,
3582 .get = msm_pcm_channel_input_be_get,
3583 .put = msm_pcm_channel_input_be_put,
3584 .private_value = (unsigned long)&(mm1_ch3_enum)
3585 },
3586 {
3587 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3588 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3589 .name = "MultiMedia1 Channel4",
3590 .info = msm_pcm_channel_input_be_info,
3591 .get = msm_pcm_channel_input_be_get,
3592 .put = msm_pcm_channel_input_be_put,
3593 .private_value = (unsigned long)&(mm1_ch4_enum)
3594 },
3595 {
3596 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3597 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3598 .name = "MultiMedia1 Channel5",
3599 .info = msm_pcm_channel_input_be_info,
3600 .get = msm_pcm_channel_input_be_get,
3601 .put = msm_pcm_channel_input_be_put,
3602 .private_value = (unsigned long)&(mm1_ch5_enum)
3603 },
3604 {
3605 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3606 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3607 .name = "MultiMedia1 Channel6",
3608 .info = msm_pcm_channel_input_be_info,
3609 .get = msm_pcm_channel_input_be_get,
3610 .put = msm_pcm_channel_input_be_put,
3611 .private_value = (unsigned long)&(mm1_ch6_enum)
3612 },
3613 {
3614 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3615 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3616 .name = "MultiMedia1 Channel7",
3617 .info = msm_pcm_channel_input_be_info,
3618 .get = msm_pcm_channel_input_be_get,
3619 .put = msm_pcm_channel_input_be_put,
3620 .private_value = (unsigned long)&(mm1_ch7_enum)
3621 },
3622 {
3623 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3624 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3625 .name = "MultiMedia1 Channel8",
3626 .info = msm_pcm_channel_input_be_info,
3627 .get = msm_pcm_channel_input_be_get,
3628 .put = msm_pcm_channel_input_be_put,
3629 .private_value = (unsigned long)&(mm1_ch8_enum)
3630 },
3631};
3632static int msm_ec_ref_ch_get(struct snd_kcontrol *kcontrol,
3633 struct snd_ctl_elem_value *ucontrol)
3634{
3635 ucontrol->value.integer.value[0] = msm_ec_ref_ch;
3636 pr_debug("%s: msm_ec_ref_ch = %ld\n", __func__,
3637 ucontrol->value.integer.value[0]);
3638 return 0;
3639}
3640
3641static int msm_ec_ref_ch_put(struct snd_kcontrol *kcontrol,
3642 struct snd_ctl_elem_value *ucontrol)
3643{
3644 msm_ec_ref_ch = ucontrol->value.integer.value[0];
3645 pr_debug("%s: msm_ec_ref_ch = %d\n", __func__, msm_ec_ref_ch);
3646 adm_num_ec_ref_rx_chans(msm_ec_ref_ch);
3647 return 0;
3648}
3649
3650static const char *const ec_ref_ch_text[] = {"Zero", "One", "Two", "Three",
3651 "Four", "Five", "Six", "Seven", "Eight"};
3652
3653static int msm_ec_ref_bit_format_get(struct snd_kcontrol *kcontrol,
3654 struct snd_ctl_elem_value *ucontrol)
3655{
3656 switch (msm_ec_ref_bit_format) {
3657 case SNDRV_PCM_FORMAT_S24_LE:
3658 ucontrol->value.integer.value[0] = 2;
3659 break;
3660 case SNDRV_PCM_FORMAT_S16_LE:
3661 ucontrol->value.integer.value[0] = 1;
3662 break;
3663 default:
3664 ucontrol->value.integer.value[0] = 0;
3665 break;
3666 }
3667 pr_debug("%s: msm_ec_ref_bit_format = %ld\n",
3668 __func__, ucontrol->value.integer.value[0]);
3669 return 0;
3670}
3671
3672static int msm_ec_ref_bit_format_put(struct snd_kcontrol *kcontrol,
3673 struct snd_ctl_elem_value *ucontrol)
3674{
3675 u16 bit_width = 0;
3676
3677 switch (ucontrol->value.integer.value[0]) {
3678 case 2:
3679 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S24_LE;
3680 break;
3681 case 1:
3682 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
3683 break;
3684 default:
3685 msm_ec_ref_bit_format = 0;
3686 break;
3687 }
3688
3689 if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S16_LE)
3690 bit_width = 16;
3691 else if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S24_LE)
3692 bit_width = 24;
3693
3694 pr_debug("%s: msm_ec_ref_bit_format = %d\n",
3695 __func__, msm_ec_ref_bit_format);
3696 adm_ec_ref_rx_bit_width(bit_width);
3697 return 0;
3698}
3699
3700static char const *ec_ref_bit_format_text[] = {"0", "S16_LE", "S24_LE"};
3701
3702static int msm_ec_ref_rate_get(struct snd_kcontrol *kcontrol,
3703 struct snd_ctl_elem_value *ucontrol)
3704{
3705 ucontrol->value.integer.value[0] = msm_ec_ref_sampling_rate;
3706 pr_debug("%s: msm_ec_ref_sampling_rate = %ld\n",
3707 __func__, ucontrol->value.integer.value[0]);
3708 return 0;
3709}
3710
3711static int msm_ec_ref_rate_put(struct snd_kcontrol *kcontrol,
3712 struct snd_ctl_elem_value *ucontrol)
3713{
3714 switch (ucontrol->value.integer.value[0]) {
3715 case 0:
3716 msm_ec_ref_sampling_rate = 0;
3717 break;
3718 case 1:
3719 msm_ec_ref_sampling_rate = 8000;
3720 break;
3721 case 2:
3722 msm_ec_ref_sampling_rate = 16000;
3723 break;
3724 case 3:
3725 msm_ec_ref_sampling_rate = 32000;
3726 break;
3727 case 4:
3728 msm_ec_ref_sampling_rate = 44100;
3729 break;
3730 case 5:
3731 msm_ec_ref_sampling_rate = 48000;
3732 break;
3733 case 6:
3734 msm_ec_ref_sampling_rate = 96000;
3735 break;
3736 case 7:
3737 msm_ec_ref_sampling_rate = 192000;
3738 break;
3739 case 8:
3740 msm_ec_ref_sampling_rate = 384000;
3741 break;
3742 default:
3743 msm_ec_ref_sampling_rate = 48000;
3744 break;
3745 }
3746 pr_debug("%s: msm_ec_ref_sampling_rate = %d\n",
3747 __func__, msm_ec_ref_sampling_rate);
3748 adm_ec_ref_rx_sampling_rate(msm_ec_ref_sampling_rate);
3749 return 0;
3750}
3751
3752static const char *const ec_ref_rate_text[] = {"0", "8000", "16000",
3753 "32000", "44100", "48000", "96000", "192000", "384000"};
3754
3755static const struct soc_enum msm_route_ec_ref_params_enum[] = {
3756 SOC_ENUM_SINGLE_EXT(9, ec_ref_ch_text),
3757 SOC_ENUM_SINGLE_EXT(3, ec_ref_bit_format_text),
3758 SOC_ENUM_SINGLE_EXT(9, ec_ref_rate_text),
3759};
3760
3761static const struct snd_kcontrol_new ec_ref_param_controls[] = {
3762 SOC_ENUM_EXT("EC Reference Channels", msm_route_ec_ref_params_enum[0],
3763 msm_ec_ref_ch_get, msm_ec_ref_ch_put),
3764 SOC_ENUM_EXT("EC Reference Bit Format", msm_route_ec_ref_params_enum[1],
3765 msm_ec_ref_bit_format_get, msm_ec_ref_bit_format_put),
3766 SOC_ENUM_EXT("EC Reference SampleRate", msm_route_ec_ref_params_enum[2],
3767 msm_ec_ref_rate_get, msm_ec_ref_rate_put),
3768};
3769
3770static int msm_routing_ec_ref_rx_get(struct snd_kcontrol *kcontrol,
3771 struct snd_ctl_elem_value *ucontrol)
3772{
3773 pr_debug("%s: ec_ref_rx = %d", __func__, msm_route_ec_ref_rx);
3774 mutex_lock(&routing_lock);
3775 ucontrol->value.integer.value[0] = msm_route_ec_ref_rx;
3776 mutex_unlock(&routing_lock);
3777 return 0;
3778}
3779
3780static int msm_routing_ec_ref_rx_put(struct snd_kcontrol *kcontrol,
3781 struct snd_ctl_elem_value *ucontrol)
3782{
3783 int ec_ref_port_id;
Asish Bhattacharya34504582017-08-08 12:55:01 +05303784 struct snd_soc_dapm_widget *widget =
3785 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303786 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3787 struct snd_soc_dapm_update *update = NULL;
3788
3789
3790 mutex_lock(&routing_lock);
3791 switch (ucontrol->value.integer.value[0]) {
3792 case 0:
3793 msm_route_ec_ref_rx = 0;
3794 ec_ref_port_id = AFE_PORT_INVALID;
3795 break;
3796 case 1:
3797 msm_route_ec_ref_rx = 1;
3798 ec_ref_port_id = SLIMBUS_0_RX;
3799 break;
3800 case 2:
3801 msm_route_ec_ref_rx = 2;
3802 ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_RX;
3803 break;
3804 case 3:
3805 msm_route_ec_ref_rx = 3;
3806 ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
3807 break;
3808 case 4:
3809 msm_route_ec_ref_rx = 4;
3810 ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
3811 break;
3812 case 5:
3813 msm_route_ec_ref_rx = 5;
3814 ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
3815 break;
3816 case 6:
3817 msm_route_ec_ref_rx = 6;
3818 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
3819 break;
3820 case 7:
3821 msm_route_ec_ref_rx = 7;
3822 ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_RX;
3823 break;
3824 case 9:
3825 msm_route_ec_ref_rx = 9;
3826 ec_ref_port_id = SLIMBUS_5_RX;
3827 break;
3828 case 10:
3829 msm_route_ec_ref_rx = 10;
3830 ec_ref_port_id = SLIMBUS_1_TX;
3831 break;
3832 case 11:
3833 msm_route_ec_ref_rx = 11;
3834 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_TX_1;
3835 break;
3836 case 12:
3837 msm_route_ec_ref_rx = 12;
3838 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX;
3839 break;
3840 case 13:
3841 msm_route_ec_ref_rx = 13;
3842 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_1;
3843 break;
3844 case 14:
3845 msm_route_ec_ref_rx = 14;
3846 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_2;
3847 break;
3848 case 15:
3849 msm_route_ec_ref_rx = 15;
3850 ec_ref_port_id = SLIMBUS_6_RX;
3851 break;
3852 case 16:
3853 msm_route_ec_ref_rx = 16;
3854 ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_RX;
3855 break;
3856 case 17:
3857 msm_route_ec_ref_rx = 17;
3858 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_RX;
3859 break;
3860 case 18:
3861 msm_route_ec_ref_rx = 18;
3862 ec_ref_port_id = AFE_PORT_ID_TERTIARY_TDM_TX;
3863 break;
3864 case 19:
3865 msm_route_ec_ref_rx = 19;
3866 ec_ref_port_id = AFE_PORT_ID_USB_RX;
3867 break;
3868 case 20:
3869 msm_route_ec_ref_rx = 20;
3870 ec_ref_port_id = AFE_PORT_ID_INT0_MI2S_RX;
3871 break;
3872 case 21:
3873 msm_route_ec_ref_rx = 21;
3874 ec_ref_port_id = AFE_PORT_ID_INT4_MI2S_RX;
3875 break;
3876 case 22:
3877 msm_route_ec_ref_rx = 22;
3878 ec_ref_port_id = AFE_PORT_ID_INT3_MI2S_TX;
3879 break;
Aalique Grahamee4fd7d52017-11-28 13:24:13 -08003880 case 23:
3881 msm_route_ec_ref_rx = 23;
3882 ec_ref_port_id = AFE_PORT_ID_HDMI_OVER_DP_RX;
3883 break;
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303884 case 24:
3885 msm_route_ec_ref_rx = 24;
3886 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_0;
3887 break;
3888 case 25:
3889 msm_route_ec_ref_rx = 25;
3890 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_1;
3891 break;
3892 case 26:
3893 msm_route_ec_ref_rx = 26;
3894 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_0;
3895 break;
3896 case 27:
3897 msm_route_ec_ref_rx = 27;
3898 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_1;
3899 break;
3900 case 28:
3901 msm_route_ec_ref_rx = 28;
3902 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_2;
3903 break;
Zhou Songb167db12018-07-02 17:14:00 +08003904 case 29:
3905 msm_route_ec_ref_rx = 29;
3906 ec_ref_port_id = SLIMBUS_7_RX;
3907 break;
Aditya Bavanari1e84a932018-06-18 19:40:08 +05303908 case 30:
3909 msm_route_ec_ref_rx = 30;
3910 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_0;
3911 break;
3912 case 31:
3913 msm_route_ec_ref_rx = 31;
3914 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_1;
3915 break;
3916 case 32:
3917 msm_route_ec_ref_rx = 32;
3918 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_2;
3919 break;
3920 case 33:
3921 msm_route_ec_ref_rx = 33;
3922 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_3;
3923 break;
3924 case 34:
3925 msm_route_ec_ref_rx = 34;
3926 ec_ref_port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_0;
3927 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303928 default:
3929 msm_route_ec_ref_rx = 0; /* NONE */
3930 pr_err("%s EC ref rx %ld not valid\n",
3931 __func__, ucontrol->value.integer.value[0]);
3932 ec_ref_port_id = AFE_PORT_INVALID;
3933 break;
3934 }
3935 adm_ec_ref_rx_id(ec_ref_port_id);
3936 pr_debug("%s: msm_route_ec_ref_rx = %d\n",
3937 __func__, msm_route_ec_ref_rx);
3938 mutex_unlock(&routing_lock);
3939 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol,
3940 msm_route_ec_ref_rx, e, update);
3941 return 0;
3942}
3943
3944static const char *const ec_ref_rx[] = { "None", "SLIM_RX", "I2S_RX",
3945 "PRI_MI2S_TX", "SEC_MI2S_TX",
3946 "TERT_MI2S_TX", "QUAT_MI2S_TX", "SEC_I2S_RX", "PROXY_RX",
3947 "SLIM_5_RX", "SLIM_1_TX", "QUAT_TDM_TX_1",
3948 "QUAT_TDM_RX_0", "QUAT_TDM_RX_1", "QUAT_TDM_RX_2", "SLIM_6_RX",
3949 "TERT_MI2S_RX", "QUAT_MI2S_RX", "TERT_TDM_TX_0", "USB_AUDIO_RX",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303950 "INT0_MI2S_RX", "INT4_MI2S_RX", "INT3_MI2S_TX", "DISPLAY_PORT",
3951 "WSA_CDC_DMA_RX_0", "WSA_CDC_DMA_RX_1",
Zhou Songb167db12018-07-02 17:14:00 +08003952 "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_2",
Aditya Bavanari1e84a932018-06-18 19:40:08 +05303953 "SLIM_7_RX", "RX_CDC_DMA_RX_0", "RX_CDC_DMA_RX_1", "RX_CDC_DMA_RX_2",
3954 "RX_CDC_DMA_RX_3", "TX_CDC_DMA_TX_0",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303955};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303956
3957static const struct soc_enum msm_route_ec_ref_rx_enum[] = {
3958 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_rx), ec_ref_rx),
3959};
3960
3961static const struct snd_kcontrol_new ext_ec_ref_mux_ul1 =
3962 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL1 MUX Mux",
3963 msm_route_ec_ref_rx_enum[0],
3964 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3965
3966static const struct snd_kcontrol_new ext_ec_ref_mux_ul2 =
3967 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL2 MUX Mux",
3968 msm_route_ec_ref_rx_enum[0],
3969 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3970
3971static const struct snd_kcontrol_new ext_ec_ref_mux_ul3 =
3972 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL3 MUX Mux",
3973 msm_route_ec_ref_rx_enum[0],
3974 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3975
3976static const struct snd_kcontrol_new ext_ec_ref_mux_ul4 =
3977 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL4 MUX Mux",
3978 msm_route_ec_ref_rx_enum[0],
3979 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3980
3981static const struct snd_kcontrol_new ext_ec_ref_mux_ul5 =
3982 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL5 MUX Mux",
3983 msm_route_ec_ref_rx_enum[0],
3984 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3985
3986static const struct snd_kcontrol_new ext_ec_ref_mux_ul6 =
3987 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL6 MUX Mux",
3988 msm_route_ec_ref_rx_enum[0],
3989 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3990
3991static const struct snd_kcontrol_new ext_ec_ref_mux_ul8 =
3992 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL8 MUX Mux",
3993 msm_route_ec_ref_rx_enum[0],
3994 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3995
3996static const struct snd_kcontrol_new ext_ec_ref_mux_ul9 =
3997 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL9 MUX Mux",
3998 msm_route_ec_ref_rx_enum[0],
3999 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4000
Asish Bhattacharya34504582017-08-08 12:55:01 +05304001static const struct snd_kcontrol_new ext_ec_ref_mux_ul16 =
4002 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL16 MUX Mux",
4003 msm_route_ec_ref_rx_enum[0],
4004 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4005
Laxminath Kasam38070be2017-08-17 18:21:59 +05304006static const struct snd_kcontrol_new ext_ec_ref_mux_ul10 =
4007 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL10 MUX Mux",
4008 msm_route_ec_ref_rx_enum[0],
4009 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4010
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304011static const struct snd_kcontrol_new ext_ec_ref_mux_ul17 =
4012 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL17 MUX Mux",
4013 msm_route_ec_ref_rx_enum[0],
4014 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4015
4016static const struct snd_kcontrol_new ext_ec_ref_mux_ul18 =
4017 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL18 MUX Mux",
4018 msm_route_ec_ref_rx_enum[0],
4019 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4020
4021static const struct snd_kcontrol_new ext_ec_ref_mux_ul19 =
4022 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL19 MUX Mux",
4023 msm_route_ec_ref_rx_enum[0],
4024 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4025
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304026static const struct snd_kcontrol_new ext_ec_ref_mux_ul28 =
4027 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL28 MUX Mux",
4028 msm_route_ec_ref_rx_enum[0],
4029 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4030
4031static const struct snd_kcontrol_new ext_ec_ref_mux_ul29 =
4032 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL29 MUX Mux",
4033 msm_route_ec_ref_rx_enum[0],
4034 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4035
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304036static int msm_routing_ext_ec_get(struct snd_kcontrol *kcontrol,
4037 struct snd_ctl_elem_value *ucontrol)
4038{
4039 pr_debug("%s: ext_ec_ref_rx = %x\n", __func__, msm_route_ext_ec_ref);
4040
4041 mutex_lock(&routing_lock);
4042 ucontrol->value.integer.value[0] = msm_route_ext_ec_ref;
4043 mutex_unlock(&routing_lock);
4044 return 0;
4045}
4046
4047static int msm_routing_ext_ec_put(struct snd_kcontrol *kcontrol,
4048 struct snd_ctl_elem_value *ucontrol)
4049{
Asish Bhattacharya34504582017-08-08 12:55:01 +05304050 struct snd_soc_dapm_widget *widget =
4051 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304052 int mux = ucontrol->value.enumerated.item[0];
4053 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
4054 int ret = 1;
4055 bool state = true;
4056 uint16_t ext_ec_ref_port_id;
4057 struct snd_soc_dapm_update *update = NULL;
4058
4059 if (mux >= e->items) {
4060 pr_err("%s: Invalid mux value %d\n", __func__, mux);
4061 return -EINVAL;
4062 }
4063
4064 mutex_lock(&routing_lock);
4065 msm_route_ext_ec_ref = ucontrol->value.integer.value[0];
4066
4067 switch (msm_route_ext_ec_ref) {
4068 case EXT_EC_REF_PRI_MI2S_TX:
4069 ext_ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
4070 break;
4071 case EXT_EC_REF_SEC_MI2S_TX:
4072 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
4073 break;
4074 case EXT_EC_REF_TERT_MI2S_TX:
4075 ext_ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
4076 break;
4077 case EXT_EC_REF_QUAT_MI2S_TX:
4078 ext_ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
4079 break;
4080 case EXT_EC_REF_QUIN_MI2S_TX:
4081 ext_ec_ref_port_id = AFE_PORT_ID_QUINARY_MI2S_TX;
4082 break;
4083 case EXT_EC_REF_SLIM_1_TX:
4084 ext_ec_ref_port_id = SLIMBUS_1_TX;
4085 break;
Karthikeyan Manibfba0542018-06-20 15:20:28 -07004086 case EXT_EC_REF_SEC_TDM_TX:
4087 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
4088 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304089 case EXT_EC_REF_NONE:
4090 default:
4091 ext_ec_ref_port_id = AFE_PORT_INVALID;
4092 state = false;
4093 break;
4094 }
4095
4096 pr_debug("%s: val = %d ext_ec_ref_port_id = 0x%0x state = %d\n",
4097 __func__, msm_route_ext_ec_ref, ext_ec_ref_port_id, state);
4098
4099 if (!voc_set_ext_ec_ref_port_id(ext_ec_ref_port_id, state)) {
4100 mutex_unlock(&routing_lock);
4101 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol, mux, e,
4102 update);
4103 } else {
4104 ret = -EINVAL;
4105 mutex_unlock(&routing_lock);
4106 }
4107 return ret;
4108}
4109
4110static const char * const ext_ec_ref_rx[] = {"NONE", "PRI_MI2S_TX",
4111 "SEC_MI2S_TX", "TERT_MI2S_TX",
4112 "QUAT_MI2S_TX", "QUIN_MI2S_TX",
Karthikeyan Manibfba0542018-06-20 15:20:28 -07004113 "SLIM_1_TX", "SEC_TDM_TX"};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304114
4115static const struct soc_enum msm_route_ext_ec_ref_rx_enum[] = {
4116 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ext_ec_ref_rx), ext_ec_ref_rx),
4117};
4118
4119static const struct snd_kcontrol_new voc_ext_ec_mux =
4120 SOC_DAPM_ENUM_EXT("VOC_EXT_EC MUX Mux", msm_route_ext_ec_ref_rx_enum[0],
4121 msm_routing_ext_ec_get, msm_routing_ext_ec_put);
4122
4123
4124static const struct snd_kcontrol_new pri_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004125 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4126 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304127 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4128 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004129 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4130 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304131 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4132 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004133 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4134 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304135 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4136 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004137 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4138 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304139 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4140 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004141 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4142 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304143 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4144 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004145 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4146 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304147 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4148 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004149 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4150 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304151 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4152 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004153 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4154 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304155 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4156 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004157 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4158 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304159 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004161 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4162 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304163 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4164 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004165 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4166 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304167 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004169 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4170 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304171 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4172 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004173 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4174 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304175 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4176 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004177 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4178 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304179 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4180 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004181 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4182 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304183 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4184 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004185 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4186 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304187 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4188 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004189 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4190 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304191 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4192 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004193 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4194 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304195 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4196 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004197 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4198 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304199 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4200 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304201 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4202 MSM_BACKEND_DAI_PRI_I2S_RX,
4203 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4204 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004205 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4206 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304207 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4208 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004209 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4210 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304211 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4212 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304213};
4214
4215static const struct snd_kcontrol_new sec_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004216 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4217 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304218 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4219 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004220 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4221 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304222 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4223 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004224 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4225 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304226 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4227 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004228 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4229 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304230 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4231 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004232 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4233 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304234 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4235 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004236 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4237 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304238 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4239 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004240 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4241 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304242 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4243 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004244 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4245 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304246 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4247 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004248 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4249 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304250 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4251 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004252 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4253 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304254 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4255 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004256 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4257 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304258 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4259 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004260 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4261 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304262 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4263 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004264 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4265 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304266 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4267 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004268 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4269 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304270 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4271 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004272 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4273 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304274 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4275 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004276 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4277 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304278 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4279 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004280 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4281 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304282 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4283 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004284 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4285 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304286 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4287 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004288 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4289 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304290 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4291 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304292 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4293 MSM_BACKEND_DAI_SEC_I2S_RX,
4294 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4295 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004296 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4297 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304298 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4299 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004300 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4301 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304302 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4303 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304304};
4305
Ralf Herzc8701f72018-06-20 11:37:35 +02004306static const struct snd_kcontrol_new pri_spdif_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004307 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004308 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304309 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4310 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004311 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004312 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304313 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4314 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004315 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004316 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304317 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4318 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004319 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004320 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304321 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4322 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004323 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004324 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304325 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4326 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004327 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004328 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304329 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4330 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004331 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004332 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304333 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4334 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004335 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004336 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304337 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4338 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004339 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004340 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304341 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4342 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004343 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004344 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304345 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4346 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004347 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004348 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304349 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4350 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004351 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004352 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304353 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4354 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004355 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004356 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304357 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4358 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004359 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004360 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304361 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4362 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004363 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004364 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304365 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4366 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004367 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004368 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304369 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4370 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004371 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004372 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304373 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4374 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004375 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004376 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304377 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4378 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004379 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004380 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304381 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4382 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304383 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4384 MSM_BACKEND_DAI_PRI_SPDIF_RX,
4385 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4386 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004387 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004388 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304389 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4390 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004391 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004392 MSM_BACKEND_DAI_PRI_SPDIF_RX,
4393 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4394 msm_routing_put_audio_mixer),
4395};
4396
4397static const struct snd_kcontrol_new sec_spdif_rx_mixer_controls[] = {
4398 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4399 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4400 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4401 msm_routing_put_audio_mixer),
4402 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4403 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4404 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4405 msm_routing_put_audio_mixer),
4406 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4407 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4408 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4409 msm_routing_put_audio_mixer),
4410 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4411 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4412 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4413 msm_routing_put_audio_mixer),
4414 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4415 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4416 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4417 msm_routing_put_audio_mixer),
4418 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4419 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4420 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4421 msm_routing_put_audio_mixer),
4422 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4423 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4424 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4425 msm_routing_put_audio_mixer),
4426 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4427 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4428 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4429 msm_routing_put_audio_mixer),
4430 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4431 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4432 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4433 msm_routing_put_audio_mixer),
4434 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4435 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4436 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4437 msm_routing_put_audio_mixer),
4438 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4439 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4440 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4441 msm_routing_put_audio_mixer),
4442 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4443 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4444 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4445 msm_routing_put_audio_mixer),
4446 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4447 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4448 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4449 msm_routing_put_audio_mixer),
4450 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4451 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4452 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4453 msm_routing_put_audio_mixer),
4454 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4455 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4456 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4457 msm_routing_put_audio_mixer),
4458 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4459 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4460 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4461 msm_routing_put_audio_mixer),
4462 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4463 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4464 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4465 msm_routing_put_audio_mixer),
4466 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4467 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4468 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4469 msm_routing_put_audio_mixer),
4470 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4471 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4472 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4473 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304474 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4475 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4476 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4477 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02004478 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4479 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4480 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4481 msm_routing_put_audio_mixer),
4482 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4483 MSM_BACKEND_DAI_SEC_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304484 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4485 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304486};
4487
4488static const struct snd_kcontrol_new slimbus_2_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004489 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4490 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304491 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4492 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004493 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4494 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304495 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4496 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004497 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4498 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304499 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4500 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004501 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4502 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304503 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4504 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004505 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4506 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304507 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4508 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004509 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4510 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304511 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4512 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004513 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4514 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304515 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4516 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004517 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4518 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304519 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4520 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004521 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4522 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304523 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4524 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004525 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4526 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304527 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4528 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004529 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4530 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304531 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004533 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4534 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304535 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004537 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4538 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304539 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004541 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4542 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304543 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004545 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4546 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304547 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004549 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4550 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304551 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4552 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304553 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4554 MSM_BACKEND_DAI_SLIMBUS_2_RX,
4555 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4556 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304557};
4558
4559static const struct snd_kcontrol_new slimbus_5_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004560 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4561 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304562 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4563 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004564 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4565 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304566 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4567 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004568 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4569 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304570 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4571 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004572 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4573 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304574 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4575 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004576 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4577 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304578 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4579 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004580 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4581 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304582 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4583 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004584 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4585 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304586 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4587 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004588 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4589 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304590 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004592 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4593 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304594 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4595 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004596 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4597 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304598 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4599 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004600 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4601 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304602 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4603 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004604 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4605 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304606 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4607 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004608 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4609 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304610 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4611 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004612 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4613 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304614 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4615 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004616 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4617 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304618 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4619 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004620 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4621 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304622 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4623 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004624 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4625 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304626 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4627 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004628 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4629 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304630 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4631 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004632 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4633 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304634 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4635 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304636 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4637 MSM_BACKEND_DAI_SLIMBUS_5_RX,
4638 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4639 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004640 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4641 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304642 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4643 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004644 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4645 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304646 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4647 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304648};
4649
4650static const struct snd_kcontrol_new slimbus_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004651 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4652 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304653 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4654 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004655 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4656 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304657 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4658 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004659 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4660 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304661 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4662 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004663 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4664 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304665 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4666 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004667 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4668 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304669 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4670 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004671 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4672 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304673 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4674 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004675 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4676 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304677 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4678 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004679 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4680 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304681 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4682 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004683 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4684 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304685 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4686 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004687 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4688 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304689 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4690 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004691 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4692 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304693 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4694 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004695 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4696 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304697 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4698 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004699 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4700 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304701 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4702 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004703 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4704 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304705 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4706 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004707 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4708 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304709 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4710 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004711 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4712 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304713 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4714 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004715 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4716 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304717 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4718 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004719 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4720 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304721 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4722 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004723 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4724 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304725 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4726 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304727 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4728 MSM_BACKEND_DAI_SLIMBUS_0_RX,
4729 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4730 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004731 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4732 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304733 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4734 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004735 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4736 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304737 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4738 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304739};
4740
4741static const struct snd_kcontrol_new mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004742 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4743 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304744 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4745 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004746 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4747 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304748 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4749 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004750 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4751 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304752 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004754 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4755 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304756 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4757 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004758 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4759 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304760 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4761 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004762 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4763 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304764 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4765 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004766 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4767 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304768 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4769 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004770 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4771 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304772 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4773 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004774 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4775 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304776 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4777 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004778 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4779 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304780 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4781 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004782 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4783 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304784 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4785 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004786 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4787 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304788 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4789 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004790 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4791 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304792 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4793 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004794 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4795 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304796 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4797 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004798 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4799 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304800 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4801 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004802 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4803 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304804 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4805 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004806 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4807 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304808 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4809 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004810 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4811 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304812 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4813 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004814 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4815 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304816 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4817 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304818 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4819 MSM_BACKEND_DAI_MI2S_RX,
4820 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4821 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004822 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4823 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304824 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4825 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004826 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4827 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304828 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4829 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304830};
4831
4832static const struct snd_kcontrol_new quaternary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004833 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4834 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304835 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4836 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004837 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4838 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304839 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4840 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004841 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4842 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304843 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4844 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004845 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4846 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304847 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4848 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004849 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4850 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304851 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4852 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004853 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4854 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304855 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4856 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004857 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4858 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304859 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4860 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004861 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4862 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304863 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4864 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004865 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4866 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304867 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4868 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004869 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4870 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304871 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4872 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004873 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4874 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304875 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4876 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004877 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4878 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304879 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4880 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004881 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4882 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304883 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4884 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004885 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4886 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304887 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4888 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004889 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4890 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304891 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4892 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004893 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4894 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304895 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4896 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004897 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4898 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304899 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4900 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004901 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4902 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304903 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4904 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004905 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4906 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304907 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4908 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304909 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4910 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
4911 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4912 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004913 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4914 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304915 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4916 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004917 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4918 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304919 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4920 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304921};
4922
4923static const struct snd_kcontrol_new quinary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004924 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4925 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304926 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4927 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004928 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4929 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304930 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4931 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004932 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4933 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304934 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4935 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004936 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4937 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304938 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4939 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004940 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4941 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304942 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4943 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004944 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4945 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304946 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4947 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004948 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4949 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304950 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4951 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004952 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4953 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304954 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4955 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004956 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4957 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304958 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4959 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004960 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4961 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304962 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4963 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004964 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4965 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304966 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4967 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004968 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4969 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304970 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4971 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004972 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4973 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304974 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4975 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004976 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4977 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304978 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4979 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004980 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4981 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304982 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4983 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004984 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4985 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304986 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4987 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004988 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4989 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304990 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4991 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004992 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4993 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304994 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4995 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004996 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4997 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304998 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4999 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305000 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5001 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
5002 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5003 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005004 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5005 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305006 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5007 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005008 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5009 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305010 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5011 msm_routing_put_audio_mixer),
5012
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305013};
5014
5015static const struct snd_kcontrol_new tertiary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005016 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5017 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305018 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5019 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005020 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5021 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305022 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005024 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5025 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305026 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5027 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005028 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5029 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305030 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5031 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005032 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5033 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305034 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5035 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005036 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5037 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305038 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5039 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005040 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5041 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305042 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5043 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005044 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5045 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305046 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5047 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005048 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5049 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305050 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5051 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005052 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5053 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305054 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5055 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005056 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5057 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305058 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5059 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005060 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5061 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305062 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5063 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005064 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5065 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305066 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5067 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005068 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5069 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305070 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5071 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005072 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5073 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305074 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5075 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005076 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5077 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305078 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5079 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005080 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5081 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305082 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5083 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305084 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5085 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
5086 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5087 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005088 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5089 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305090 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5091 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005092 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5093 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305094 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5095 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305096};
5097
5098static const struct snd_kcontrol_new secondary_mi2s_rx2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005099 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5100 MSM_BACKEND_DAI_SECONDARY_MI2S_RX_SD1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305101 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5102 msm_routing_put_audio_mixer),
5103};
5104
5105static const struct snd_kcontrol_new secondary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005106 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5107 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305108 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5109 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005110 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5111 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305112 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5113 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005114 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5115 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305116 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5117 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005118 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5119 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305120 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5121 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005122 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5123 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305124 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5125 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005126 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5127 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305128 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5129 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005130 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5131 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305132 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5133 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005134 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5135 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305136 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5137 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005138 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5139 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305140 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5141 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005142 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5143 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305144 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5145 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005146 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5147 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305148 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5149 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005150 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5151 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305152 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5153 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005154 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5155 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305156 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5157 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005158 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5159 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305160 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5161 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005162 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5163 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305164 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5165 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005166 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5167 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305168 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5169 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005170 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5171 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305172 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5173 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005174 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5175 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305176 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5177 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005178 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5179 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305180 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5181 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305182 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5183 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
5184 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5185 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005186 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5187 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305188 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5189 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005190 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5191 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305192 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5193 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305194};
5195
5196static const struct snd_kcontrol_new primary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005197 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5198 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305199 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5200 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005201 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5202 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305203 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5204 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005205 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5206 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305207 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5208 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005209 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5210 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305211 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5212 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005213 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5214 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305215 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5216 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005217 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5218 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305219 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5220 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005221 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5222 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305223 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5224 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005225 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5226 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305227 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5228 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005229 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5230 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305231 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5232 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005233 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5234 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305235 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5236 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005237 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5238 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305239 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5240 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005241 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5242 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305243 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5244 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005245 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5246 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305247 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5248 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005249 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5250 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305251 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5252 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005253 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5254 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305255 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5256 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005257 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5258 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305259 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5260 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005261 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5262 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305263 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5264 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005265 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5266 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305267 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5268 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005269 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5270 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305271 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5272 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305273 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5274 MSM_BACKEND_DAI_PRI_MI2S_RX,
5275 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5276 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005277 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5278 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305279 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5280 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005281 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5282 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305283 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5284 msm_routing_put_audio_mixer),
5285
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305286};
5287
5288static const struct snd_kcontrol_new int0_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005289 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5290 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305291 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5292 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005293 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5294 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305295 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5296 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005297 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5298 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305299 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5300 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005301 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5302 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305303 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5304 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005305 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5306 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305307 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5308 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005309 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5310 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305311 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5312 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005313 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5314 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305315 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5316 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005317 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5318 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305319 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5320 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005321 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5322 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305323 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5324 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005325 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5326 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305327 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5328 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005329 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5330 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305331 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5332 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005333 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5334 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305335 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5336 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005337 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5338 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305339 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5340 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005341 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5342 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305343 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5344 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005345 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5346 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305347 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5348 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005349 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5350 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305351 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5352 msm_routing_put_audio_mixer),
5353};
5354
5355static const struct snd_kcontrol_new int4_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005356 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5357 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305358 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5359 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005360 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5361 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305362 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5363 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005364 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5365 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305366 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5367 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005368 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5369 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305370 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5371 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005372 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5373 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305374 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5375 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005376 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5377 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305378 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5379 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005380 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5381 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305382 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5383 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005384 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5385 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305386 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5387 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005388 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5389 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305390 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5391 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005392 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5393 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305394 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5395 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005396 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5397 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305398 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5399 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005400 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5401 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305402 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5403 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005404 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5405 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305406 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5407 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005408 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5409 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305410 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5411 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005412 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5413 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305414 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5415 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005416 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5417 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305418 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5419 msm_routing_put_audio_mixer),
5420};
5421
5422static const struct snd_kcontrol_new hdmi_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005423 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5424 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305425 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5426 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005427 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5428 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305429 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5430 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005431 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5432 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305433 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5434 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005435 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5436 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305437 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5438 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005439 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5440 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305441 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5442 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005443 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5444 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305445 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5446 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005447 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5448 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305449 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5450 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005451 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5452 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305453 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5454 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005455 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5456 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305457 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5458 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005459 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5460 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305461 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5462 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005463 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5464 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305465 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5466 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005467 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5468 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305469 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5470 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005471 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5472 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305473 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5474 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005475 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5476 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305477 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5478 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005479 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5480 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305481 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5482 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005483 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5484 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305485 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5486 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005487 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5488 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305489 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5490 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005491 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5492 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305493 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5494 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005495 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5496 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305497 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5498 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305499 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5500 MSM_BACKEND_DAI_HDMI_RX,
5501 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5502 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005503 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5504 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305505 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5506 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005507 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5508 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305509 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5510 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305511};
5512
5513static const struct snd_kcontrol_new display_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005514 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5515 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305516 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5517 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005518 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5519 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305520 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5521 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005522 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5523 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305524 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5525 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005526 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5527 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305528 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5529 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005530 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5531 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305532 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5533 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005534 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5535 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305536 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5537 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005538 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5539 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305540 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5541 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005542 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5543 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305544 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5545 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005546 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5547 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305548 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5549 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005550 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5551 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305552 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5553 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005554 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5555 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305556 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5557 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005558 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5559 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305560 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5561 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005562 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5563 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305564 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5565 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005566 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5567 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305568 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5569 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005570 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5571 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305572 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5573 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005574 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5575 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305576 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5577 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305578 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5579 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
5580 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5581 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305582};
5583
Karthikeyan Mani57550082018-05-03 18:43:58 -07005584static const struct snd_kcontrol_new display_port1_mixer_controls[] = {
5585 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5586 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5587 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5588 msm_routing_put_audio_mixer),
5589 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5590 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5591 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5592 msm_routing_put_audio_mixer),
5593 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5594 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5595 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5596 msm_routing_put_audio_mixer),
5597 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5598 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5599 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5600 msm_routing_put_audio_mixer),
5601 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5602 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5603 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5604 msm_routing_put_audio_mixer),
5605 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5606 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5607 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5608 msm_routing_put_audio_mixer),
5609 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5610 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5611 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5612 msm_routing_put_audio_mixer),
5613 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5614 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5615 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5616 msm_routing_put_audio_mixer),
5617 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5618 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5619 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5620 msm_routing_put_audio_mixer),
5621 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5622 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5623 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5624 msm_routing_put_audio_mixer),
5625 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5626 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5627 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5628 msm_routing_put_audio_mixer),
5629 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5630 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5631 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5632 msm_routing_put_audio_mixer),
5633 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5634 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5635 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5636 msm_routing_put_audio_mixer),
5637 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5638 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5639 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5640 msm_routing_put_audio_mixer),
5641 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5642 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5643 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5644 msm_routing_put_audio_mixer),
5645 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5646 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5647 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5648 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305649 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5650 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5651 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5652 msm_routing_put_audio_mixer),
Karthikeyan Mani57550082018-05-03 18:43:58 -07005653};
5654
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305655 /* incall music delivery mixer */
5656static const struct snd_kcontrol_new incall_music_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005657 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5658 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305659 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5660 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005661 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5662 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305663 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5664 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005665 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5666 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305667 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5668 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005669 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5670 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305671 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5672 msm_routing_put_audio_mixer),
5673};
5674
5675static const struct snd_kcontrol_new incall_music2_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005676 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5677 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305678 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5679 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005680 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5681 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305682 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5683 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005684 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5685 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305686 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5687 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005688 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5689 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305690 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5691 msm_routing_put_audio_mixer),
5692};
5693
5694static const struct snd_kcontrol_new slimbus_4_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005695 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5696 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305697 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5698 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005699 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5700 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305701 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5702 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005703 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5704 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305705 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5706 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005707 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5708 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305709 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5710 msm_routing_put_audio_mixer),
5711};
5712
5713static const struct snd_kcontrol_new slimbus_6_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005714 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5715 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305716 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5717 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005718 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5719 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305720 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5721 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005722 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5723 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305724 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5725 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005726 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5727 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305728 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5729 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005730 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5731 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305732 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5733 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005734 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5735 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305736 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5737 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005738 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5739 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305740 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5741 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005742 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5743 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305744 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5745 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005746 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5747 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305748 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5749 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005750 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5751 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305752 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005754 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5755 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305756 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5757 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005758 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5759 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305760 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5761 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005762 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5763 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305764 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5765 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005766 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5767 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305768 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5769 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005770 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5771 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305772 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5773 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005774 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5775 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305776 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5777 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305778 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5779 MSM_BACKEND_DAI_SLIMBUS_6_RX,
5780 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5781 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305782};
5783
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305784static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_mixer_controls[] = {
5785 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5786 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5787 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5788 msm_routing_put_audio_mixer),
5789 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5790 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5791 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5792 msm_routing_put_audio_mixer),
5793 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5794 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5795 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5796 msm_routing_put_audio_mixer),
5797 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5798 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5799 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5800 msm_routing_put_audio_mixer),
5801 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5802 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5803 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5804 msm_routing_put_audio_mixer),
5805 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5806 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5807 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5808 msm_routing_put_audio_mixer),
5809 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5810 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5811 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5812 msm_routing_put_audio_mixer),
5813 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5814 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5815 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5816 msm_routing_put_audio_mixer),
5817 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5818 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5819 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5820 msm_routing_put_audio_mixer),
5821 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5822 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5823 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5824 msm_routing_put_audio_mixer),
5825 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5826 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5827 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5828 msm_routing_put_audio_mixer),
5829 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5830 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5831 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5832 msm_routing_put_audio_mixer),
5833 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5834 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5835 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5836 msm_routing_put_audio_mixer),
5837 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5838 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5839 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5840 msm_routing_put_audio_mixer),
5841 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5842 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5843 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5844 msm_routing_put_audio_mixer),
5845 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5846 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5847 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5848 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305849 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5850 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5851 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5852 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305853};
5854
5855static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_mixer_controls[] = {
5856 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5857 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5858 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5859 msm_routing_put_audio_mixer),
5860 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5861 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5862 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5863 msm_routing_put_audio_mixer),
5864 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5865 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5866 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5867 msm_routing_put_audio_mixer),
5868 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5869 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5870 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5871 msm_routing_put_audio_mixer),
5872 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5873 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5874 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5875 msm_routing_put_audio_mixer),
5876 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5877 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5878 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5879 msm_routing_put_audio_mixer),
5880 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5881 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5882 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5883 msm_routing_put_audio_mixer),
5884 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5885 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5886 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5887 msm_routing_put_audio_mixer),
5888 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5889 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5890 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5891 msm_routing_put_audio_mixer),
5892 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5893 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5894 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5895 msm_routing_put_audio_mixer),
5896 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5897 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5898 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5899 msm_routing_put_audio_mixer),
5900 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5901 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5902 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5903 msm_routing_put_audio_mixer),
5904 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5905 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5906 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5907 msm_routing_put_audio_mixer),
5908 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5909 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5910 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5911 msm_routing_put_audio_mixer),
5912 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5913 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5914 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5915 msm_routing_put_audio_mixer),
5916 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5917 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5918 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5919 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305920 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5921 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5922 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5923 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305924};
5925
Aditya Bavanari1e84a932018-06-18 19:40:08 +05305926static const struct snd_kcontrol_new rx_cdc_dma_rx_0_mixer_controls[] = {
5927 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5928 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5929 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5930 msm_routing_put_audio_mixer),
5931 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5932 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5933 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5934 msm_routing_put_audio_mixer),
5935 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5936 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5937 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5938 msm_routing_put_audio_mixer),
5939 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5940 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5941 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5942 msm_routing_put_audio_mixer),
5943 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5944 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5945 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5946 msm_routing_put_audio_mixer),
5947 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5948 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5949 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5950 msm_routing_put_audio_mixer),
5951 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5952 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5953 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5954 msm_routing_put_audio_mixer),
5955 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5956 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5957 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5958 msm_routing_put_audio_mixer),
5959 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5960 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5961 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5962 msm_routing_put_audio_mixer),
5963 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5964 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5965 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5966 msm_routing_put_audio_mixer),
5967 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5968 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5969 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5970 msm_routing_put_audio_mixer),
5971 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5972 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5973 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5974 msm_routing_put_audio_mixer),
5975 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5976 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5977 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5978 msm_routing_put_audio_mixer),
5979 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5980 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5981 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5982 msm_routing_put_audio_mixer),
5983 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5984 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5985 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5986 msm_routing_put_audio_mixer),
5987 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5988 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5989 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5990 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305991 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5992 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5993 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5994 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05305995};
5996
5997static const struct snd_kcontrol_new rx_cdc_dma_rx_1_mixer_controls[] = {
5998 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5999 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6000 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6001 msm_routing_put_audio_mixer),
6002 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6003 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6004 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6005 msm_routing_put_audio_mixer),
6006 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6007 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6008 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6009 msm_routing_put_audio_mixer),
6010 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6011 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6012 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6013 msm_routing_put_audio_mixer),
6014 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6015 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6016 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6017 msm_routing_put_audio_mixer),
6018 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6019 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6020 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6021 msm_routing_put_audio_mixer),
6022 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6023 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6024 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6025 msm_routing_put_audio_mixer),
6026 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6027 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6028 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6029 msm_routing_put_audio_mixer),
6030 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6031 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6032 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6033 msm_routing_put_audio_mixer),
6034 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6035 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6036 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6037 msm_routing_put_audio_mixer),
6038 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6039 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6040 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6041 msm_routing_put_audio_mixer),
6042 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6043 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6044 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6045 msm_routing_put_audio_mixer),
6046 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6047 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6048 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6049 msm_routing_put_audio_mixer),
6050 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6051 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6052 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6053 msm_routing_put_audio_mixer),
6054 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6055 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6056 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6057 msm_routing_put_audio_mixer),
6058 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6059 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6060 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6061 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306062 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6063 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6064 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6065 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306066};
6067
6068static const struct snd_kcontrol_new rx_cdc_dma_rx_2_mixer_controls[] = {
6069 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6070 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6071 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6072 msm_routing_put_audio_mixer),
6073 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6074 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6075 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6076 msm_routing_put_audio_mixer),
6077 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6078 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6079 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6080 msm_routing_put_audio_mixer),
6081 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6082 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6083 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6084 msm_routing_put_audio_mixer),
6085 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6086 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6087 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6088 msm_routing_put_audio_mixer),
6089 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6090 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6091 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6092 msm_routing_put_audio_mixer),
6093 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6094 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6095 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6096 msm_routing_put_audio_mixer),
6097 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6098 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6099 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6100 msm_routing_put_audio_mixer),
6101 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6102 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6103 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6104 msm_routing_put_audio_mixer),
6105 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6106 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6107 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6108 msm_routing_put_audio_mixer),
6109 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6110 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6111 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6112 msm_routing_put_audio_mixer),
6113 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6114 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6115 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6116 msm_routing_put_audio_mixer),
6117 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6118 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6119 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6120 msm_routing_put_audio_mixer),
6121 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6122 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6123 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6124 msm_routing_put_audio_mixer),
6125 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6126 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6127 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6128 msm_routing_put_audio_mixer),
6129 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6130 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6131 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6132 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306133 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6134 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6135 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6136 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306137};
6138
6139static const struct snd_kcontrol_new rx_cdc_dma_rx_3_mixer_controls[] = {
6140 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6141 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6142 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6143 msm_routing_put_audio_mixer),
6144 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6145 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6146 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6147 msm_routing_put_audio_mixer),
6148 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6149 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6150 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6151 msm_routing_put_audio_mixer),
6152 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6153 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6154 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6155 msm_routing_put_audio_mixer),
6156 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6157 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6158 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6159 msm_routing_put_audio_mixer),
6160 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6161 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6162 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6163 msm_routing_put_audio_mixer),
6164 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6165 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6166 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6167 msm_routing_put_audio_mixer),
6168 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6169 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6170 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6171 msm_routing_put_audio_mixer),
6172 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6173 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6174 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6175 msm_routing_put_audio_mixer),
6176 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6177 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6178 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6179 msm_routing_put_audio_mixer),
6180 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6181 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6182 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6183 msm_routing_put_audio_mixer),
6184 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6185 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6186 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6187 msm_routing_put_audio_mixer),
6188 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6189 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6190 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6191 msm_routing_put_audio_mixer),
6192 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6193 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6194 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6195 msm_routing_put_audio_mixer),
6196 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6197 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6198 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6199 msm_routing_put_audio_mixer),
6200 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6201 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6202 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6203 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306204 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6205 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6206 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6207 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306208};
6209
6210static const struct snd_kcontrol_new rx_cdc_dma_rx_4_mixer_controls[] = {
6211 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6212 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6213 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6214 msm_routing_put_audio_mixer),
6215 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6216 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6217 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6218 msm_routing_put_audio_mixer),
6219 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6220 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6221 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6222 msm_routing_put_audio_mixer),
6223 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6224 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6225 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6226 msm_routing_put_audio_mixer),
6227 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6228 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6229 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6230 msm_routing_put_audio_mixer),
6231 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6232 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6233 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6234 msm_routing_put_audio_mixer),
6235 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6236 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6237 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6238 msm_routing_put_audio_mixer),
6239 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6240 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6241 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6242 msm_routing_put_audio_mixer),
6243 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6244 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6245 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6246 msm_routing_put_audio_mixer),
6247 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6248 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6249 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6250 msm_routing_put_audio_mixer),
6251 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6252 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6253 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6254 msm_routing_put_audio_mixer),
6255 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6256 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6257 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6258 msm_routing_put_audio_mixer),
6259 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6260 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6261 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6262 msm_routing_put_audio_mixer),
6263 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6264 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6265 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6266 msm_routing_put_audio_mixer),
6267 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6268 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6269 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6270 msm_routing_put_audio_mixer),
6271 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6272 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6273 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6274 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306275 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6276 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6277 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6278 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306279};
6280
6281static const struct snd_kcontrol_new rx_cdc_dma_rx_5_mixer_controls[] = {
6282 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6283 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6284 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6285 msm_routing_put_audio_mixer),
6286 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6287 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6288 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6289 msm_routing_put_audio_mixer),
6290 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6291 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6292 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6293 msm_routing_put_audio_mixer),
6294 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6295 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6296 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6297 msm_routing_put_audio_mixer),
6298 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6299 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6300 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6301 msm_routing_put_audio_mixer),
6302 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6303 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6304 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6305 msm_routing_put_audio_mixer),
6306 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6307 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6308 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6309 msm_routing_put_audio_mixer),
6310 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6311 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6312 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6313 msm_routing_put_audio_mixer),
6314 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6315 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6316 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6317 msm_routing_put_audio_mixer),
6318 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6319 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6320 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6321 msm_routing_put_audio_mixer),
6322 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6323 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6324 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6325 msm_routing_put_audio_mixer),
6326 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6327 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6328 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6329 msm_routing_put_audio_mixer),
6330 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6331 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6332 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6333 msm_routing_put_audio_mixer),
6334 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6335 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6336 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6337 msm_routing_put_audio_mixer),
6338 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6339 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6340 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6341 msm_routing_put_audio_mixer),
6342 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6343 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6344 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6345 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306346 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6347 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6348 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6349 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306350};
6351
6352static const struct snd_kcontrol_new rx_cdc_dma_rx_6_mixer_controls[] = {
6353 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6354 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6355 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6356 msm_routing_put_audio_mixer),
6357 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6358 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6359 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6360 msm_routing_put_audio_mixer),
6361 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6362 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6363 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6364 msm_routing_put_audio_mixer),
6365 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6366 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6367 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6368 msm_routing_put_audio_mixer),
6369 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6370 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6371 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6372 msm_routing_put_audio_mixer),
6373 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6374 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6375 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6376 msm_routing_put_audio_mixer),
6377 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6378 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6379 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6380 msm_routing_put_audio_mixer),
6381 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6382 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6383 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6384 msm_routing_put_audio_mixer),
6385 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6386 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6387 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6388 msm_routing_put_audio_mixer),
6389 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6390 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6391 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6392 msm_routing_put_audio_mixer),
6393 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6394 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6395 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6396 msm_routing_put_audio_mixer),
6397 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6398 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6399 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6400 msm_routing_put_audio_mixer),
6401 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6402 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6403 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6404 msm_routing_put_audio_mixer),
6405 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6406 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6407 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6408 msm_routing_put_audio_mixer),
6409 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6410 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6411 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6412 msm_routing_put_audio_mixer),
6413 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6414 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6415 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6416 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306417 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6418 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6419 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6420 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306421};
6422
6423static const struct snd_kcontrol_new rx_cdc_dma_rx_7_mixer_controls[] = {
6424 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6425 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6426 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6427 msm_routing_put_audio_mixer),
6428 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6429 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6430 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6431 msm_routing_put_audio_mixer),
6432 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6433 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6434 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6435 msm_routing_put_audio_mixer),
6436 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6437 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6438 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6439 msm_routing_put_audio_mixer),
6440 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6441 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6442 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6443 msm_routing_put_audio_mixer),
6444 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6445 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6446 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6447 msm_routing_put_audio_mixer),
6448 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6449 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6450 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6451 msm_routing_put_audio_mixer),
6452 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6453 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6454 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6455 msm_routing_put_audio_mixer),
6456 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6457 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6458 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6459 msm_routing_put_audio_mixer),
6460 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6461 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6462 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6463 msm_routing_put_audio_mixer),
6464 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6465 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6466 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6467 msm_routing_put_audio_mixer),
6468 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6469 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6470 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6471 msm_routing_put_audio_mixer),
6472 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6473 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6474 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6475 msm_routing_put_audio_mixer),
6476 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6477 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6478 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6479 msm_routing_put_audio_mixer),
6480 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6481 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6482 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6483 msm_routing_put_audio_mixer),
6484 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6485 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6486 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6487 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306488 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6489 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6490 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6491 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306492};
6493
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306494static const struct snd_kcontrol_new slimbus_7_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006495 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6496 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306497 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6498 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006499 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6500 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306501 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6502 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006503 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6504 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306505 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6506 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006507 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6508 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306509 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6510 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006511 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6512 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306513 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6514 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006515 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6516 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306517 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6518 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006519 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6520 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306521 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6522 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006523 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6524 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306525 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6526 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006527 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6528 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306529 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6530 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006531 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6532 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306533 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6534 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006535 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6536 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306537 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6538 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006539 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6540 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306541 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6542 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006543 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6544 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306545 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6546 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006547 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6548 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306549 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6550 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006551 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6552 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306553 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6554 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006555 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6556 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306557 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6558 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306559 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6560 MSM_BACKEND_DAI_SLIMBUS_7_RX,
6561 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6562 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306563};
6564
6565static const struct snd_kcontrol_new usb_audio_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006566 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6567 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306568 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6569 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006570 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6571 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306572 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6573 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006574 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6575 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306576 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6577 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006578 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6579 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306580 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6581 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006582 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6583 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306584 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6585 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006586 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6587 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306588 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6589 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006590 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6591 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306592 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6593 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006594 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6595 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306596 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6597 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006598 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6599 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306600 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6601 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006602 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6603 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306604 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6605 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006606 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6607 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306608 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6609 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006610 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6611 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306612 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6613 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006614 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6615 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306616 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6617 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006618 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6619 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306620 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6621 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006622 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6623 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306624 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6625 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006626 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6627 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306628 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6629 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306630 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6631 MSM_BACKEND_DAI_USB_RX,
6632 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6633 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306634};
6635
6636static const struct snd_kcontrol_new int_bt_sco_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006637 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6638 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306639 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6640 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006641 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6642 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306643 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6644 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006645 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6646 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306647 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6648 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006649 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6650 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306651 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6652 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006653 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6654 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306655 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6656 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006657 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6658 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306659 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6660 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006661 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6662 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306663 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6664 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006665 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6666 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306667 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6668 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006669 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6670 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306671 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6672 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006673 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6674 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306675 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6676 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006677 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6678 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306679 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6680 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006681 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6682 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306683 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6684 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006685 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6686 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306687 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6688 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006689 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6690 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306691 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6692 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006693 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6694 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306695 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6696 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006697 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6698 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306699 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6700 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006701 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6702 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306703 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6704 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006705 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6706 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306707 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6708 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006709 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6710 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306711 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6712 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306713 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6714 MSM_BACKEND_DAI_INT_BT_SCO_RX,
6715 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6716 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006717 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6718 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306719 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6720 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006721 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6722 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306723 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6724 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306725};
6726
6727static const struct snd_kcontrol_new int_bt_a2dp_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006728 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6729 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306730 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6731 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006732 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6733 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306734 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6735 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006736 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6737 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306738 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6739 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006740 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6741 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306742 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6743 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006744 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6745 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306746 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6747 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006748 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6749 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306750 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6751 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006752 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6753 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306754 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6755 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006756 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6757 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306758 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6759 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006760 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6761 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306762 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6763 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006764 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6765 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306766 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6767 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006768 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6769 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306770 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6771 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006772 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6773 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306774 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6775 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006776 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6777 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306778 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6779 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006780 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6781 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306782 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6783 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006784 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6785 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306786 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6787 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006788 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6789 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306790 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6791 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306792 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6793 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
6794 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6795 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306796};
6797
6798static const struct snd_kcontrol_new int_fm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006799 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6800 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306801 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6802 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006803 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6804 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306805 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6806 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006807 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6808 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306809 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6810 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006811 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6812 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306813 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6814 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006815 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6816 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306817 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6818 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006819 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6820 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306821 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6822 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006823 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6824 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306825 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6826 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006827 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6828 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306829 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6830 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006831 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6832 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306833 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6834 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006835 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6836 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306837 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6838 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006839 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6840 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306841 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6842 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006843 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6844 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306845 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6846 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006847 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6848 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306849 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6850 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006851 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6852 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306853 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6854 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006855 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6856 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306857 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6858 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006859 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6860 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306861 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6862 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006863 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6864 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306865 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6866 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006867 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6868 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306869 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6870 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006871 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6872 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306873 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6874 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306875 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6876 MSM_BACKEND_DAI_INT_FM_RX,
6877 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6878 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006879 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6880 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306881 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6882 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006883 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6884 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306885 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6886 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306887};
6888
6889static const struct snd_kcontrol_new afe_pcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006890 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6891 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306892 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6893 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006894 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6895 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306896 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6897 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006898 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6899 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306900 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6901 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006902 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6903 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306904 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6905 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006906 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6907 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306908 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6909 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006910 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6911 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306912 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6913 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006914 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6915 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306916 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6917 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006918 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6919 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306920 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6921 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006922 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6923 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306924 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6925 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006926 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6927 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306928 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6929 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006930 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6931 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306932 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6933 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006934 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6935 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306936 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6937 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006938 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6939 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306940 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6941 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006942 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6943 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306944 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6945 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006946 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6947 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306948 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6949 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006950 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6951 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306952 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6953 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006954 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6955 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306956 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6957 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006958 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6959 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306960 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6961 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006962 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6963 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306964 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6965 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306966 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6967 MSM_BACKEND_DAI_AFE_PCM_RX,
6968 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6969 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006970 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6971 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306972 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6973 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006974 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6975 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306976 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6977 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306978};
6979
6980static const struct snd_kcontrol_new auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006981 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6982 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306983 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6984 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006985 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6986 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306987 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6988 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006989 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6990 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306991 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6992 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006993 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6994 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306995 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6996 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006997 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6998 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306999 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7000 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007001 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7002 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307003 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7004 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007005 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7006 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307007 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7008 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007009 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7010 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307011 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7012 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007013 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7014 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307015 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7016 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007017 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7018 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307019 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7020 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007021 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7022 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307023 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7024 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007025 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7026 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307027 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7028 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007029 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7030 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307031 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7032 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007033 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7034 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307035 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7036 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007037 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7038 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307039 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7040 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007041 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7042 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307043 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7044 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007045 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7046 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307047 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7048 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007049 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7050 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307051 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7052 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007053 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7054 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307055 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7056 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007057 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7058 MSM_BACKEND_DAI_AUXPCM_RX,
7059 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7060 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307061 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7062 MSM_BACKEND_DAI_AUXPCM_RX,
7063 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7064 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007065 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7066 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307067 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7068 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007069 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7070 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307071 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7072 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307073};
7074
7075static const struct snd_kcontrol_new sec_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007076 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7077 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307078 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7079 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007080 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7081 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307082 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7083 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007084 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7085 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307086 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7087 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007088 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7089 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307090 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7091 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007092 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7093 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307094 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7095 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007096 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7097 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307098 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7099 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007100 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7101 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307102 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7103 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007104 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7105 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307106 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7107 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007108 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7109 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307110 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7111 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007112 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7113 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307114 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7115 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007116 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7117 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307118 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7119 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007120 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7121 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307122 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7123 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007124 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7125 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307126 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7127 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007128 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7129 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307130 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7131 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007132 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7133 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307134 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7135 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007136 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7137 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307138 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7139 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007140 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7141 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307142 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7143 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007144 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7145 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307146 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7147 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007148 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7149 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307150 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7151 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007152 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7153 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
7154 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7155 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307156 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7157 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
7158 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7159 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007160 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7161 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307162 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7163 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007164 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7165 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307166 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7167 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307168};
7169
7170static const struct snd_kcontrol_new tert_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007171 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7172 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307173 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7174 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007175 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7176 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307177 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7178 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007179 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7180 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307181 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7182 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007183 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7184 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307185 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7186 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007187 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7188 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307189 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7190 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007191 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7192 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307193 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7194 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007195 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7196 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307197 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7198 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007199 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7200 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307201 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7202 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007203 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7204 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307205 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7206 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007207 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7208 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307209 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7210 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007211 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7212 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307213 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7214 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007215 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7216 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307217 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7218 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007219 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7220 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307221 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7222 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007223 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7224 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307225 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7226 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007227 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7228 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307229 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7230 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007231 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7232 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307233 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7234 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307235 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7236 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
7237 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7238 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307239};
7240
7241static const struct snd_kcontrol_new quat_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007242 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7243 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307244 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7245 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007246 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7247 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307248 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7249 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007250 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7251 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307252 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7253 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007254 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7255 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307256 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7257 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007258 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7259 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307260 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7261 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007262 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7263 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307264 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7265 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007266 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7267 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307268 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7269 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007270 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7271 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307272 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7273 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007274 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7275 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307276 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7277 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007278 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7279 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307280 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7281 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007282 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7283 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307284 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7285 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007286 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7287 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307288 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7289 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007290 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7291 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307292 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7293 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007294 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7295 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307296 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7297 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007298 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7299 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307300 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7301 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007302 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7303 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307304 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7305 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307306 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7307 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
7308 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7309 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307310};
7311
Rohit Kumara5077932017-09-10 22:05:05 +05307312static const struct snd_kcontrol_new quin_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007313 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7314 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307315 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7316 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007317 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7318 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307319 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7320 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007321 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7322 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307323 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7324 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007325 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7326 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307327 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7328 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007329 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7330 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307331 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7332 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007333 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7334 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307335 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7336 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007337 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7338 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307339 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7340 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007341 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7342 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307343 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7344 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007345 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7346 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307347 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7348 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007349 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7350 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307351 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7352 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007353 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7354 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307355 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7356 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007357 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7358 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307359 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7360 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007361 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7362 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307363 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7364 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007365 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7366 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307367 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7368 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007369 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7370 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307371 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7372 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007373 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7374 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307375 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7376 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307377 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7378 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
7379 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7380 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05307381};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307382static const struct snd_kcontrol_new pri_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007383 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7384 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307385 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7386 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007387 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7388 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307389 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7390 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007391 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7392 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307393 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7394 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007395 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7396 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307397 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7398 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007399 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7400 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307401 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7402 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007403 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7404 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307405 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7406 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007407 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7408 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307409 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7410 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007411 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7412 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307413 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7414 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007415 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7416 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307417 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7418 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007419 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7420 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307421 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7422 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007423 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7424 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307425 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7426 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007427 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7428 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307429 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7430 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007431 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7432 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307433 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7434 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007435 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7436 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307437 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7438 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007439 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7440 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307441 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7442 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007443 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7444 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307445 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7446 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007447 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7448 MSM_BACKEND_DAI_PRI_TDM_RX_0,
7449 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7450 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307451};
7452
7453static const struct snd_kcontrol_new pri_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007454 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7455 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307456 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7457 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007458 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7459 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307460 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7461 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007462 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7463 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307464 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7465 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007466 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7467 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307468 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7469 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007470 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7471 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307472 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7473 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007474 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7475 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307476 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7477 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007478 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7479 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307480 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7481 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007482 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7483 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307484 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7485 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007486 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7487 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307488 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7489 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007490 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7491 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307492 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7493 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007494 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7495 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307496 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7497 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007498 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7499 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307500 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7501 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007502 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7503 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307504 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7505 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007506 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7507 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307508 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7509 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007510 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7511 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307512 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7513 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007514 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7515 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307516 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7517 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007518 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7519 MSM_BACKEND_DAI_PRI_TDM_RX_1,
7520 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7521 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307522};
7523
7524static const struct snd_kcontrol_new pri_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007525 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7526 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307527 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7528 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007529 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7530 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307531 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007533 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7534 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307535 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007537 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7538 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307539 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007541 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7542 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307543 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007545 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7546 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307547 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007549 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7550 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307551 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007553 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7554 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307555 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7556 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007557 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7558 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307559 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7560 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007561 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7562 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307563 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7564 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007565 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7566 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307567 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7568 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007569 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7570 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307571 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7572 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007573 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7574 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307575 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7576 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007577 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7578 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307579 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7580 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007581 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7582 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307583 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7584 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007585 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7586 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307587 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7588 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007589 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7590 MSM_BACKEND_DAI_PRI_TDM_RX_2,
7591 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7592 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307593};
7594
7595static const struct snd_kcontrol_new pri_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007596 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7597 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307598 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7599 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007600 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7601 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307602 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7603 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007604 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7605 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307606 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7607 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007608 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7609 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307610 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7611 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007612 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7613 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307614 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7615 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007616 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7617 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307618 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7619 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007620 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7621 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307622 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7623 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007624 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7625 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307626 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7627 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007628 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7629 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307630 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7631 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007632 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7633 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307634 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7635 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007636 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7637 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307638 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7639 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007640 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7641 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307642 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7643 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007644 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7645 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307646 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7647 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007648 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7649 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307650 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7651 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007652 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7653 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307654 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7655 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007656 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7657 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307658 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7659 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007660 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7661 MSM_BACKEND_DAI_PRI_TDM_RX_3,
7662 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7663 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307664};
7665
7666static const struct snd_kcontrol_new pri_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007667 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7668 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307669 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7670 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007671 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7672 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307673 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7674 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007675 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7676 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307677 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7678 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007679 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7680 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307681 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7682 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007683 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7684 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307685 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7686 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007687 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7688 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307689 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7690 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007691 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7692 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307693 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7694 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007695 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7696 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307697 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7698 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007699 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7700 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307701 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7702 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007703 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7704 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307705 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7706 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007707 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7708 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307709 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7710 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007711 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7712 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307713 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7714 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007715 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7716 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307717 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7718 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007719 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7720 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307721 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7722 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007723 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7724 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307725 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7726 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007727 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7728 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307729 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7730 msm_routing_put_audio_mixer),
7731};
7732
7733static const struct snd_kcontrol_new sec_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007734 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7735 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307736 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7737 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007738 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7739 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307740 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7741 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007742 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7743 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307744 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7745 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007746 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7747 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307748 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7749 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007750 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7751 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307752 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007754 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7755 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307756 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7757 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007758 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7759 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307760 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7761 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007762 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7763 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307764 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7765 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007766 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7767 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307768 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7769 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007770 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7771 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307772 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7773 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007774 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7775 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307776 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7777 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007778 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7779 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307780 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7781 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007782 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7783 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307784 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7785 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007786 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7787 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307788 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7789 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007790 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7791 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307792 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7793 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007794 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7795 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307796 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7797 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007798 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7799 MSM_BACKEND_DAI_SEC_TDM_RX_0,
7800 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7801 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307802};
7803
7804static const struct snd_kcontrol_new sec_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007805 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7806 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307807 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7808 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007809 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7810 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307811 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7812 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007813 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7814 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307815 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7816 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007817 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7818 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307819 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7820 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007821 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7822 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307823 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7824 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007825 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7826 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307827 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7828 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007829 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7830 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307831 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7832 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007833 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7834 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307835 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7836 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007837 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7838 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307839 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7840 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007841 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7842 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307843 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7844 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007845 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7846 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307847 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7848 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007849 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7850 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307851 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7852 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007853 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7854 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307855 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7856 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007857 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7858 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307859 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7860 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007861 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7862 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307863 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7864 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007865 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7866 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307867 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7868 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007869 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7870 MSM_BACKEND_DAI_SEC_TDM_RX_1,
7871 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7872 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307873};
7874
7875static const struct snd_kcontrol_new sec_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007876 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7877 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307878 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7879 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007880 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7881 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307882 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7883 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007884 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7885 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307886 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7887 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007888 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7889 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307890 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7891 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007892 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7893 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307894 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7895 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007896 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7897 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307898 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7899 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007900 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7901 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307902 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7903 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007904 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7905 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307906 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7907 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007908 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7909 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307910 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7911 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007912 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7913 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307914 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7915 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007916 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7917 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307918 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7919 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007920 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7921 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307922 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7923 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007924 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7925 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307926 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7927 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007928 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7929 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307930 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7931 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007932 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7933 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307934 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7935 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007936 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7937 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307938 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7939 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007940 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7941 MSM_BACKEND_DAI_SEC_TDM_RX_2,
7942 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7943 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307944};
7945
7946static const struct snd_kcontrol_new sec_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007947 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7948 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307949 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7950 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007951 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7952 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307953 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7954 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007955 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7956 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307957 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7958 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007959 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7960 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307961 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7962 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007963 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7964 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307965 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7966 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007967 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7968 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307969 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7970 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007971 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7972 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307973 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7974 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007975 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7976 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307977 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7978 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007979 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7980 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307981 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7982 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007983 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7984 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307985 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7986 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007987 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7988 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307989 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7990 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007991 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7992 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307993 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7994 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007995 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7996 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307997 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7998 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007999 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8000 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308001 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8002 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008003 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8004 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308005 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8006 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008007 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8008 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308009 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8010 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008011 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8012 MSM_BACKEND_DAI_SEC_TDM_RX_3,
8013 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8014 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308015};
8016
8017static const struct snd_kcontrol_new sec_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008018 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8019 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308020 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8021 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008022 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8023 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308024 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8025 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008026 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8027 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308028 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8029 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008030 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8031 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308032 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8033 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008034 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8035 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308036 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8037 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008038 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8039 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308040 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8041 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008042 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8043 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308044 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8045 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008046 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8047 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308048 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8049 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008050 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8051 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308052 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8053 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008054 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8055 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308056 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8057 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008058 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8059 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308060 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8061 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008062 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8063 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308064 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8065 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008066 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8067 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308068 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8069 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008070 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8071 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308072 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8073 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008074 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8075 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308076 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8077 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008078 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8079 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308080 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8081 msm_routing_put_audio_mixer),
8082};
8083
8084static const struct snd_kcontrol_new tert_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008085 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8086 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308087 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8088 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008089 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8090 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308091 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8092 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008093 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8094 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308095 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8096 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008097 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8098 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308099 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8100 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008101 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8102 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308103 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8104 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008105 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8106 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308107 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8108 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008109 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8110 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308111 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8112 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008113 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8114 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308115 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8116 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008117 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8118 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308119 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8120 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008121 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8122 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308123 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8124 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008125 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8126 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308127 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8128 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008129 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8130 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308131 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8132 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008133 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8134 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308135 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8136 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008137 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8138 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308139 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8140 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008141 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8142 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308143 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8144 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008145 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8146 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308147 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8148 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008149 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8150 MSM_BACKEND_DAI_TERT_TDM_RX_0,
8151 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8152 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308153};
8154
8155static const struct snd_kcontrol_new tert_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008156 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8157 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308158 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8159 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008160 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8161 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308162 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8163 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008164 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8165 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308166 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8167 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008168 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8169 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308170 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8171 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008172 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8173 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308174 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8175 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008176 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8177 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308178 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8179 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008180 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8181 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308182 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8183 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008184 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8185 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308186 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8187 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008188 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8189 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308190 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8191 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008192 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8193 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308194 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8195 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008196 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8197 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308198 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8199 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008200 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8201 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308202 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8203 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008204 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8205 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308206 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8207 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008208 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8209 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308210 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8211 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008212 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8213 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308214 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8215 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008216 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8217 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308218 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8219 msm_routing_put_audio_mixer),
8220};
8221
8222static const struct snd_kcontrol_new tert_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008223 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8224 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308225 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8226 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008227 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8228 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308229 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8230 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008231 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8232 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308233 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8234 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008235 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8236 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308237 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8238 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008239 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8240 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308241 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8242 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008243 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8244 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308245 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8246 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008247 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8248 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308249 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8250 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008251 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8252 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308253 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8254 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008255 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8256 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308257 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8258 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008259 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8260 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308261 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8262 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008263 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8264 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308265 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8266 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008267 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8268 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308269 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8270 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008271 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8272 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308273 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8274 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008275 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8276 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308277 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8278 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008279 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8280 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308281 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8282 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008283 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8284 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308285 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8286 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008287 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8288 MSM_BACKEND_DAI_TERT_TDM_RX_1,
8289 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8290 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308291};
8292
8293static const struct snd_kcontrol_new tert_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008294 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8295 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308296 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8297 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008298 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8299 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308300 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8301 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008302 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8303 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308304 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8305 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008306 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8307 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308308 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8309 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008310 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8311 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308312 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8313 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008314 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8315 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308316 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8317 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008318 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8319 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308320 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8321 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008322 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8323 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308324 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8325 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008326 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8327 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308328 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8329 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008330 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8331 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308332 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8333 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008334 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8335 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308336 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8337 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008338 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8339 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308340 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8341 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008342 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8343 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308344 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8345 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008346 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8347 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308348 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8349 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008350 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8351 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308352 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8353 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008354 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8355 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308356 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8357 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008358 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8359 MSM_BACKEND_DAI_TERT_TDM_RX_2,
8360 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8361 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308362};
8363
8364static const struct snd_kcontrol_new tert_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008365 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8366 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308367 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8368 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008369 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8370 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308371 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8372 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008373 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8374 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308375 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8376 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008377 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8378 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308379 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8380 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008381 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8382 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308383 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8384 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008385 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8386 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308387 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8388 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008389 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8390 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308391 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8392 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008393 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8394 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308395 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8396 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008397 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8398 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308399 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8400 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008401 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8402 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308403 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8404 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008405 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8406 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308407 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8408 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008409 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8410 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308411 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8412 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008413 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8414 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308415 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8416 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008417 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8418 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308419 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8420 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008421 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8422 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308423 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8424 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008425 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8426 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308427 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8428 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008429 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8430 MSM_BACKEND_DAI_TERT_TDM_RX_3,
8431 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8432 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308433};
8434
8435static const struct snd_kcontrol_new tert_tdm_rx_4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008436 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8437 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308438 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8439 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008440 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8441 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308442 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8443 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008444 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8445 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308446 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8447 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008448 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8449 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308450 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8451 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008452 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8453 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308454 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8455 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008456 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8457 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308458 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8459 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008460 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8461 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308462 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8463 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008464 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8465 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308466 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8467 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008468 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8469 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308470 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8471 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008472 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8473 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308474 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8475 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008476 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8477 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308478 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8479 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008480 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8481 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308482 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8483 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008484 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8485 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308486 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8487 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008488 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8489 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308490 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8491 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008492 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8493 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308494 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8495 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008496 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8497 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308498 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8499 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008500 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8501 MSM_BACKEND_DAI_TERT_TDM_RX_4,
8502 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8503 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308504};
8505
8506static const struct snd_kcontrol_new quat_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008507 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8508 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308509 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8510 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008511 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8512 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308513 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8514 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008515 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8516 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308517 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8518 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008519 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8520 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308521 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8522 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008523 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8524 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308525 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8526 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008527 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8528 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308529 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8530 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008531 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8532 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308533 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8534 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008535 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8536 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308537 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8538 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008539 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8540 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308541 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8542 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008543 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8544 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308545 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8546 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008547 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8548 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308549 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8550 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008551 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8552 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308553 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8554 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008555 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8556 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308557 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8558 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008559 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8560 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308561 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8562 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008563 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8564 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308565 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8566 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008567 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8568 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308569 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8570 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008571 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8572 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308573 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8574 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008575 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8576 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
8577 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8578 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308579};
8580
8581static const struct snd_kcontrol_new quat_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008582 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8583 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308584 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8585 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008586 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8587 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308588 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8589 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008590 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8591 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308592 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8593 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008594 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8595 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308596 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8597 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008598 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8599 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308600 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8601 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008602 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8603 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308604 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8605 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008606 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8607 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308608 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8609 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008610 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8611 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308612 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8613 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008614 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8615 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308616 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8617 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008618 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8619 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308620 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8621 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008622 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8623 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308624 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8625 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008626 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8627 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308628 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8629 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008630 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8631 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308632 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8633 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008634 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8635 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308636 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8637 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008638 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8639 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308640 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8641 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008642 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8643 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308644 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8645 msm_routing_put_audio_mixer),
8646};
8647
8648static const struct snd_kcontrol_new quat_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008649 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8650 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308651 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8652 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008653 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8654 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308655 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8656 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008657 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8658 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308659 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8660 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008661 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8662 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308663 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8664 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008665 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8666 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308667 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8668 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008669 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8670 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308671 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8672 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008673 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8674 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308675 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8676 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008677 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8678 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308679 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8680 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008681 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8682 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308683 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8684 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008685 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8686 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308687 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8688 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008689 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8690 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308691 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8692 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008693 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8694 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308695 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8696 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008697 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8698 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308699 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8700 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008701 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8702 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308703 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8704 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008705 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8706 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308707 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8708 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008709 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8710 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308711 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8712 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008713 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8714 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308715 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8716 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008717 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8718 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
8719 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8720 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308721};
8722
8723static const struct snd_kcontrol_new quat_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008724 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8725 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308726 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8727 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008728 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8729 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308730 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8731 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008732 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8733 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308734 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8735 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008736 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8737 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308738 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8739 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008740 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8741 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308742 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8743 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008744 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8745 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308746 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8747 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008748 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8749 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308750 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8751 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008752 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8753 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308754 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8755 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008756 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8757 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308758 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8759 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008760 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8761 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308762 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8763 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008764 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8765 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308766 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8767 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008768 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8769 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308770 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8771 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008772 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8773 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308774 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8775 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008776 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8777 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308778 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8779 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008780 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8781 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308782 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8783 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008784 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8785 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308786 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8787 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008788 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8789 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308790 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8791 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008792 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8793 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
8794 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8795 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308796};
8797
8798static const struct snd_kcontrol_new quat_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008799 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8800 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308801 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8802 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008803 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8804 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308805 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8806 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008807 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8808 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308809 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8810 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008811 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8812 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308813 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8814 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008815 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8816 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308817 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8818 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008819 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8820 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308821 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8822 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008823 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8824 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308825 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8826 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008827 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8828 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308829 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8830 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008831 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8832 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308833 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8834 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008835 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8836 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308837 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8838 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008839 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8840 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308841 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8842 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008843 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8844 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308845 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8846 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008847 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8848 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308849 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8850 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008851 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8852 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308853 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8854 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008855 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8856 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308857 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8858 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008859 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8860 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308861 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8862 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008863 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8864 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308865 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8866 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008867 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8868 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
8869 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8870 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308871};
8872
Rohit Kumara5077932017-09-10 22:05:05 +05308873static const struct snd_kcontrol_new quin_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008874 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8875 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308876 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8877 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008878 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8879 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308880 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8881 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008882 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8883 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308884 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8885 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008886 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8887 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308888 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8889 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008890 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8891 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308892 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8893 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008894 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8895 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308896 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8897 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008898 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8899 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308900 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8901 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008902 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8903 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308904 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8905 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008906 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8907 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308908 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8909 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008910 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8911 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308912 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8913 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008914 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8915 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308916 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8917 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008918 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8919 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308920 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8921 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008922 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8923 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308924 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8925 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008926 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8927 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308928 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8929 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008930 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8931 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308932 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8933 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008934 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8935 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308936 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8937 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008938 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8939 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308940 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8941 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008942 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8943 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
8944 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8945 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05308946};
8947
8948static const struct snd_kcontrol_new quin_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008949 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8950 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308951 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8952 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008953 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8954 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308955 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8956 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008957 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8958 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308959 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8960 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008961 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8962 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308963 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8964 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008965 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8966 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308967 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8968 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008969 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8970 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308971 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8972 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008973 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8974 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308975 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8976 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008977 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8978 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308979 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8980 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008981 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8982 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308983 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8984 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008985 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8986 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308987 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8988 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008989 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8990 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308991 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8992 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008993 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8994 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308995 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8996 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008997 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8998 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308999 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9000 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009001 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9002 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309003 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9004 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009005 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9006 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309007 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9008 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009009 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9010 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309011 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9012 msm_routing_put_audio_mixer),
9013};
9014
9015static const struct snd_kcontrol_new quin_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009016 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9017 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309018 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9019 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009020 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9021 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309022 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009024 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9025 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309026 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9027 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009028 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9029 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309030 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9031 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009032 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9033 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309034 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9035 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009036 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9037 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309038 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9039 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009040 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9041 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309042 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9043 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009044 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9045 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309046 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9047 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009048 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9049 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309050 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9051 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009052 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9053 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309054 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9055 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009056 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9057 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309058 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9059 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009060 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9061 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309062 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9063 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009064 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9065 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309066 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9067 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009068 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9069 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309070 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9071 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009072 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9073 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309074 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9075 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009076 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9077 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309078 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9079 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009080 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9081 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309082 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9083 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009084 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9085 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
9086 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9087 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309088};
9089
9090static const struct snd_kcontrol_new quin_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009091 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9092 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309093 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9094 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009095 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9096 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309097 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9098 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009099 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9100 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309101 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9102 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009103 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9104 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309105 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9106 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009107 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9108 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309109 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9110 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009111 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9112 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309113 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9114 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009115 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9116 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309117 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9118 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009119 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9120 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309121 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9122 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009123 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9124 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309125 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9126 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009127 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9128 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309129 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9130 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009131 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9132 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309133 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9134 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009135 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9136 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309137 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9138 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009139 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9140 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309141 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9142 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009143 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9144 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309145 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9146 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009147 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9148 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309149 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9150 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009151 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9152 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309153 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9154 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009155 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9156 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309157 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9158 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009159 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9160 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
9161 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9162 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309163};
9164
9165static const struct snd_kcontrol_new quin_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009166 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9167 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309168 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9169 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009170 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9171 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309172 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9173 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009174 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9175 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309176 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9177 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009178 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9179 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309180 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9181 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009182 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9183 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309184 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9185 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009186 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9187 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309188 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9189 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009190 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9191 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309192 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9193 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009194 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9195 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309196 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9197 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009198 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9199 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309200 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9201 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009202 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9203 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309204 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9205 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009206 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9207 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309208 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9209 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009210 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9211 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309212 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9213 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009214 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9215 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309216 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9217 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009218 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9219 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309220 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9221 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009222 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9223 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309224 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9225 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009226 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9227 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309228 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9229 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009230 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9231 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309232 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9233 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009234 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9235 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
9236 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9237 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309238};
9239
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309240static const struct snd_kcontrol_new mmul1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009241 SOC_DOUBLE_EXT("PRI_TX", SND_SOC_NOPM,
9242 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309243 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9244 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009245 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9246 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309247 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9248 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009249 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9250 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309251 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9252 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009253 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9254 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309255 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9256 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009257 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9258 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309259 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9260 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009261 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9262 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309263 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9264 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009265 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9266 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309267 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9268 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009269 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9270 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309271 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9272 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009273 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9274 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309275 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9276 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009277 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
9278 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309279 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9280 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009281 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
9282 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309283 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9284 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009285 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
9286 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309287 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9288 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009289 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
9290 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309291 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9292 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009293 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
9294 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05309295 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9296 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009297 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9298 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309299 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9300 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009301 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9302 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309303 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9304 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009305 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9306 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309307 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9308 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009309 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9310 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309311 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9312 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009313 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9314 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309315 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9316 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009317 SOC_DOUBLE_EXT("SLIM_4_TX", SND_SOC_NOPM,
9318 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309319 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9320 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009321 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9322 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309323 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9324 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009325 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
9326 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309327 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9328 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009329 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9330 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309331 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9332 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009333 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9334 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309335 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9336 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009337 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9338 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309339 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9340 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009341 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9342 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309343 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9344 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009345 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9346 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309347 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9348 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009349 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9350 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309351 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9352 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009353 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9354 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309355 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9356 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009357 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9358 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309359 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9360 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009361 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9362 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309363 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9364 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009365 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9366 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309367 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9368 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009369 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9370 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309371 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9372 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009373 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9374 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309375 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9376 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009377 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9378 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309379 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9380 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009381 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9382 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309383 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9384 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009385 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9386 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309387 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9388 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009389 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9390 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309391 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9392 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009393 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9394 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309395 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9396 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009397 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9398 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309399 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9400 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009401 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9402 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309403 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9404 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009405 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9406 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309407 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9408 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009409 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
9410 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309411 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9412 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009413 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
9414 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309415 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9416 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009417 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9418 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309419 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9420 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309421 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9422 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9423 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9424 msm_routing_put_audio_mixer),
9425 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9426 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9427 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9428 msm_routing_put_audio_mixer),
9429 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9430 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9431 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9432 msm_routing_put_audio_mixer),
9433 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9434 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9435 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9436 msm_routing_put_audio_mixer),
9437 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9438 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9439 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9440 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309441 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9442 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9443 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9444 msm_routing_put_audio_mixer),
9445 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9446 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9447 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9448 msm_routing_put_audio_mixer),
9449 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9450 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9451 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9452 msm_routing_put_audio_mixer),
9453 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9454 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9455 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9456 msm_routing_put_audio_mixer),
9457 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9458 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9459 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9460 msm_routing_put_audio_mixer),
9461 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9462 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9463 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9464 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009465 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9466 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9467 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9468 msm_routing_put_audio_mixer),
9469 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9470 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9471 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9472 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309473};
9474
9475static const struct snd_kcontrol_new mmul2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009476 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9477 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309478 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9479 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009480 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9481 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309482 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9483 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009484 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9485 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309486 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9487 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009488 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9489 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309490 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9491 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009492 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9493 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309494 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9495 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009496 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9497 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309498 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9499 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009500 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9501 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309502 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9503 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009504 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9505 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309506 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9507 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009508 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9509 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309510 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9511 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009512 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9513 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309514 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9515 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009516 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
9517 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309518 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9519 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009520 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
9521 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309522 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9523 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009524 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9525 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309526 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9527 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009528 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9529 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309530 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9531 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009532 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9533 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309534 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9535 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009536 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9537 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309538 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9539 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009540 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9541 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309542 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9543 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009544 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9545 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309546 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9547 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009548 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9549 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309550 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9551 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009552 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9553 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309554 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9555 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009556 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9557 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309558 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9559 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009560 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9561 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309562 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9563 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009564 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9565 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309566 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9567 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009568 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9569 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309570 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9571 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009572 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9573 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309574 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9575 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009576 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9577 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309578 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9579 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009580 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9581 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309582 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9583 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009584 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9585 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309586 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9587 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009588 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9589 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309590 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009592 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9593 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309594 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9595 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009596 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9597 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309598 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9599 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009600 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9601 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309602 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9603 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009604 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
9605 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309606 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9607 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009608 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9609 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309610 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9611 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309612 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9613 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9614 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9615 msm_routing_put_audio_mixer),
9616 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9617 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9618 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9619 msm_routing_put_audio_mixer),
9620 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9621 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9622 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9623 msm_routing_put_audio_mixer),
9624 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9625 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9626 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9627 msm_routing_put_audio_mixer),
9628 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9629 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9630 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9631 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309632 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9633 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9634 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9635 msm_routing_put_audio_mixer),
9636 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9637 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9638 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9639 msm_routing_put_audio_mixer),
9640 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9641 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9642 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9643 msm_routing_put_audio_mixer),
9644 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9645 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9646 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9647 msm_routing_put_audio_mixer),
9648 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9649 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9650 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9651 msm_routing_put_audio_mixer),
9652 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9653 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9654 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9655 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009656 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9657 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9658 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9659 msm_routing_put_audio_mixer),
9660 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9661 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9662 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9663 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309664};
9665
9666static const struct snd_kcontrol_new mmul3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009667 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9668 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309669 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9670 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009671 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9672 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309673 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9674 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009675 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9676 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309677 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9678 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009679 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9680 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309681 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9682 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009683 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9684 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309685 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9686 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009687 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
9688 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309689 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9690 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009691 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
9692 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309693 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9694 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009695 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
9696 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309697 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9698 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009699 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
9700 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309701 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9702 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009703 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
9704 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05309705 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9706 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009707 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9708 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309709 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9710 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009711 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9712 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309713 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9714 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009715 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9716 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309717 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9718 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009719 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9720 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309721 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9722 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009723 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9724 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309725 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9726 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009727 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9728 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309729 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9730 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009731 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9732 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309733 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9734 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009735 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9736 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309737 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9738 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009739 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9740 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309741 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9742 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009743 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9744 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309745 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9746 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009747 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9748 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309749 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9750 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009751 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9752 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309753 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9754 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009755 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9756 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309757 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9758 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009759 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9760 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309761 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9762 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009763 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9764 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309765 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9766 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009767 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9768 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309769 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9770 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009771 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9772 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309773 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9774 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009775 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9776 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309777 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9778 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009779 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9780 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309781 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9782 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009783 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9784 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309785 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9786 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009787 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9788 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309789 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9790 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009791 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9792 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309793 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9794 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009795 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9796 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309797 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9798 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009799 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9800 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309801 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9802 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309803 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9804 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9805 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9806 msm_routing_put_audio_mixer),
9807 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9808 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9809 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9810 msm_routing_put_audio_mixer),
9811 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9812 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9813 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9814 msm_routing_put_audio_mixer),
9815 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9816 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9817 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9818 msm_routing_put_audio_mixer),
9819 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9820 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9821 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9822 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309823 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9824 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9825 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9826 msm_routing_put_audio_mixer),
9827 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9828 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9829 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9830 msm_routing_put_audio_mixer),
9831 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9832 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9833 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9834 msm_routing_put_audio_mixer),
9835 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9836 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9837 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9838 msm_routing_put_audio_mixer),
9839 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9840 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9841 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9842 msm_routing_put_audio_mixer),
9843 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9844 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9845 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9846 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009847 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9848 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9849 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9850 msm_routing_put_audio_mixer),
9851 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9852 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9853 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9854 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309855};
9856
9857static const struct snd_kcontrol_new mmul4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009858 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9859 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309860 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9861 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009862 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9863 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309864 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9865 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009866 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9867 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309868 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9869 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009870 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9871 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309872 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9873 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009874 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9875 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309876 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9877 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009878 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9879 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309880 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9881 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009882 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9883 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309884 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9885 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009886 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9887 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309888 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9889 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009890 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9891 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309892 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9893 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009894 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9895 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309896 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9897 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009898 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9899 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309900 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9901 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009902 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9903 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309904 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9905 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009906 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9907 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309908 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9909 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009910 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9911 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309912 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9913 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009914 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9915 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309916 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9917 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009918 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9919 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309920 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9921 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009922 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9923 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309924 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9925 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009926 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9927 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309928 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9929 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009930 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9931 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309932 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9933 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009934 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9935 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309936 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9937 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009938 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9939 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309940 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9941 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009942 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9943 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309944 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9945 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009946 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9947 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309948 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9949 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009950 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9951 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309952 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9953 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009954 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9955 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309956 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9957 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009958 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9959 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309960 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9961 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009962 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9963 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309964 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9965 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009966 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9967 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309968 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9969 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009970 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9971 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309972 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9973 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009974 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9975 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309976 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9977 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009978 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9979 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309980 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9981 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009982 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9983 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309984 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9985 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009986 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9987 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309988 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9989 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309990 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9991 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9992 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9993 msm_routing_put_audio_mixer),
9994 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9995 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9996 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9997 msm_routing_put_audio_mixer),
9998 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9999 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10000 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10001 msm_routing_put_audio_mixer),
10002 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10003 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10004 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10005 msm_routing_put_audio_mixer),
10006 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10007 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10008 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10009 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010010 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10011 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10012 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10013 msm_routing_put_audio_mixer),
10014 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10015 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10016 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10017 msm_routing_put_audio_mixer),
10018 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10019 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10020 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10021 msm_routing_put_audio_mixer),
10022 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10023 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10024 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10025 msm_routing_put_audio_mixer),
10026 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10027 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10028 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10029 msm_routing_put_audio_mixer),
10030 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10031 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10032 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10033 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010034 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10035 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10036 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10037 msm_routing_put_audio_mixer),
10038 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10039 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10040 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10041 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010042};
10043
10044static const struct snd_kcontrol_new mmul5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010045 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10046 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010047 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10048 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010049 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10050 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010051 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10052 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010053 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
10054 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010055 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10056 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010057 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10058 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010059 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10060 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010061 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10062 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010063 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10064 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010065 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
10066 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010067 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10068 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010069 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
10070 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010071 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10072 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010073 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
10074 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010075 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10076 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010077 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
10078 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010079 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10080 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010081 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
10082 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010083 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10084 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010085 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10086 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010087 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10088 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010089 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10090 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010091 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10092 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010093 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10094 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010095 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10096 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010097 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10098 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010099 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10100 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010101 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10102 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010103 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10104 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010105 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10106 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010107 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10108 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010109 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10110 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010111 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10112 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010113 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10114 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010115 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10116 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010117 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10118 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010119 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10120 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010121 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10122 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010123 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10124 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010125 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10126 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010127 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10128 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010129 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10130 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010131 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10132 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010133 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10134 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010135 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10136 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010137 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10138 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010139 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10140 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010141 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10142 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010143 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10144 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010145 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10146 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010147 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10148 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010149 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10150 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010151 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10152 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010153 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10154 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010155 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10156 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010157 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10158 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010159 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010161 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10162 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010163 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10164 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010165 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10166 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010167 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010169 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10170 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010171 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10172 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010173 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10174 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010175 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10176 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010177 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10178 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010179 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10180 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010181 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10182 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010183 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10184 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010185 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10186 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010187 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10188 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010189 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10190 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010191 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10192 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010193 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
10194 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010195 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10196 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010197 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10198 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010199 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10200 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010201 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10202 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10203 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10204 msm_routing_put_audio_mixer),
10205 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10206 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10207 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10208 msm_routing_put_audio_mixer),
10209 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10210 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10211 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10212 msm_routing_put_audio_mixer),
10213 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10214 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10215 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10216 msm_routing_put_audio_mixer),
10217 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10218 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10219 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10220 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010221 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10222 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10223 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10224 msm_routing_put_audio_mixer),
10225 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10226 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10227 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10228 msm_routing_put_audio_mixer),
10229 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10230 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10231 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10232 msm_routing_put_audio_mixer),
10233 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10234 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10235 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10236 msm_routing_put_audio_mixer),
10237 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10238 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10239 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10240 msm_routing_put_audio_mixer),
10241 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10242 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10243 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10244 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010245 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10246 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10247 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10248 msm_routing_put_audio_mixer),
10249 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10250 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10251 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10252 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010253};
10254
10255static const struct snd_kcontrol_new mmul6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010256 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10257 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010258 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10259 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010260 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10261 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010262 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10263 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010264 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10265 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010266 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10267 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010268 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10269 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010270 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10271 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010272 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10273 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010274 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10275 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010276 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10277 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010278 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10279 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010280 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10281 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010282 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10283 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010284 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10285 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010286 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10287 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010288 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
10289 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010290 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10291 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010292 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
10293 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010294 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10295 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010296 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
10297 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010298 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10299 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010300 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
10301 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010302 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10303 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010304 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
10305 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010306 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10307 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010308 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10309 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010310 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10311 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010312 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10313 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010314 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10315 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010316 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10317 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010318 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10319 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010320 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10321 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010322 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10323 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010324 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10325 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010326 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10327 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010328 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10329 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010330 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10331 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010332 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10333 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010334 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10335 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010336 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10337 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010338 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10339 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010340 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10341 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010342 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10343 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010344 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10345 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010346 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10347 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010348 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10349 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010350 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10351 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010352 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10353 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010354 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10355 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010356 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10357 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010358 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10359 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010360 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10361 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010362 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10363 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010364 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10365 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010366 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10367 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010368 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10369 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010370 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10371 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010372 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10373 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010374 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10375 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010376 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10377 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010378 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10379 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010380 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10381 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010382 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10383 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010384 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10385 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010386 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10387 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010388 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10389 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010390 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10391 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010392 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10393 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10394 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10395 msm_routing_put_audio_mixer),
10396 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10397 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10398 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10399 msm_routing_put_audio_mixer),
10400 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10401 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10402 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10403 msm_routing_put_audio_mixer),
10404 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10405 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10406 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10407 msm_routing_put_audio_mixer),
10408 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10409 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10410 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10411 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010412 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10413 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10414 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10415 msm_routing_put_audio_mixer),
10416 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10417 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10418 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10419 msm_routing_put_audio_mixer),
10420 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10421 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10422 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10423 msm_routing_put_audio_mixer),
10424 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10425 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10426 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10427 msm_routing_put_audio_mixer),
10428 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10429 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10430 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10431 msm_routing_put_audio_mixer),
10432 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10433 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10434 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10435 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010436 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10437 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10438 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10439 msm_routing_put_audio_mixer),
10440 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10441 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10442 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10443 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010444};
10445
10446static const struct snd_kcontrol_new mmul8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010447 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10448 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010449 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10450 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010451 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10452 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010453 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10454 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010455 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10456 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010457 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10458 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010459 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10460 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010461 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10462 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010463 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10464 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010465 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10466 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010467 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10468 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010469 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10470 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010471 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10472 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010473 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10474 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010475 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10476 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010477 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10478 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010479 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10480 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010481 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10482 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010483 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10484 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010485 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10486 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010487 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10488 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010489 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10490 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010491 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10492 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010493 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10494 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010495 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
10496 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010497 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10498 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010499 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10500 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010501 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10502 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010503 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10504 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010505 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10506 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010507 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10508 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010509 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10510 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010511 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10512 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010513 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10514 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010515 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10516 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010517 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10518 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010519 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10520 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010521 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10522 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010523 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10524 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010525 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10526 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010527 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10528 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010529 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10530 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010531 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10532 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010533 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10534 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010535 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10536 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010537 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10538 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010539 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10540 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010541 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10542 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010543 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10544 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010545 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10546 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010547 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10548 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010549 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10550 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010551 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10552 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010553 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10554 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010555 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10556 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010557 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10558 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010559 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10560 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010561 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10562 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010563 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10564 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010565 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10566 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010567 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10568 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010569 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10570 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010571 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10572 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010573 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10574 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010575 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10576 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010577 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10578 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010579 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10580 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010581 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10582 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010583 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10584 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010585 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10586 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010587 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10588 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10589 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10590 msm_routing_put_audio_mixer),
10591 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10592 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10593 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10594 msm_routing_put_audio_mixer),
10595 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10596 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10597 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10598 msm_routing_put_audio_mixer),
10599 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10600 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10601 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10602 msm_routing_put_audio_mixer),
10603 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10604 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10605 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10606 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010607 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10608 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10609 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10610 msm_routing_put_audio_mixer),
10611 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10612 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10613 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10614 msm_routing_put_audio_mixer),
10615 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10616 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10617 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10618 msm_routing_put_audio_mixer),
10619 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10620 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10621 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10622 msm_routing_put_audio_mixer),
10623 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10624 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10625 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10626 msm_routing_put_audio_mixer),
10627 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10628 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10629 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10630 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010631 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10632 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10633 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10634 msm_routing_put_audio_mixer),
10635 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10636 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10637 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10638 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010639};
10640
Asish Bhattacharya34504582017-08-08 12:55:01 +053010641static const struct snd_kcontrol_new mmul16_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010642 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10643 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010644 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10645 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010646 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10647 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010648 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10649 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010650 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10651 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010652 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10653 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010654 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10655 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010656 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10657 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010658 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10659 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010660 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10661 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010662 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10663 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010664 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10665 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010666 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10667 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010668 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10669 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010670 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10671 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010672 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10673 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010674 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10675 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010676 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10677 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010678 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10679 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010680 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10681 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010682 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10683 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010684 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10685 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010686 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10687 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010688 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10689 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010690 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
10691 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010692 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10693 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010694 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10695 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010696 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10697 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010698 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10699 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010700 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10701 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010702 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10703 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010704 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10705 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010706 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10707 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010708 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10709 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010710 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10711 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010712 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10713 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010714 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10715 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010716 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10717 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010718 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10719 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010720 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10721 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010722 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10723 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010724 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10725 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010726 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10727 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010728 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10729 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010730 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10731 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010732 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10733 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010734 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10735 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010736 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10737 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010738 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10739 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010740 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10741 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010742 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10743 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010744 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10745 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010746 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10747 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010748 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10749 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010750 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10751 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010752 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010754 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10755 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010756 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10757 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010758 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10759 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010760 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10761 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010762 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10763 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010764 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10765 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010766 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
10767 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010768 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10769 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010770 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
10771 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010772 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10773 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010774 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
10775 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010776 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10777 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010778 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
10779 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010780 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10781 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010782 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10783 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10784 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10785 msm_routing_put_audio_mixer),
10786 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10787 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10788 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10789 msm_routing_put_audio_mixer),
10790 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10791 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10792 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10793 msm_routing_put_audio_mixer),
10794 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10795 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10796 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10797 msm_routing_put_audio_mixer),
10798 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10799 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10800 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10801 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010802 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10803 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10804 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10805 msm_routing_get_audio_mixer,
10806 msm_routing_put_audio_mixer),
10807 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10808 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10809 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10810 msm_routing_get_audio_mixer,
10811 msm_routing_put_audio_mixer),
10812 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10813 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10814 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10815 msm_routing_get_audio_mixer,
10816 msm_routing_put_audio_mixer),
10817 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10818 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10819 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10820 msm_routing_get_audio_mixer,
10821 msm_routing_put_audio_mixer),
10822 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10823 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10824 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10825 msm_routing_get_audio_mixer,
10826 msm_routing_put_audio_mixer),
10827 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10828 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10829 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10830 msm_routing_get_audio_mixer,
10831 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010832 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10833 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10834 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10835 msm_routing_put_audio_mixer),
10836 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10837 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10838 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10839 msm_routing_put_audio_mixer),
Asish Bhattacharya34504582017-08-08 12:55:01 +053010840};
10841
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010842static const struct snd_kcontrol_new mmul9_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010843 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10844 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010845 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10846 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010847 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10848 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010849 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10850 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010851 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10852 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010853 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10854 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010855 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10856 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010857 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10858 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010859 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10860 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010861 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10862 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010863 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10864 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010865 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10866 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010867 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10868 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010869 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10870 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010871 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
10872 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010873 MSM_FRONTEND_DAI_MULTIMEDIA9, 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_0", SND_SOC_NOPM,
10876 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010877 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10878 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010879 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10880 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010881 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10882 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010883 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10884 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010885 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10886 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010887 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10888 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010889 MSM_FRONTEND_DAI_MULTIMEDIA9, 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_0", SND_SOC_NOPM,
10892 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010893 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10894 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010895 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10896 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010897 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10898 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010899 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10900 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010901 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10902 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010903 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10904 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010905 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10906 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010907 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10908 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010909 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10910 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010911 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10912 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010913 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10914 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010915 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10916 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010917 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10918 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010919 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10920 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010921 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10922 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010923 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10924 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10925 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10926 msm_routing_put_audio_mixer),
10927 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10928 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10929 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10930 msm_routing_put_audio_mixer),
10931 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10932 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10933 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10934 msm_routing_put_audio_mixer),
10935 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10936 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10937 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10938 msm_routing_put_audio_mixer),
10939 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10940 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10941 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10942 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010943 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10944 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10945 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10946 msm_routing_put_audio_mixer),
10947 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10948 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10949 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10950 msm_routing_put_audio_mixer),
10951 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10952 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10953 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10954 msm_routing_put_audio_mixer),
10955 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10956 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10957 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, 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_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10962 msm_routing_put_audio_mixer),
10963 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10964 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10965 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10966 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010967 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10968 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10969 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10970 msm_routing_put_audio_mixer),
10971 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10972 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10973 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10974 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010975};
10976
Laxminath Kasam38070be2017-08-17 18:21:59 +053010977static const struct snd_kcontrol_new mmul10_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010978 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10979 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010980 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10981 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010982 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10983 MSM_BACKEND_DAI_PRI_MI2S_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010984 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10985 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010986 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10987 MSM_BACKEND_DAI_INT_FM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010988 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10989 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010990 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10991 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010992 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10993 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010994 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10995 MSM_BACKEND_DAI_AFE_PCM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010996 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10997 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010998 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10999 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011000 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11001 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011002 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11003 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011004 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11005 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011006 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11007 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011008 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11009 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011010 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11011 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Vikram Panduranga72863152017-09-06 15:47:35 -070011012 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11013 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011014 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11015 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011016 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11017 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011018 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11019 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011020 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11021 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011022 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11023 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011024 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11025 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011026 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11027 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011028 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11029 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011030 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11031 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011032 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11033 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011034 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11035 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011036 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11037 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011038 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11039 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011040 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11041 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011042 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11043 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011044 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11045 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011046 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
11047 MSM_BACKEND_DAI_USB_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011048 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11049 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011050 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11051 MSM_BACKEND_DAI_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011052 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11053 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011054 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
11055 MSM_BACKEND_DAI_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011056 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11057 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011058 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
11059 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011060 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11061 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011062 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
11063 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011064 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11065 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011066 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
11067 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011068 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11069 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011070 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11071 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011072 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11073 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011074 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
11075 MSM_BACKEND_DAI_INT2_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011076 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11077 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011078 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11079 MSM_BACKEND_DAI_INT3_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011080 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11081 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011082 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11083 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11084 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11085 msm_routing_put_audio_mixer),
11086 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11087 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11088 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11089 msm_routing_put_audio_mixer),
11090 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11091 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11092 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11093 msm_routing_put_audio_mixer),
11094 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11095 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11096 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11097 msm_routing_put_audio_mixer),
11098 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11099 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11100 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11101 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011102 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11103 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11104 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11105 msm_routing_get_audio_mixer,
11106 msm_routing_put_audio_mixer),
11107 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11108 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11109 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11110 msm_routing_get_audio_mixer,
11111 msm_routing_put_audio_mixer),
11112 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11113 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11114 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11115 msm_routing_get_audio_mixer,
11116 msm_routing_put_audio_mixer),
11117 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11118 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11119 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11120 msm_routing_get_audio_mixer,
11121 msm_routing_put_audio_mixer),
11122 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11123 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11124 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11125 msm_routing_get_audio_mixer,
11126 msm_routing_put_audio_mixer),
11127 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11128 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11129 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11130 msm_routing_get_audio_mixer,
11131 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011132 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11133 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11134 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11135 msm_routing_put_audio_mixer),
11136 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11137 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11138 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11139 msm_routing_put_audio_mixer),
Laxminath Kasam38070be2017-08-17 18:21:59 +053011140};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011141static const struct snd_kcontrol_new mmul17_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011142 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11143 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011144 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11145 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011146 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11147 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011148 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11149 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011150 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11151 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011152 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11153 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011154 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11155 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011156 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11157 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011158 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11159 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011160 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11161 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011162 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11163 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011164 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11165 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011166 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11167 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011168 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11169 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011170 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11171 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011172 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11173 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011174 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11175 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11176 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11177 msm_routing_put_audio_mixer),
11178 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11179 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11180 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11181 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011182 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11183 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11184 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11185 msm_routing_put_audio_mixer),
11186 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11187 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11188 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11189 msm_routing_put_audio_mixer),
11190 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11191 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11192 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11193 msm_routing_put_audio_mixer),
11194 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11195 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11196 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11197 msm_routing_put_audio_mixer),
11198 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11199 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11200 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11201 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011202 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11203 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11204 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11205 msm_routing_get_audio_mixer,
11206 msm_routing_put_audio_mixer),
11207 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11208 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11209 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11210 msm_routing_get_audio_mixer,
11211 msm_routing_put_audio_mixer),
11212 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11213 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11214 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11215 msm_routing_get_audio_mixer,
11216 msm_routing_put_audio_mixer),
11217 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11218 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11219 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11220 msm_routing_get_audio_mixer,
11221 msm_routing_put_audio_mixer),
11222 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11223 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11224 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11225 msm_routing_get_audio_mixer,
11226 msm_routing_put_audio_mixer),
11227 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11228 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11229 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11230 msm_routing_get_audio_mixer,
11231 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011232 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11233 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11234 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11235 msm_routing_put_audio_mixer),
11236 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11237 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11238 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11239 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011240};
11241
11242static const struct snd_kcontrol_new mmul18_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011243 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11244 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011245 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11246 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011247 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11248 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011249 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11250 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011251 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11252 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011253 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11254 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011255 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11256 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
11257 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11258 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011259 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11260 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11261 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11262 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011263 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11264 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011265 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11266 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011267 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11268 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011269 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11270 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011271 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11272 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011273 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11274 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011275 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11276 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011277 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11278 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011279 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11280 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011281 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11282 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011283 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11284 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011285 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11286 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011287 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11288 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11289 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11290 msm_routing_put_audio_mixer),
11291 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11292 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11293 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11294 msm_routing_put_audio_mixer),
11295 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11296 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11297 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11298 msm_routing_put_audio_mixer),
11299 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11300 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11301 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11302 msm_routing_put_audio_mixer),
11303 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11304 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11305 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11306 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011307 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11308 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11309 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11310 msm_routing_get_audio_mixer,
11311 msm_routing_put_audio_mixer),
11312 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11313 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11314 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11315 msm_routing_get_audio_mixer,
11316 msm_routing_put_audio_mixer),
11317 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11318 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11319 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11320 msm_routing_get_audio_mixer,
11321 msm_routing_put_audio_mixer),
11322 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11323 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11324 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11325 msm_routing_get_audio_mixer,
11326 msm_routing_put_audio_mixer),
11327 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11328 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11329 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11330 msm_routing_get_audio_mixer,
11331 msm_routing_put_audio_mixer),
11332 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11333 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11334 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11335 msm_routing_get_audio_mixer,
11336 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011337 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11338 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11339 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11340 msm_routing_put_audio_mixer),
11341 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11342 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11343 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11344 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011345};
11346
11347static const struct snd_kcontrol_new mmul19_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011348 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11349 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011350 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11351 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011352 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11353 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011354 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11355 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011356 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11357 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011358 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11359 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011360 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11361 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011362 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11363 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011364 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11365 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011366 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11367 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011368 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11369 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011370 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11371 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011372 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11373 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011374 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11375 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011376 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11377 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011378 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11379 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011380 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11381 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11382 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11383 msm_routing_put_audio_mixer),
11384 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11385 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11386 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11387 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011388 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11389 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11390 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11391 msm_routing_put_audio_mixer),
11392 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11393 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11394 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11395 msm_routing_put_audio_mixer),
11396 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11397 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11398 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11399 msm_routing_put_audio_mixer),
11400 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11401 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11402 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11403 msm_routing_put_audio_mixer),
11404 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11405 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11406 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11407 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011408 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11409 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11410 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11411 msm_routing_get_audio_mixer,
11412 msm_routing_put_audio_mixer),
11413 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11414 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11415 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11416 msm_routing_get_audio_mixer,
11417 msm_routing_put_audio_mixer),
11418 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11419 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11420 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11421 msm_routing_get_audio_mixer,
11422 msm_routing_put_audio_mixer),
11423 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11424 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11425 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11426 msm_routing_get_audio_mixer,
11427 msm_routing_put_audio_mixer),
11428 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11429 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11430 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11431 msm_routing_get_audio_mixer,
11432 msm_routing_put_audio_mixer),
11433 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11434 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11435 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11436 msm_routing_get_audio_mixer,
11437 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011438 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11439 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11440 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11441 msm_routing_put_audio_mixer),
11442 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11443 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11444 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11445 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011446};
11447
11448static const struct snd_kcontrol_new mmul20_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011449 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11450 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011451 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11452 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011453 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11454 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011455 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11456 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011457 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11458 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011459 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11460 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011461 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11462 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011463 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11464 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011465 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11466 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053011467 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11468 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011469 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11470 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011471 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11472 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011473 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11474 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011475 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11476 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011477 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11478 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011479 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11480 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011481 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11482 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011483 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11484 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011485 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11486 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011487 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11488 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011489 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11490 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011491 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11492 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011493 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11494 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011495 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11496 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011497 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11498 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011499 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11500 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011501 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11502 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011503 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11504 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011505 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11506 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011507 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11508 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011509 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11510 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011511 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11512 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011513 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11514 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011515 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11516 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011517 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11518 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011519 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11520 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011521 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11522 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011523 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11524 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011525 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11526 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011527 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11528 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011529 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11530 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011531 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011533 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11534 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011535 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011537 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11538 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011539 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011541 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11542 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011543 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011545 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11546 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011547 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11548 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011549 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11550 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11551 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11552 msm_routing_put_audio_mixer),
11553 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11554 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11555 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11556 msm_routing_put_audio_mixer),
11557 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11558 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11559 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11560 msm_routing_put_audio_mixer),
11561 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11562 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11563 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11564 msm_routing_put_audio_mixer),
11565 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11566 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11567 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11568 msm_routing_put_audio_mixer),
11569 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11570 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11571 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11572 msm_routing_put_audio_mixer),
11573 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11574 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11575 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11576 msm_routing_put_audio_mixer),
11577 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11578 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11579 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11580 msm_routing_put_audio_mixer),
11581 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11582 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11583 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11584 msm_routing_put_audio_mixer),
11585 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11586 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11587 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11588 msm_routing_put_audio_mixer),
11589 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11590 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11591 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11592 msm_routing_put_audio_mixer),
11593 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11594 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11595 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11596 msm_routing_put_audio_mixer),
11597 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11598 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11599 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11600 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011601};
11602
11603static const struct snd_kcontrol_new mmul21_mixer_controls[] = {
11604 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11605 MSM_BACKEND_DAI_AUXPCM_TX,
11606 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11607 msm_routing_put_audio_mixer),
11608 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11609 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
11610 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11611 msm_routing_put_audio_mixer),
11612 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11613 MSM_BACKEND_DAI_PRI_TDM_TX_0,
11614 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11615 msm_routing_put_audio_mixer),
11616 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11617 MSM_BACKEND_DAI_PRI_TDM_TX_1,
11618 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11619 msm_routing_put_audio_mixer),
11620 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11621 MSM_BACKEND_DAI_PRI_TDM_TX_2,
11622 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11623 msm_routing_put_audio_mixer),
11624 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11625 MSM_BACKEND_DAI_PRI_TDM_TX_3,
11626 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11627 msm_routing_put_audio_mixer),
11628 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11629 MSM_BACKEND_DAI_SEC_TDM_TX_0,
11630 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11631 msm_routing_put_audio_mixer),
11632 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11633 MSM_BACKEND_DAI_SEC_TDM_TX_1,
11634 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11635 msm_routing_put_audio_mixer),
11636 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11637 MSM_BACKEND_DAI_SEC_TDM_TX_2,
11638 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11639 msm_routing_put_audio_mixer),
11640 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11641 MSM_BACKEND_DAI_SEC_TDM_TX_3,
11642 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11643 msm_routing_put_audio_mixer),
11644 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11645 MSM_BACKEND_DAI_TERT_TDM_TX_0,
11646 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11647 msm_routing_put_audio_mixer),
11648 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11649 MSM_BACKEND_DAI_TERT_TDM_TX_1,
11650 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11651 msm_routing_put_audio_mixer),
11652 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11653 MSM_BACKEND_DAI_TERT_TDM_TX_2,
11654 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11655 msm_routing_put_audio_mixer),
11656 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11657 MSM_BACKEND_DAI_TERT_TDM_TX_3,
11658 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11659 msm_routing_put_audio_mixer),
11660 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11661 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
11662 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11663 msm_routing_put_audio_mixer),
11664 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11665 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
11666 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11667 msm_routing_put_audio_mixer),
11668 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11669 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
11670 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11671 msm_routing_put_audio_mixer),
11672 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11673 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
11674 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11675 msm_routing_put_audio_mixer),
11676 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11677 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
11678 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11679 msm_routing_put_audio_mixer),
11680 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11681 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11682 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11683 msm_routing_put_audio_mixer),
11684 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11685 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11686 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11687 msm_routing_put_audio_mixer),
11688 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11689 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11690 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11691 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011692 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011693 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11694 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011695 msm_routing_put_audio_mixer),
11696 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011697 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11698 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011699 msm_routing_put_audio_mixer),
11700 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011701 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11702 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011703 msm_routing_put_audio_mixer),
11704 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011705 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11706 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011707 msm_routing_put_audio_mixer),
11708 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011709 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11710 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011711 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011712 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011713 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11714 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11715 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011716 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011717 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11718 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11719 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011720 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011721 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11722 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11723 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011724 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011725 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11726 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11727 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011728 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011729 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11730 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11731 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011732 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011733 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11734 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11735 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011736 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11737 MSM_BACKEND_DAI_PRI_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011738 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020011739 msm_routing_put_audio_mixer),
11740 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11741 MSM_BACKEND_DAI_SEC_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011742 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020011743 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011744};
11745
Surendar Karkac1cde372018-08-14 18:56:24 +053011746static const struct snd_kcontrol_new mmul27_mixer_controls[] = {
11747 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11748 MSM_BACKEND_DAI_SLIMBUS_0_TX,
11749 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11750 msm_routing_put_audio_mixer),
11751 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11752 MSM_BACKEND_DAI_SLIMBUS_6_TX,
11753 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11754 msm_routing_put_audio_mixer),
11755 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11756 MSM_BACKEND_DAI_SLIMBUS_7_TX,
11757 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11758 msm_routing_put_audio_mixer),
11759 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11760 MSM_BACKEND_DAI_PRI_MI2S_TX,
11761 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11762 msm_routing_put_audio_mixer),
11763 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11764 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
11765 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11766 msm_routing_put_audio_mixer),
11767 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11768 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11769 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11770 msm_routing_put_audio_mixer),
11771 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11772 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11773 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11774 msm_routing_put_audio_mixer),
11775 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11776 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
11777 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11778 msm_routing_put_audio_mixer),
11779 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11780 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11781 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11782 msm_routing_put_audio_mixer),
11783 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11784 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11785 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11786 msm_routing_put_audio_mixer),
11787};
11788
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011789static const struct snd_kcontrol_new mmul28_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011790 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11791 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011792 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11793 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011794 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11795 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011796 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11797 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011798 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11799 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011800 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11801 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011802 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11803 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011804 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11805 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011806 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11807 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011808 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11809 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011810 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11811 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011812 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11813 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011814 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11815 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011816 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11817 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011818 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11819 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011820 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11821 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011822 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11823 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11824 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11825 msm_routing_put_audio_mixer),
11826 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11827 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11828 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11829 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011830 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11831 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11832 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11833 msm_routing_put_audio_mixer),
11834 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11835 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11836 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11837 msm_routing_put_audio_mixer),
11838 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11839 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11840 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11841 msm_routing_put_audio_mixer),
11842 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11843 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11844 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11845 msm_routing_put_audio_mixer),
11846 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11847 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11848 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11849 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011850 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11851 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11852 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11853 msm_routing_get_audio_mixer,
11854 msm_routing_put_audio_mixer),
11855 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11856 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11857 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11858 msm_routing_get_audio_mixer,
11859 msm_routing_put_audio_mixer),
11860 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11861 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11862 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11863 msm_routing_get_audio_mixer,
11864 msm_routing_put_audio_mixer),
11865 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11866 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11867 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11868 msm_routing_get_audio_mixer,
11869 msm_routing_put_audio_mixer),
11870 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11871 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11872 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11873 msm_routing_get_audio_mixer,
11874 msm_routing_put_audio_mixer),
11875 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11876 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11877 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11878 msm_routing_get_audio_mixer,
11879 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011880 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11881 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11882 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11883 msm_routing_put_audio_mixer),
11884 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11885 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11886 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11887 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011888};
11889
11890static const struct snd_kcontrol_new mmul29_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011891 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11892 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011893 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11894 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011895 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11896 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011897 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11898 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011899 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11900 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011901 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11902 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011903 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11904 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011905 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11906 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011907 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11908 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011909 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11910 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011911 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11912 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011913 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11914 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011915 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11916 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011917 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11918 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011919 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11920 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011921 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11922 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011923 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11924 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11925 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11926 msm_routing_put_audio_mixer),
11927 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11928 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11929 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11930 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011931 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11932 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11933 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11934 msm_routing_put_audio_mixer),
11935 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11936 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11937 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11938 msm_routing_put_audio_mixer),
11939 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11940 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11941 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11942 msm_routing_put_audio_mixer),
11943 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11944 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11945 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11946 msm_routing_put_audio_mixer),
11947 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11948 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11949 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11950 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011951 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11952 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11953 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
11954 msm_routing_get_audio_mixer,
11955 msm_routing_put_audio_mixer),
11956 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11957 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11958 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
11959 msm_routing_get_audio_mixer,
11960 msm_routing_put_audio_mixer),
11961 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11962 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11963 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
11964 msm_routing_get_audio_mixer,
11965 msm_routing_put_audio_mixer),
11966 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11967 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11968 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
11969 msm_routing_get_audio_mixer,
11970 msm_routing_put_audio_mixer),
11971 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11972 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11973 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
11974 msm_routing_get_audio_mixer,
11975 msm_routing_put_audio_mixer),
11976 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11977 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11978 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
11979 msm_routing_get_audio_mixer,
11980 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011981 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11982 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11983 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11984 msm_routing_put_audio_mixer),
11985 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11986 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11987 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11988 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011989};
11990
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011991static const struct snd_kcontrol_new pri_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011992 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11993 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011994 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11995 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011996 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11997 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011998 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11999 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012000 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12001 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012002 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12003 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012004 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12005 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012006 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12007 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012008 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12009 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012010 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12011 msm_routing_put_voice_mixer),
12012};
12013
12014static const struct snd_kcontrol_new sec_i2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012015 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12016 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012017 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12018 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012019 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12020 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012021 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12022 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012023 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12024 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012025 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12026 msm_routing_put_voice_mixer),
12027};
12028
12029static const struct snd_kcontrol_new sec_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012030 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12031 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012032 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12033 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012034 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12035 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012036 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12037 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012038 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12039 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012040 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12041 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012042 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12043 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012044 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12045 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012046 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12047 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012048 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12049 msm_routing_put_voice_mixer),
12050};
12051
12052static const struct snd_kcontrol_new slimbus_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012053 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12054 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012055 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12056 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012057 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12058 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012059 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12060 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012061 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12062 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012063 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12064 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012065 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12066 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012067 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12068 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012069 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12070 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012071 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12072 msm_routing_put_voice_mixer),
12073};
12074
12075static const struct snd_kcontrol_new slimbus_6_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012076 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12077MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012078 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12079 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012080 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12081MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012082 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12083 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012084 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12085MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012086 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12087 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012088 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12089MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012090 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12091 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012092 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12093MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012094 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12095 msm_routing_put_voice_mixer),
12096};
12097
12098static const struct snd_kcontrol_new usb_audio_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012099 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12100 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012101 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12102 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012103 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12104 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012105 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12106 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012107 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12108 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012109 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12110 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012111 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12112 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012113 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12114 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012115 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12116 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012117 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12118 msm_routing_put_voice_mixer),
12119};
12120
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012121static const struct snd_kcontrol_new display_port_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012122 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12123MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012124 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12125 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012126 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12127MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012128 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12129 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012130 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12131MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012132 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12133 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012134 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12135MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012136 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12137 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012138 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12139MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012140 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12141 msm_routing_put_voice_mixer),
12142};
12143
Karthikeyan Mani57550082018-05-03 18:43:58 -070012144static const struct snd_kcontrol_new display_port_rx1_voice_mixer_controls[] = {
12145 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12146 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12147 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12148 msm_routing_put_voice_mixer),
12149 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12150 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12151 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12152 msm_routing_put_voice_mixer),
12153 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12154 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12155 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12156 msm_routing_put_voice_mixer),
12157 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12158 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12159 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12160 msm_routing_put_voice_mixer),
12161 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12162 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12163 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12164 msm_routing_put_voice_mixer),
12165};
12166
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012167static const struct snd_kcontrol_new bt_sco_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012168 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12169 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012170 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12171 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012172 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12173 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012174 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12175 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012176 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12177 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012178 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12179 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012180 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12181 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012182 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12183 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012184 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12185 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012186 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12187 msm_routing_put_voice_mixer),
12188};
12189
12190static const struct snd_kcontrol_new mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012191 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12192 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012193 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12194 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012195 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12196 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012197 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12198 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012199 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12200 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012201 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12202 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012203 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12204 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012205 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12206 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012207 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12208 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012209 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12210 msm_routing_put_voice_mixer),
12211};
12212
12213static const struct snd_kcontrol_new pri_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012214 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12215MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012216 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12217 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012218 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12219MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012220 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12221 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012222 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12223MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012224 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12225 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012226 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12227MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012228 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12229 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012230 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12231MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012232 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12233 msm_routing_put_voice_mixer),
12234};
12235
12236static const struct snd_kcontrol_new int0_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012237 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12238MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012239 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12240 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012241 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12242MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012243 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12244 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012245 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12246MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012247 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12248 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012249 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12250MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012251 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12252 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012253 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12254MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012255 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12256 msm_routing_put_voice_mixer),
12257};
12258
12259static const struct snd_kcontrol_new int4_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012260 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12261 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012262 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12263 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012264 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12265 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012266 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12267 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012268 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12269 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012270 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12271 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012272 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12273 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012274 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12275 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012276 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12277 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012278 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12279 msm_routing_put_voice_mixer),
12280};
12281
12282static const struct snd_kcontrol_new tert_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012283 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12284 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012285 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12286 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012287 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12288 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012289 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12290 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012291 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12292 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012293 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12294 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012295 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12296 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012297 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12298 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012299 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12300 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012301 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12302 msm_routing_put_voice_mixer),
12303};
12304
12305static const struct snd_kcontrol_new quat_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012306 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12307 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012308 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12309 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012310 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12311 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012312 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12313 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012314 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12315 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012316 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12317 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012318 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12319 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012320 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12321 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012322 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12323 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012324 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12325 msm_routing_put_voice_mixer),
12326};
12327
12328static const struct snd_kcontrol_new quin_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012329 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12330 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012331 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12332 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012333 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12334 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012335 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12336 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012337 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12338 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012339 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12340 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012341 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12342 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012343 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12344 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012345 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12346 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012347 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12348 msm_routing_put_voice_mixer),
12349};
12350
12351static const struct snd_kcontrol_new afe_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012352 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12353 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012354 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12355 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012356 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12357 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012358 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12359 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012360 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12361 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012362 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12363 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012364 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12365 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012366 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12367 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012368 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12369 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012370 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12371 msm_routing_put_voice_mixer),
12372};
12373
12374static const struct snd_kcontrol_new aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012375 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12376 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012377 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12378 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012379 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12380 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012381 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12382 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012383 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12384 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012385 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12386 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012387 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12388 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012389 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12390 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012391 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12392 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012393 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12394 msm_routing_put_voice_mixer),
12395};
12396
12397static const struct snd_kcontrol_new sec_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012398 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12399MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012400 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12401 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012402 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12403MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012404 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12405 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012406 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12407MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012408 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12409 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012410 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12411MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012412 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12413 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012414 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12415MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012416 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12417 msm_routing_put_voice_mixer),
12418};
12419
12420static const struct snd_kcontrol_new tert_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012421 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12422MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012423 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12424 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012425 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12426MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012427 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12428 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012429 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12430MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012431 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12432 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012433 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12434MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012435 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12436 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012437 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12438MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012439 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12440 msm_routing_put_voice_mixer),
12441};
12442
12443static const struct snd_kcontrol_new quat_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012444 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12445MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012446 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12447 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012448 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12449MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012450 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12451 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012452 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12453MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012454 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12455 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012456 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12457MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012458 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12459 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012460 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12461MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012462 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12463 msm_routing_put_voice_mixer),
12464};
12465
Rohit Kumara5077932017-09-10 22:05:05 +053012466static const struct snd_kcontrol_new quin_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012467 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12468MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012469 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12470 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012471 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12472MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012473 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12474 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012475 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12476MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012477 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12478 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012479 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12480MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012481 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12482 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012483 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12484MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012485 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12486 msm_routing_put_voice_mixer),
12487};
12488
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012489static const struct snd_kcontrol_new hdmi_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012490 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12491 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012492 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12493 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012494 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12495 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012496 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12497 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012498 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12499 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012500 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12501 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012502 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12503 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012504 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12505 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012506 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12507 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012508 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12509 msm_routing_put_voice_mixer),
12510};
12511
12512static const struct snd_kcontrol_new slimbus_7_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012513 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12514MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012515 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12516 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012517 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12518MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012519 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12520 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012521 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12522MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012523 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12524 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012525 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12526MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012527 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12528 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012529 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12530MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012531 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12532 msm_routing_put_voice_mixer),
12533};
12534
12535static const struct snd_kcontrol_new slimbus_8_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012536 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12537 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012538 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12539 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012540 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12541 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012542 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12543 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012544 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12545 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012546 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12547 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012548 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12549 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012550 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12551 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012552 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12553 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012554 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12555 msm_routing_put_voice_mixer),
12556};
12557
12558static const struct snd_kcontrol_new quat_tdm_rx_2_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012559 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12560 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012561 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12562 msm_routing_put_voice_mixer),
12563};
12564
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012565static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_voice_mixer_controls[] = {
12566 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12567 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12568 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12569 msm_routing_put_voice_mixer),
12570 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12571 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12572 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12573 msm_routing_put_voice_mixer),
12574 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12575 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12576 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12577 msm_routing_put_voice_mixer),
12578 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12579 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12580 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12581 msm_routing_put_voice_mixer),
12582 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12583 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12584 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12585 msm_routing_put_voice_mixer),
12586};
12587
12588static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_voice_mixer_controls[] = {
12589 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12590 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12591 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12592 msm_routing_put_voice_mixer),
12593 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12594 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12595 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12596 msm_routing_put_voice_mixer),
12597 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12598 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12599 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12600 msm_routing_put_voice_mixer),
12601 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12602 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12603 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12604 msm_routing_put_voice_mixer),
12605 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12606 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12607 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12608 msm_routing_put_voice_mixer),
12609};
12610
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012611static const struct snd_kcontrol_new rx_cdc_dma_rx_0_voice_mixer_controls[] = {
12612 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12613 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12614 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12615 msm_routing_put_voice_mixer),
12616 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12617 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12618 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12619 msm_routing_put_voice_mixer),
12620 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12621 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12622 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12623 msm_routing_put_voice_mixer),
12624 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12625 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12626 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12627 msm_routing_put_voice_mixer),
12628 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12629 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12630 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12631 msm_routing_put_voice_mixer),
12632};
12633
12634static const struct snd_kcontrol_new rx_cdc_dma_rx_1_voice_mixer_controls[] = {
12635 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12636 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12637 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12638 msm_routing_put_voice_mixer),
12639 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12640 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12641 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12642 msm_routing_put_voice_mixer),
12643 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12644 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12645 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12646 msm_routing_put_voice_mixer),
12647 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12648 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12649 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12650 msm_routing_put_voice_mixer),
12651 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12652 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12653 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12654 msm_routing_put_voice_mixer),
12655};
12656
12657static const struct snd_kcontrol_new rx_cdc_dma_rx_2_voice_mixer_controls[] = {
12658 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12659 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12660 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12661 msm_routing_put_voice_mixer),
12662 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12663 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12664 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12665 msm_routing_put_voice_mixer),
12666 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12667 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12668 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12669 msm_routing_put_voice_mixer),
12670 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12671 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12672 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12673 msm_routing_put_voice_mixer),
12674 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12675 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12676 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12677 msm_routing_put_voice_mixer),
12678};
12679
12680static const struct snd_kcontrol_new rx_cdc_dma_rx_3_voice_mixer_controls[] = {
12681 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12682 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12683 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12684 msm_routing_put_voice_mixer),
12685 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12686 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12687 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12688 msm_routing_put_voice_mixer),
12689 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12690 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12691 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12692 msm_routing_put_voice_mixer),
12693 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12694 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12695 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12696 msm_routing_put_voice_mixer),
12697 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12698 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12699 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12700 msm_routing_put_voice_mixer),
12701};
12702
12703static const struct snd_kcontrol_new rx_cdc_dma_rx_4_voice_mixer_controls[] = {
12704 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12705 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12706 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12707 msm_routing_put_voice_mixer),
12708 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12709 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12710 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12711 msm_routing_put_voice_mixer),
12712 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12713 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12714 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12715 msm_routing_put_voice_mixer),
12716 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12717 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12718 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12719 msm_routing_put_voice_mixer),
12720 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12721 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12722 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12723 msm_routing_put_voice_mixer),
12724};
12725
12726static const struct snd_kcontrol_new rx_cdc_dma_rx_5_voice_mixer_controls[] = {
12727 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12728 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12729 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12730 msm_routing_put_voice_mixer),
12731 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12732 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12733 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12734 msm_routing_put_voice_mixer),
12735 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12736 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12737 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12738 msm_routing_put_voice_mixer),
12739 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12740 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12741 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12742 msm_routing_put_voice_mixer),
12743 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12744 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12745 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12746 msm_routing_put_voice_mixer),
12747};
12748
12749static const struct snd_kcontrol_new rx_cdc_dma_rx_6_voice_mixer_controls[] = {
12750 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12751 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12752 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12753 msm_routing_put_voice_mixer),
12754 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12755 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12756 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12757 msm_routing_put_voice_mixer),
12758 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12759 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12760 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12761 msm_routing_put_voice_mixer),
12762 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12763 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12764 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12765 msm_routing_put_voice_mixer),
12766 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12767 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12768 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12769 msm_routing_put_voice_mixer),
12770};
12771
12772static const struct snd_kcontrol_new rx_cdc_dma_rx_7_voice_mixer_controls[] = {
12773 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12774 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12775 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12776 msm_routing_put_voice_mixer),
12777 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12778 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12779 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12780 msm_routing_put_voice_mixer),
12781 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12782 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12783 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12784 msm_routing_put_voice_mixer),
12785 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12786 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12787 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12788 msm_routing_put_voice_mixer),
12789 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12790 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12791 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12792 msm_routing_put_voice_mixer),
12793};
12794
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012795static const struct snd_kcontrol_new stub_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012796 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12797 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012798 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12799 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012800 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12801 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012802 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12803 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012804};
12805
12806static const struct snd_kcontrol_new slimbus_1_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012807 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12808 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012809 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12810 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012811 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12812 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012813 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12814 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012815};
12816
12817static const struct snd_kcontrol_new slimbus_3_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012818 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12819 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012820 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12821 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012822 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12823 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012824 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12825 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012826};
12827
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012828static const struct snd_kcontrol_new tx_voicemmode1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012829 SOC_DOUBLE_EXT("PRI_TX_MMode1", SND_SOC_NOPM,
12830 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012831 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12832 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012833 SOC_DOUBLE_EXT("MI2S_TX_MMode1", SND_SOC_NOPM,
12834 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012835 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12836 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012837 SOC_DOUBLE_EXT("SLIM_0_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012838 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12839 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012840 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012841 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12842 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012843 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012844 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
12845 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012846 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012847 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
12848 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012849 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012850 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12851 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012852 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012853 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12854 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012855 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012856 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12857 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012858 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053012859 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12860 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012861 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012862 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
12863 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012864 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012865 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
12866 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012867 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012868 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
12869 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012870 SOC_DOUBLE_EXT("SLIM_7_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012871 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12872 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012873 SOC_DOUBLE_EXT("SLIM_8_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012874 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12875 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012876 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode1", SND_SOC_NOPM,
12877 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012878 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12879 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012880 SOC_DOUBLE_EXT("QUAT_TDM_TX_0_MMode1", SND_SOC_NOPM,
12881MSM_BACKEND_DAI_QUAT_TDM_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012882 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012883 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
12884 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
12885 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12886 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
12887 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
12888 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012889 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
12890 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
12891 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12892 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
12893 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
12894 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12895 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
12896 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
12897 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12898 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode1", SND_SOC_NOPM,
12899 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
12900 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12901 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode1", SND_SOC_NOPM,
12902 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE1,
12903 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12904 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode1", SND_SOC_NOPM,
12905 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE1,
12906 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012907};
12908
12909static const struct snd_kcontrol_new tx_voicemmode2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012910 SOC_DOUBLE_EXT("PRI_TX_MMode2", SND_SOC_NOPM,
12911 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012912 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12913 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012914 SOC_DOUBLE_EXT("MI2S_TX_MMode2", SND_SOC_NOPM,
12915 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012916 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12917 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012918 SOC_DOUBLE_EXT("SLIM_0_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012919 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12920 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012921 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012922 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12923 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012924 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012925 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
12926 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012927 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012928 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
12929 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012930 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012931 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12932 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012933 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012934 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12935 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012936 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012937 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12938 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012939 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053012940 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12941 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012942 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012943 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
12944 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012945 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012946 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
12947 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012948 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012949 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
12950 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012951 SOC_DOUBLE_EXT("SLIM_7_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012952 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12953 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012954 SOC_DOUBLE_EXT("SLIM_8_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012955 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12956 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012957 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012958 MSM_BACKEND_DAI_USB_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12959 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012960 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
12961 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
12962 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12963 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
12964 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
12965 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012966 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
12967 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
12968 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12969 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
12970 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
12971 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12972 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
12973 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
12974 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12975 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode2", SND_SOC_NOPM,
12976 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE2,
12977 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12978 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode2", SND_SOC_NOPM,
12979 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE2,
12980 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12981 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode2", SND_SOC_NOPM,
12982 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE2,
12983 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012984};
12985
12986static const struct snd_kcontrol_new tx_voip_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012987 SOC_DOUBLE_EXT("PRI_TX_Voip", SND_SOC_NOPM,
12988 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012989 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12990 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012991 SOC_DOUBLE_EXT("MI2S_TX_Voip", SND_SOC_NOPM,
12992 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012993 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12994 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012995 SOC_DOUBLE_EXT("SLIM_0_TX_Voip", SND_SOC_NOPM,
12996 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012997 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12998 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012999 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_Voip", SND_SOC_NOPM,
13000 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013001 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13002 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013003 SOC_DOUBLE_EXT("AFE_PCM_TX_Voip", SND_SOC_NOPM,
13004 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013005 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13006 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013007 SOC_DOUBLE_EXT("AUX_PCM_TX_Voip", SND_SOC_NOPM,
13008 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013009 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13010 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013011 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13012 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013013 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13014 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013015 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13016 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013017 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13018 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013019 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13020 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013021 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13022 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013023 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13024 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013025 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13026 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013027 SOC_DOUBLE_EXT("PRI_MI2S_TX_Voip", SND_SOC_NOPM,
13028 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013029 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13030 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013031 SOC_DOUBLE_EXT("TERT_MI2S_TX_Voip", SND_SOC_NOPM,
13032 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013033 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13034 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013035 SOC_DOUBLE_EXT("INT3_MI2S_TX_Voip", SND_SOC_NOPM,
13036 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013037 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13038 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013039 SOC_DOUBLE_EXT("SLIM_7_TX_Voip", SND_SOC_NOPM,
13040 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013041 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13042 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013043 SOC_DOUBLE_EXT("SLIM_8_TX_Voip", SND_SOC_NOPM,
13044 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013045 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13046 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013047 SOC_DOUBLE_EXT("USB_AUDIO_TX_Voip", SND_SOC_NOPM,
13048 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013049 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13050 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013051 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
13052 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
13053 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13054 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
13055 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
13056 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013057 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
13058 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
13059 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13060 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
13061 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
13062 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13063 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
13064 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
13065 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13066 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_Voip", SND_SOC_NOPM,
13067 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOIP,
13068 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13069 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_Voip", SND_SOC_NOPM,
13070 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOIP,
13071 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13072 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_Voip", SND_SOC_NOPM,
13073 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOIP,
13074 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013075};
13076
13077static const struct snd_kcontrol_new tx_voice_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013078 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
13079 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013080 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13081 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013082 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13083 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013084 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13085 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013086 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13087 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013088 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13089 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013090 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
13091 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013092 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13093 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013094 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13095 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013096 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13097 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013098 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13099 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013100 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13101 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013102 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13103 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013104 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13105 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013106 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13107 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013108 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13109 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013110 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13111 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013112 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13113 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013114 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13115 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013116 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13117 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013118 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13119 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013120 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13121 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013122 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13123 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013124 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13125 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013126 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13127 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013128 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13129 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013130 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13131 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013132 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13133 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013134 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13135 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013136 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13137 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013138 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
13139 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013140 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13141 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013142 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13143 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013144 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13145 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013146 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13147 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013148 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13149 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013150 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13151 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013152 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13153 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013154 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13155 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
13156 1, 0, msm_routing_get_voice_stub_mixer,
13157 msm_routing_put_voice_stub_mixer),
13158 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13159 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
13160 1, 0, msm_routing_get_voice_stub_mixer,
13161 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013162 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13163 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
13164 1, 0, msm_routing_get_voice_stub_mixer,
13165 msm_routing_put_voice_stub_mixer),
13166 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13167 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
13168 1, 0, msm_routing_get_voice_stub_mixer,
13169 msm_routing_put_voice_stub_mixer),
13170 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13171 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
13172 1, 0, msm_routing_get_voice_stub_mixer,
13173 msm_routing_put_voice_stub_mixer),
13174 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13175 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE_STUB,
13176 1, 0, msm_routing_get_voice_stub_mixer,
13177 msm_routing_put_voice_stub_mixer),
13178 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13179 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE_STUB,
13180 1, 0, msm_routing_get_voice_stub_mixer,
13181 msm_routing_put_voice_stub_mixer),
13182 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13183 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE_STUB,
13184 1, 0, msm_routing_get_voice_stub_mixer,
13185 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013186};
13187
13188static const struct snd_kcontrol_new tx_voice2_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013189 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
13190 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013191 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13192 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013193 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13194 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013195 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13196 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013197 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
13198 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013199 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13200 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013201 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13202 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013203 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13204 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013205 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13206 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013207 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13208 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013209 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13210 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013211 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13212 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013213 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13214 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013215 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13216 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013217 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13218 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013219 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13220 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013221 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13222 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013223 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13224 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013225 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
13226 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013227 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13228 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013229 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13230 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013231 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13232 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013233 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13234 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013235 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13236 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013237 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13238 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013239 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13240 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013241 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13242 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013243 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13244 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013245 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13246 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013247 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13248 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013249 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13250 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
13251 1, 0, msm_routing_get_voice_stub_mixer,
13252 msm_routing_put_voice_stub_mixer),
13253 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13254 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
13255 1, 0, msm_routing_get_voice_stub_mixer,
13256 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013257 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13258 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
13259 1, 0, msm_routing_get_voice_stub_mixer,
13260 msm_routing_put_voice_stub_mixer),
13261 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13262 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
13263 1, 0, msm_routing_get_voice_stub_mixer,
13264 msm_routing_put_voice_stub_mixer),
13265 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13266 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
13267 1, 0, msm_routing_get_voice_stub_mixer,
13268 msm_routing_put_voice_stub_mixer),
13269 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13270 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE2_STUB,
13271 1, 0, msm_routing_get_voice_stub_mixer,
13272 msm_routing_put_voice_stub_mixer),
13273 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13274 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE2_STUB,
13275 1, 0, msm_routing_get_voice_stub_mixer,
13276 msm_routing_put_voice_stub_mixer),
13277 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13278 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE2_STUB,
13279 1, 0, msm_routing_get_voice_stub_mixer,
13280 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013281};
13282
13283static const struct snd_kcontrol_new tx_volte_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013284 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
13285 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013286 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13287 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013288 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13289 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013290 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13291 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013292 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
13293 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013294 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13295 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013296 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13297 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013298 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13299 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013300 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13301 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013302 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13303 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013304 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13305 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013306 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13307 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013308 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13309 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013310 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13311 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013312 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13313 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013314 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13315 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013316 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13317 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013318 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13319 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013320 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
13321 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013322 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13323 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013324 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13325 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013326 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13327 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013328 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13329 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013330 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13331 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013332 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13333 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013334 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13335 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013336 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13337 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013338 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13339 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013340 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13341 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013342 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13343 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013344 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13345 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
13346 1, 0, msm_routing_get_voice_stub_mixer,
13347 msm_routing_put_voice_stub_mixer),
13348 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13349 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
13350 1, 0, msm_routing_get_voice_stub_mixer,
13351 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013352 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13353 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
13354 1, 0, msm_routing_get_voice_stub_mixer,
13355 msm_routing_put_voice_stub_mixer),
13356 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13357 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
13358 1, 0, msm_routing_get_voice_stub_mixer,
13359 msm_routing_put_voice_stub_mixer),
13360 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13361 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
13362 1, 0, msm_routing_get_voice_stub_mixer,
13363 msm_routing_put_voice_stub_mixer),
13364 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13365 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOLTE_STUB,
13366 1, 0, msm_routing_get_voice_stub_mixer,
13367 msm_routing_put_voice_stub_mixer),
13368 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13369 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOLTE_STUB,
13370 1, 0, msm_routing_get_voice_stub_mixer,
13371 msm_routing_put_voice_stub_mixer),
13372 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13373 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOLTE_STUB,
13374 1, 0, msm_routing_get_voice_stub_mixer,
13375 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013376};
13377
13378static const struct snd_kcontrol_new tx_qchat_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013379 SOC_DOUBLE_EXT("PRI_TX_QCHAT", SND_SOC_NOPM,
13380 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013381 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13382 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013383 SOC_DOUBLE_EXT("SLIM_0_TX_QCHAT", SND_SOC_NOPM,
13384 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013385 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13386 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013387 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_QCHAT", SND_SOC_NOPM,
13388 MSM_BACKEND_DAI_INT_BT_SCO_TX,
13389 MSM_FRONTEND_DAI_QCHAT, 1, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013390 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013391 SOC_DOUBLE_EXT("AFE_PCM_TX_QCHAT", SND_SOC_NOPM,
13392 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013393 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13394 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013395 SOC_DOUBLE_EXT("AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13396 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013397 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13398 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013399 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13400 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013401 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13402 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013403 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13404 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013405 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13406 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013407 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13408 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013409 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13410 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013411 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13412 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013413 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13414 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013415 SOC_DOUBLE_EXT("MI2S_TX_QCHAT", SND_SOC_NOPM,
13416 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013417 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13418 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013419 SOC_DOUBLE_EXT("PRI_MI2S_TX_QCHAT", SND_SOC_NOPM,
13420 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013421 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13422 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013423 SOC_DOUBLE_EXT("TERT_MI2S_TX_QCHAT", SND_SOC_NOPM,
13424 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013425 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13426 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013427 SOC_DOUBLE_EXT("INT3_MI2S_TX_QCHAT", SND_SOC_NOPM,
13428 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013429 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13430 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013431 SOC_DOUBLE_EXT("SLIM_7_TX_QCHAT", SND_SOC_NOPM,
13432 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013433 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13434 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013435 SOC_DOUBLE_EXT("SLIM_8_TX_QCHAT", SND_SOC_NOPM,
13436 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013437 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13438 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013439 SOC_DOUBLE_EXT("USB_AUDIO_TX_QCHAT", SND_SOC_NOPM,
13440 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013441 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13442 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013443 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
13444 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
13445 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13446 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
13447 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
13448 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013449 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
13450 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
13451 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13452 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
13453 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
13454 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13455 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
13456 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
13457 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13458 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_QCHAT", SND_SOC_NOPM,
13459 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_QCHAT,
13460 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13461 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_QCHAT", SND_SOC_NOPM,
13462 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_QCHAT,
13463 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13464 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_QCHAT", SND_SOC_NOPM,
13465 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_QCHAT,
13466 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013467};
13468
13469static const struct snd_kcontrol_new int0_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013470 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13471 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013472 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13473 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013474 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13475 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013476 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13477 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013478 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13479 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013480 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13481 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013482 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13483 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013484 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13485 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013486 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13487 MSM_BACKEND_DAI_INT0_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013488 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13489 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013490 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13491 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013492 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13493 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013494 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13495 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013496 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13497 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013498 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13499 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013500 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13501 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013502 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13503 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013504 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13505 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013506 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13507 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013508 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13509 msm_routing_put_port_mixer),
13510};
13511
13512static const struct snd_kcontrol_new int4_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013513 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13514 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013515 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13516 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013517 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13518 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013519 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13520 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013521 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13522 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013523 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13524 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013525 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13526 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013527 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13528 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013529 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13530 MSM_BACKEND_DAI_INT4_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013531 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13532 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013533 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13534 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013535 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13536 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013537 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13538 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013539 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13540 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013541 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13542 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013543 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13544 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013545 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13546 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013547 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13548 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013549 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13550 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013551 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13552 msm_routing_put_port_mixer),
13553};
13554
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053013555static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_port_mixer_controls[] = {
13556 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13557 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13558 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, 1, 0, msm_routing_get_port_mixer,
13559 msm_routing_put_port_mixer),
13560 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13561 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13562 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
13563 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080013564 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13565 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13566 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13567 msm_routing_put_port_mixer),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053013568};
13569
13570static const struct snd_kcontrol_new rx_cdc_dma_rx_0_port_mixer_controls[] = {
13571 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13572 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13573 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
13574 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080013575 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13576 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13577 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13578 msm_routing_put_port_mixer),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053013579};
13580
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013581static const struct snd_kcontrol_new sbus_0_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013582 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13583 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013584 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13585 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013586 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13587 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013588 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13589 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013590 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13591 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013592 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13593 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013594 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13595 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013596 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13597 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013598 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13599 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013600 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13601 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013602 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13603 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013604 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13605 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013606 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13607 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013608 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13609 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013610 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13611 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013612 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13613 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013614 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13615 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013616 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13617 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013618 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13619 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013620 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13621 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013622 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13623 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013624 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13625 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013626 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13627 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013628 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13629 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013630 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13631 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013632 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13633 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013634 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13635 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013636 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13637 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013638 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13639 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013640 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13641 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013642 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13643 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013644 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13645 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013646 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13647 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013648 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13649 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013650 SOC_DOUBLE_EXT("PRI_MI2S_RX", SND_SOC_NOPM,
13651 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013652 MSM_BACKEND_DAI_PRI_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13653 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013654 SOC_DOUBLE_EXT("SEC_MI2S_RX", SND_SOC_NOPM,
13655 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013656 MSM_BACKEND_DAI_SECONDARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13657 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013658 SOC_DOUBLE_EXT("TERT_MI2S_RX", SND_SOC_NOPM,
13659 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013660 MSM_BACKEND_DAI_TERTIARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13661 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013662 SOC_DOUBLE_EXT("QUAT_MI2S_RX", SND_SOC_NOPM,
13663 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013664 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13665 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013666 SOC_DOUBLE_EXT("QUIN_MI2S_RX", SND_SOC_NOPM,
13667 MSM_BACKEND_DAI_SLIMBUS_0_RX,
13668MSM_BACKEND_DAI_QUINARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
Rohit Kumara5077932017-09-10 22:05:05 +053013669 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013670};
13671
13672static const struct snd_kcontrol_new aux_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013673 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13674 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013675 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13676 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013677 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13678 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013679 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13680 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013681 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13682 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013683 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13684 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013685 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13686 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013687 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13688 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013689 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13690 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013691 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
13692 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013693 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13694 MSM_BACKEND_DAI_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080013695 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13696 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013697};
13698
13699static const struct snd_kcontrol_new sec_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013700 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13701 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013702 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13703 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013704 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13705 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013706 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13707 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013708 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13709 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013710 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13711 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013712 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13713 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080013714 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13715 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013716};
13717
13718static const struct snd_kcontrol_new tert_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013719 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13720 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013721 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13722 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013723 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13724 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013725 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13726 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013727 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13728 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013729 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13730 msm_routing_put_port_mixer),
13731};
13732
13733static const struct snd_kcontrol_new quat_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013734 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13735 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013736 MSM_BACKEND_DAI_QUAT_AUXPCM_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("SLIM_0_TX", SND_SOC_NOPM,
13739 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013740 MSM_BACKEND_DAI_SLIMBUS_0_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
13743 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013744 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13745 msm_routing_put_port_mixer),
13746};
13747
Rohit Kumara5077932017-09-10 22:05:05 +053013748static const struct snd_kcontrol_new quin_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013749 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13750 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013751 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13752 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013753 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13754 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013755 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13756 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013757 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13758 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013759 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13760 msm_routing_put_port_mixer),
13761};
13762
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013763static const struct snd_kcontrol_new sbus_1_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013764 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13765 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013766 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13767 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013768 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13769 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013770 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0, msm_routing_get_port_mixer,
13771 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013772 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13773 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013774 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13775 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013776 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13777 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013778 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13779 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013780 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13781 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013782 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13783 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013784 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13785 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013786 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13787 msm_routing_put_port_mixer),
13788};
13789
13790static const struct snd_kcontrol_new sbus_3_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013791 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_RX", SND_SOC_NOPM,
13792 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013793 MSM_BACKEND_DAI_INT_BT_SCO_RX, 1, 0, msm_routing_get_port_mixer,
13794 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013795 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13796 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013797 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13798 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013799 SOC_DOUBLE_EXT("AFE_PCM_RX", SND_SOC_NOPM,
13800 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013801 MSM_BACKEND_DAI_AFE_PCM_RX, 1, 0, msm_routing_get_port_mixer,
13802 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013803 SOC_DOUBLE_EXT("AUX_PCM_RX", SND_SOC_NOPM,
13804 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013805 MSM_BACKEND_DAI_AUXPCM_RX, 1, 0, msm_routing_get_port_mixer,
13806 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013807 SOC_DOUBLE_EXT("SLIM_0_RX", SND_SOC_NOPM,
13808 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013809 MSM_BACKEND_DAI_SLIMBUS_0_RX, 1, 0, msm_routing_get_port_mixer,
13810 msm_routing_put_port_mixer),
13811};
13812
13813static const struct snd_kcontrol_new sbus_6_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013814 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13815 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013816 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13817 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013818 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13819 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013820 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13821 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013822 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13823 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013824 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13825 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013826 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13827 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013828 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13829 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013830 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13831 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013832 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13833 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013834 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13835 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013836 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13837 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013838 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13839 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013840 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13841 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013842 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13843 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013844 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13845 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013846 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13847 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013848 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13849 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013850 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13851 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013852 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13853 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013854 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13855 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013856 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13857 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013858 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13859 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013860 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13861 msm_routing_put_port_mixer),
13862};
13863
13864static const struct snd_kcontrol_new bt_sco_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013865 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13866 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013867 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13868 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013869 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13870 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013871 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13872 msm_routing_put_port_mixer),
13873};
13874
13875static const struct snd_kcontrol_new afe_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013876 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13877 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013878 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13879 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013880 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13881 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013882 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13883 msm_routing_put_port_mixer),
13884};
13885
13886
13887static const struct snd_kcontrol_new hdmi_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013888 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13889 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013890 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13891 msm_routing_put_port_mixer),
13892};
13893
13894static const struct snd_kcontrol_new display_port_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013895 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13896 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013897 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13898 msm_routing_put_port_mixer),
13899};
13900
Karthikeyan Mani57550082018-05-03 18:43:58 -070013901static const struct snd_kcontrol_new display_port_rx1_port_mixer_controls[] = {
13902 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13903 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
13904 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13905 msm_routing_put_port_mixer),
13906};
13907
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013908static const struct snd_kcontrol_new sec_i2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013909 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13910 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013911 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13912 msm_routing_put_port_mixer),
13913};
13914
13915static const struct snd_kcontrol_new mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013916 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13917 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013918 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13919 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013920 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13921 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013922 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13923 msm_routing_put_port_mixer),
13924};
13925
13926static const struct snd_kcontrol_new primary_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013927 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13928 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013929 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13930 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013931 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13932 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013933 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13934 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013935 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13936 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013937 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13938 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013939 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13940 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013941 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13942 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013943 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13944 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013945 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13946 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013947 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13948 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013949 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13950 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013951 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13952 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013953 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13954 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013955 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13956 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013957 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13958 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013959 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13960 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013961 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13962 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013963 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13964 MSM_BACKEND_DAI_PRI_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080013965 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13966 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013967};
13968
13969static const struct snd_kcontrol_new usb_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013970 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
13971 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013972 MSM_BACKEND_DAI_USB_TX, 1, 0, msm_routing_get_port_mixer,
13973 msm_routing_put_port_mixer),
13974};
13975
13976static const struct snd_kcontrol_new quat_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013977 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13978 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013979 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13980 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013981 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13982 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013983 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13984 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013985 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13986 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013987 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13988 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013989 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13990 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013991 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13992 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013993 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13994 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013995 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13996 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013997 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13998 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013999 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14000 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014001 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14002 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014003 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14004 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014005 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14006 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014007 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14008 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014009 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14010 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014011 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14012 msm_routing_put_port_mixer),
14013};
14014
Rohit Kumara5077932017-09-10 22:05:05 +053014015static const struct snd_kcontrol_new quin_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014016 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14017 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014018 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14019 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014020 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14021 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014022 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14023 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014024 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14025 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014026 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14027 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014028 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14029 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014030 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14031 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014032 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14033 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014034 MSM_BACKEND_DAI_QUINARY_MI2S_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("SEC_MI2S_TX", SND_SOC_NOPM,
14037 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014038 MSM_BACKEND_DAI_SECONDARY_MI2S_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_8_TX", SND_SOC_NOPM,
14041 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014042 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14043 msm_routing_put_port_mixer),
14044};
14045
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014046static const struct snd_kcontrol_new pri_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014047 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14048 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014049 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14050 msm_routing_get_port_mixer,
14051 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014052 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14053 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014054 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14055 msm_routing_get_port_mixer,
14056 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014057 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14058 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014059 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14060 msm_routing_get_port_mixer,
14061 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014062 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14063 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014064 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14065 msm_routing_get_port_mixer,
14066 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014067 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14068 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014069 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14070 msm_routing_get_port_mixer,
14071 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014072 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14073 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014074 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14075 msm_routing_get_port_mixer,
14076 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014077 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14078 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014079 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14080 msm_routing_get_port_mixer,
14081 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014082 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14083 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014084 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14085 msm_routing_get_port_mixer,
14086 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014087 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14088 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014089 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14090 msm_routing_get_port_mixer,
14091 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014092 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14093 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014094 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14095 msm_routing_get_port_mixer,
14096 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014097 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14098 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014099 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14100 msm_routing_get_port_mixer,
14101 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014102 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14103 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014104 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14105 msm_routing_get_port_mixer,
14106 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014107 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14108 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014109 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14110 msm_routing_get_port_mixer,
14111 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014112 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14113 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014114 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14115 msm_routing_get_port_mixer,
14116 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014117 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14118 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014119 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14120 msm_routing_get_port_mixer,
14121 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014122 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14123 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014124 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14125 msm_routing_get_port_mixer,
14126 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014127 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14128 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014129 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14130 msm_routing_get_port_mixer,
14131 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014132 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14133 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014134 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14135 msm_routing_get_port_mixer,
14136 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014137 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14138 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014139 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14140 msm_routing_get_port_mixer,
14141 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014142 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14143 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014144 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14145 msm_routing_get_port_mixer,
14146 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014147};
14148
14149static const struct snd_kcontrol_new pri_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014150 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14151 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014152 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14153 msm_routing_get_port_mixer,
14154 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014155 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14156 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014157 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14158 msm_routing_get_port_mixer,
14159 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014160 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14161 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014162 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14163 msm_routing_get_port_mixer,
14164 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014165 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14166 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014167 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14168 msm_routing_get_port_mixer,
14169 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014170 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14171 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014172 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14173 msm_routing_get_port_mixer,
14174 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014175 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14176 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014177 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14178 msm_routing_get_port_mixer,
14179 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014180 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14181 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014182 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14183 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_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014187 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14188 msm_routing_get_port_mixer,
14189 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014190 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14191 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014192 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14193 msm_routing_get_port_mixer,
14194 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014195 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14196 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014197 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14198 msm_routing_get_port_mixer,
14199 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014200 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14201 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014202 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14203 msm_routing_get_port_mixer,
14204 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014205 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14206 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014207 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14208 msm_routing_get_port_mixer,
14209 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014210 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14211 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014212 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14213 msm_routing_get_port_mixer,
14214 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014215 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14216 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014217 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14218 msm_routing_get_port_mixer,
14219 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014220 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14221 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014222 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14223 msm_routing_get_port_mixer,
14224 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014225 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14226 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014227 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14228 msm_routing_get_port_mixer,
14229 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014230 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14231 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014232 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14233 msm_routing_get_port_mixer,
14234 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014235 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14236 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014237 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14238 msm_routing_get_port_mixer,
14239 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014240 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14241 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014242 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14243 msm_routing_get_port_mixer,
14244 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014245 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14246 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014247 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14248 msm_routing_get_port_mixer,
14249 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014250};
14251
14252static const struct snd_kcontrol_new pri_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014253 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14254 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014255 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14256 msm_routing_get_port_mixer,
14257 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014258 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14259 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014260 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14261 msm_routing_get_port_mixer,
14262 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014263 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14264 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014265 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14266 msm_routing_get_port_mixer,
14267 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014268 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14269 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014270 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14271 msm_routing_get_port_mixer,
14272 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014273 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14274 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014275 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14276 msm_routing_get_port_mixer,
14277 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014278 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14279 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014280 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14281 msm_routing_get_port_mixer,
14282 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014283 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14284 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014285 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14286 msm_routing_get_port_mixer,
14287 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014288 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14289 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014290 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14291 msm_routing_get_port_mixer,
14292 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014293 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14294 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014295 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14296 msm_routing_get_port_mixer,
14297 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014298 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14299 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014300 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14301 msm_routing_get_port_mixer,
14302 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014303 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14304 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014305 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14306 msm_routing_get_port_mixer,
14307 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014308 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14309 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014310 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14311 msm_routing_get_port_mixer,
14312 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014313 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14314 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014315 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14316 msm_routing_get_port_mixer,
14317 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014318 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14319 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014320 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14321 msm_routing_get_port_mixer,
14322 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014323 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14324 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014325 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14326 msm_routing_get_port_mixer,
14327 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014328 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14329 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014330 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14331 msm_routing_get_port_mixer,
14332 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014333 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14334 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014335 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14336 msm_routing_get_port_mixer,
14337 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014338 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14339 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014340 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14341 msm_routing_get_port_mixer,
14342 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014343 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14344 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014345 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14346 msm_routing_get_port_mixer,
14347 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014348 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14349 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014350 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14351 msm_routing_get_port_mixer,
14352 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014353};
14354
14355static const struct snd_kcontrol_new pri_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014356 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14357 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014358 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14359 msm_routing_get_port_mixer,
14360 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014361 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14362 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014363 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14364 msm_routing_get_port_mixer,
14365 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014366 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14367 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014368 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14369 msm_routing_get_port_mixer,
14370 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014371 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14372 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014373 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14374 msm_routing_get_port_mixer,
14375 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014376 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14377 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014378 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14379 msm_routing_get_port_mixer,
14380 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014381 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14382 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014383 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14384 msm_routing_get_port_mixer,
14385 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014386 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14387 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014388 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14389 msm_routing_get_port_mixer,
14390 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014391 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14392 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014393 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14394 msm_routing_get_port_mixer,
14395 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014396 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14397 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014398 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14399 msm_routing_get_port_mixer,
14400 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014401 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14402 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014403 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14404 msm_routing_get_port_mixer,
14405 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014406 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14407 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014408 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14409 msm_routing_get_port_mixer,
14410 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014411 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14412 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014413 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14414 msm_routing_get_port_mixer,
14415 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014416 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14417 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014418 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14419 msm_routing_get_port_mixer,
14420 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014421 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14422 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014423 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14424 msm_routing_get_port_mixer,
14425 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014426 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14427 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014428 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14429 msm_routing_get_port_mixer,
14430 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014431 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14432 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014433 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14434 msm_routing_get_port_mixer,
14435 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014436 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14437 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014438 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14439 msm_routing_get_port_mixer,
14440 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014441 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14442 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014443 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14444 msm_routing_get_port_mixer,
14445 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014446 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14447 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014448 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14449 msm_routing_get_port_mixer,
14450 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014451 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14452 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014453 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14454 msm_routing_get_port_mixer,
14455 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014456};
14457
14458static const struct snd_kcontrol_new sec_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014459 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14460 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014461 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14462 msm_routing_get_port_mixer,
14463 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014464 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14465 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014466 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14467 msm_routing_get_port_mixer,
14468 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014469 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14470 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014471 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14472 msm_routing_get_port_mixer,
14473 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014474 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14475 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014476 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14477 msm_routing_get_port_mixer,
14478 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014479 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14480 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014481 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14482 msm_routing_get_port_mixer,
14483 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014484 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14485 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014486 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14487 msm_routing_get_port_mixer,
14488 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014489 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14490 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014491 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14492 msm_routing_get_port_mixer,
14493 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014494 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14495 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014496 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14497 msm_routing_get_port_mixer,
14498 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014499 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14500 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014501 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14502 msm_routing_get_port_mixer,
14503 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014504 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14505 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014506 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
14507 msm_routing_get_port_mixer,
14508 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014509 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14510 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014511 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
14512 msm_routing_get_port_mixer,
14513 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014514 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14515 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014516 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
14517 msm_routing_get_port_mixer,
14518 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014519 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14520 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014521 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14522 msm_routing_get_port_mixer,
14523 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014524 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14525 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014526 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14527 msm_routing_get_port_mixer,
14528 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014529 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14530 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014531 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14532 msm_routing_get_port_mixer,
14533 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014534 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14535 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014536 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14537 msm_routing_get_port_mixer,
14538 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014539 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14540 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014541 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14542 msm_routing_get_port_mixer,
14543 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014544 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14545 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014546 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14547 msm_routing_get_port_mixer,
14548 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014549 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14550 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014551 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14552 msm_routing_get_port_mixer,
14553 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014554 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14555 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014556 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14557 msm_routing_get_port_mixer,
14558 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014559};
14560
14561static const struct snd_kcontrol_new sec_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014562 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14563 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014564 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14565 msm_routing_get_port_mixer,
14566 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014567 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14568 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014569 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14570 msm_routing_get_port_mixer,
14571 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014572 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14573 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014574 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14575 msm_routing_get_port_mixer,
14576 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014577 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14578 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014579 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14580 msm_routing_get_port_mixer,
14581 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014582 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14583 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014584 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14585 msm_routing_get_port_mixer,
14586 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014587 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14588 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014589 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14590 msm_routing_get_port_mixer,
14591 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014592 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14593 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014594 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14595 msm_routing_get_port_mixer,
14596 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014597 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14598 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014599 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14600 msm_routing_get_port_mixer,
14601 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014602 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14603 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014604 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14605 msm_routing_get_port_mixer,
14606 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014607 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14608 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014609 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
14610 msm_routing_get_port_mixer,
14611 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014612 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14613 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014614 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
14615 msm_routing_get_port_mixer,
14616 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014617 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14618 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014619 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
14620 msm_routing_get_port_mixer,
14621 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014622 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14623 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014624 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14625 msm_routing_get_port_mixer,
14626 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014627 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14628 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014629 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14630 msm_routing_get_port_mixer,
14631 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014632 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14633 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014634 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14635 msm_routing_get_port_mixer,
14636 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014637 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14638 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014639 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14640 msm_routing_get_port_mixer,
14641 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014642 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14643 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014644 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14645 msm_routing_get_port_mixer,
14646 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014647 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14648 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014649 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14650 msm_routing_get_port_mixer,
14651 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014652 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14653 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014654 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14655 msm_routing_get_port_mixer,
14656 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014657 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14658 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014659 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14660 msm_routing_get_port_mixer,
14661 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014662};
14663
14664static const struct snd_kcontrol_new sec_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014665 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14666 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014667 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14668 msm_routing_get_port_mixer,
14669 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014670 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14671 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014672 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14673 msm_routing_get_port_mixer,
14674 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014675 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14676 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014677 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14678 msm_routing_get_port_mixer,
14679 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014680 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14681 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014682 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14683 msm_routing_get_port_mixer,
14684 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014685 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14686 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014687 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14688 msm_routing_get_port_mixer,
14689 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014690 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14691 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014692 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14693 msm_routing_get_port_mixer,
14694 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014695 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14696 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014697 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14698 msm_routing_get_port_mixer,
14699 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014700 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14701 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014702 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14703 msm_routing_get_port_mixer,
14704 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014705 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14706 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014707 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14708 msm_routing_get_port_mixer,
14709 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014710 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14711 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014712 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
14713 msm_routing_get_port_mixer,
14714 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014715 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14716 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014717 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
14718 msm_routing_get_port_mixer,
14719 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014720 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14721 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014722 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
14723 msm_routing_get_port_mixer,
14724 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014725 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14726 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014727 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14728 msm_routing_get_port_mixer,
14729 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014730 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14731 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014732 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14733 msm_routing_get_port_mixer,
14734 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014735 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14736 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014737 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14738 msm_routing_get_port_mixer,
14739 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014740 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14741 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014742 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14743 msm_routing_get_port_mixer,
14744 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014745 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14746 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014747 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14748 msm_routing_get_port_mixer,
14749 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014750 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14751 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014752 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14753 msm_routing_get_port_mixer,
14754 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014755 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14756 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014757 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14758 msm_routing_get_port_mixer,
14759 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014760 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14761 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014762 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14763 msm_routing_get_port_mixer,
14764 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014765};
14766
14767static const struct snd_kcontrol_new sec_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014768 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14769 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014770 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14771 msm_routing_get_port_mixer,
14772 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014773 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14774 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014775 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14776 msm_routing_get_port_mixer,
14777 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014778 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14779 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014780 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14781 msm_routing_get_port_mixer,
14782 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014783 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14784 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014785 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14786 msm_routing_get_port_mixer,
14787 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014788 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14789 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014790 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14791 msm_routing_get_port_mixer,
14792 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014793 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14794 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014795 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14796 msm_routing_get_port_mixer,
14797 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014798 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14799 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014800 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14801 msm_routing_get_port_mixer,
14802 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014803 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14804 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014805 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14806 msm_routing_get_port_mixer,
14807 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014808 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14809 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014810 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14811 msm_routing_get_port_mixer,
14812 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014813 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14814 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014815 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
14816 msm_routing_get_port_mixer,
14817 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014818 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14819 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014820 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
14821 msm_routing_get_port_mixer,
14822 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014823 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14824 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014825 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
14826 msm_routing_get_port_mixer,
14827 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014828 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14829 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014830 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14831 msm_routing_get_port_mixer,
14832 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014833 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14834 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014835 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14836 msm_routing_get_port_mixer,
14837 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014838 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14839 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014840 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14841 msm_routing_get_port_mixer,
14842 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014843 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14844 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014845 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14846 msm_routing_get_port_mixer,
14847 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014848 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14849 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014850 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14851 msm_routing_get_port_mixer,
14852 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014853 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14854 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014855 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14856 msm_routing_get_port_mixer,
14857 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014858 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14859 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014860 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14861 msm_routing_get_port_mixer,
14862 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014863 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14864 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014865 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14866 msm_routing_get_port_mixer,
14867 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014868};
14869
14870static const struct snd_kcontrol_new tert_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014871 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14872 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014873 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14874 msm_routing_get_port_mixer,
14875 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014876 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14877 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014878 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14879 msm_routing_get_port_mixer,
14880 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014881 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14882 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014883 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14884 msm_routing_get_port_mixer,
14885 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014886 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14887 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014888 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14889 msm_routing_get_port_mixer,
14890 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014891 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14892 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014893 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14894 msm_routing_get_port_mixer,
14895 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014896 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14897 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014898 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14899 msm_routing_get_port_mixer,
14900 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014901 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14902 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014903 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14904 msm_routing_get_port_mixer,
14905 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014906 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14907 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014908 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14909 msm_routing_get_port_mixer,
14910 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014911 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14912 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014913 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
14914 msm_routing_get_port_mixer,
14915 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014916 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
14917 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014918 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
14919 msm_routing_get_port_mixer,
14920 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014921 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
14922 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014923 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
14924 msm_routing_get_port_mixer,
14925 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014926 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
14927 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014928 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
14929 msm_routing_get_port_mixer,
14930 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014931 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14932 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014933 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14934 msm_routing_get_port_mixer,
14935 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014936 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14937 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014938 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14939 msm_routing_get_port_mixer,
14940 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014941 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14942 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014943 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14944 msm_routing_get_port_mixer,
14945 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014946 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14947 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014948 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14949 msm_routing_get_port_mixer,
14950 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014951 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14952 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014953 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14954 msm_routing_get_port_mixer,
14955 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014956 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14957 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014958 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14959 msm_routing_get_port_mixer,
14960 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014961 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14962 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014963 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14964 msm_routing_get_port_mixer,
14965 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014966 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14967 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014968 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14969 msm_routing_get_port_mixer,
14970 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014971};
14972
14973static const struct snd_kcontrol_new tert_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014974 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14975 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014976 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14977 msm_routing_get_port_mixer,
14978 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014979 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14980 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014981 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14982 msm_routing_get_port_mixer,
14983 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014984 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14985 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014986 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14987 msm_routing_get_port_mixer,
14988 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014989 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14990 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014991 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14992 msm_routing_get_port_mixer,
14993 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014994 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14995 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014996 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14997 msm_routing_get_port_mixer,
14998 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014999 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15000 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015001 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15002 msm_routing_get_port_mixer,
15003 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015004 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15005 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015006 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15007 msm_routing_get_port_mixer,
15008 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015009 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15010 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015011 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15012 msm_routing_get_port_mixer,
15013 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015014 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15015 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015016 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15017 msm_routing_get_port_mixer,
15018 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015019 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15020 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015021 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15022 msm_routing_get_port_mixer,
15023 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015024 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15025 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015026 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15027 msm_routing_get_port_mixer,
15028 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015029 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15030 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015031 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15032 msm_routing_get_port_mixer,
15033 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015034 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15035 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015036 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15037 msm_routing_get_port_mixer,
15038 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015039 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15040 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015041 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15042 msm_routing_get_port_mixer,
15043 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015044 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15045 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015046 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15047 msm_routing_get_port_mixer,
15048 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015049 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15050 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015051 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15052 msm_routing_get_port_mixer,
15053 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015054 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15055 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015056 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15057 msm_routing_get_port_mixer,
15058 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015059 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15060 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015061 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15062 msm_routing_get_port_mixer,
15063 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015064 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15065 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015066 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15067 msm_routing_get_port_mixer,
15068 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015069 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15070 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015071 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15072 msm_routing_get_port_mixer,
15073 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015074};
15075
15076static const struct snd_kcontrol_new tert_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015077 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15078 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015079 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15080 msm_routing_get_port_mixer,
15081 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015082 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15083 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015084 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15085 msm_routing_get_port_mixer,
15086 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015087 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15088 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015089 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15090 msm_routing_get_port_mixer,
15091 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015092 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15093 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015094 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15095 msm_routing_get_port_mixer,
15096 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015097 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15098 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015099 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15100 msm_routing_get_port_mixer,
15101 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015102 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15103 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015104 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15105 msm_routing_get_port_mixer,
15106 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015107 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15108 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015109 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15110 msm_routing_get_port_mixer,
15111 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015112 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15113 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015114 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15115 msm_routing_get_port_mixer,
15116 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015117 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15118 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015119 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15120 msm_routing_get_port_mixer,
15121 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015122 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15123 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015124 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15125 msm_routing_get_port_mixer,
15126 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015127 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15128 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015129 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15130 msm_routing_get_port_mixer,
15131 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015132 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15133 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015134 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15135 msm_routing_get_port_mixer,
15136 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015137 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15138 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015139 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15140 msm_routing_get_port_mixer,
15141 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015142 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15143 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015144 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15145 msm_routing_get_port_mixer,
15146 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015147 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15148 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015149 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15150 msm_routing_get_port_mixer,
15151 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015152 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15153 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015154 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15155 msm_routing_get_port_mixer,
15156 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015157 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15158 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015159 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15160 msm_routing_get_port_mixer,
15161 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015162 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15163 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015164 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15165 msm_routing_get_port_mixer,
15166 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015167 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15168 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015169 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15170 msm_routing_get_port_mixer,
15171 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015172 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15173 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015174 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15175 msm_routing_get_port_mixer,
15176 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015177};
15178
15179static const struct snd_kcontrol_new tert_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015180 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15181 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015182 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15183 msm_routing_get_port_mixer,
15184 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015185 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15186 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015187 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15188 msm_routing_get_port_mixer,
15189 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015190 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15191 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015192 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15193 msm_routing_get_port_mixer,
15194 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015195 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15196 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015197 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15198 msm_routing_get_port_mixer,
15199 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015200 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15201 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015202 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15203 msm_routing_get_port_mixer,
15204 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015205 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15206 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015207 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15208 msm_routing_get_port_mixer,
15209 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015210 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15211 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015212 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15213 msm_routing_get_port_mixer,
15214 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015215 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15216 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015217 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15218 msm_routing_get_port_mixer,
15219 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015220 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15221 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015222 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15223 msm_routing_get_port_mixer,
15224 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015225 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15226 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015227 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15228 msm_routing_get_port_mixer,
15229 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015230 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15231 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015232 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15233 msm_routing_get_port_mixer,
15234 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015235 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15236 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015237 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15238 msm_routing_get_port_mixer,
15239 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015240 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15241 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015242 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15243 msm_routing_get_port_mixer,
15244 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015245 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15246 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015247 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15248 msm_routing_get_port_mixer,
15249 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015250 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15251 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015252 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15253 msm_routing_get_port_mixer,
15254 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015255 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15256 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015257 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15258 msm_routing_get_port_mixer,
15259 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015260 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15261 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015262 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15263 msm_routing_get_port_mixer,
15264 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015265 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15266 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015267 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15268 msm_routing_get_port_mixer,
15269 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015270 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15271 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015272 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15273 msm_routing_get_port_mixer,
15274 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015275 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15276 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015277 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15278 msm_routing_get_port_mixer,
15279 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015280};
15281
15282static const struct snd_kcontrol_new quat_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015283 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15284 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015285 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15286 msm_routing_get_port_mixer,
15287 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015288 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15289 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015290 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15291 msm_routing_get_port_mixer,
15292 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015293 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15294 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015295 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15296 msm_routing_get_port_mixer,
15297 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015298 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15299 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015300 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15301 msm_routing_get_port_mixer,
15302 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015303 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15304 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015305 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15306 msm_routing_get_port_mixer,
15307 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015308 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15309 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015310 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15311 msm_routing_get_port_mixer,
15312 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015313 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15314 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015315 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15316 msm_routing_get_port_mixer,
15317 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015318 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15319 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015320 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15321 msm_routing_get_port_mixer,
15322 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015323 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15324 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015325 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15326 msm_routing_get_port_mixer,
15327 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015328 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15329 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015330 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15331 msm_routing_get_port_mixer,
15332 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015333 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15334 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015335 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15336 msm_routing_get_port_mixer,
15337 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015338 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15339 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015340 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15341 msm_routing_get_port_mixer,
15342 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015343 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15344 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015345 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15346 msm_routing_get_port_mixer,
15347 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015348 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15349 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015350 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15351 msm_routing_get_port_mixer,
15352 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015353 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15354 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015355 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15356 msm_routing_get_port_mixer,
15357 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015358 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15359 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015360 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15361 msm_routing_get_port_mixer,
15362 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015363 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15364 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015365 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15366 msm_routing_get_port_mixer,
15367 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015368 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15369 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015370 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15371 msm_routing_get_port_mixer,
15372 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015373 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15374 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015375 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15376 msm_routing_get_port_mixer,
15377 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015378 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15379 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015380 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15381 msm_routing_get_port_mixer,
15382 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015383};
15384
15385static const struct snd_kcontrol_new quat_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015386 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15387 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015388 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15389 msm_routing_get_port_mixer,
15390 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015391 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15392 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015393 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15394 msm_routing_get_port_mixer,
15395 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015396 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15397 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015398 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15399 msm_routing_get_port_mixer,
15400 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015401 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15402 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015403 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15404 msm_routing_get_port_mixer,
15405 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015406 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15407 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015408 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15409 msm_routing_get_port_mixer,
15410 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015411 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15412 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015413 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15414 msm_routing_get_port_mixer,
15415 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015416 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15417 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015418 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15419 msm_routing_get_port_mixer,
15420 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015421 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15422 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015423 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15424 msm_routing_get_port_mixer,
15425 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015426 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15427 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015428 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15429 msm_routing_get_port_mixer,
15430 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015431 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15432 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015433 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15434 msm_routing_get_port_mixer,
15435 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015436 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15437 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015438 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15439 msm_routing_get_port_mixer,
15440 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015441 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15442 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015443 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15444 msm_routing_get_port_mixer,
15445 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015446 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15447 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015448 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15449 msm_routing_get_port_mixer,
15450 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015451 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15452 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015453 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15454 msm_routing_get_port_mixer,
15455 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015456 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15457 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015458 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15459 msm_routing_get_port_mixer,
15460 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015461 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15462 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015463 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15464 msm_routing_get_port_mixer,
15465 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015466 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15467 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015468 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15469 msm_routing_get_port_mixer,
15470 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015471 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15472 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015473 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15474 msm_routing_get_port_mixer,
15475 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015476 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15477 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015478 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15479 msm_routing_get_port_mixer,
15480 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015481 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15482 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015483 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15484 msm_routing_get_port_mixer,
15485 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015486};
15487
15488static const struct snd_kcontrol_new quat_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015489 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15490 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015491 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15492 msm_routing_get_port_mixer,
15493 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015494 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15495 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015496 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15497 msm_routing_get_port_mixer,
15498 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015499 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15500 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015501 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15502 msm_routing_get_port_mixer,
15503 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015504 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15505 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015506 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15507 msm_routing_get_port_mixer,
15508 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015509 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15510 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015511 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15512 msm_routing_get_port_mixer,
15513 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015514 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15515 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015516 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15517 msm_routing_get_port_mixer,
15518 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015519 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15520 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015521 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15522 msm_routing_get_port_mixer,
15523 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015524 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15525 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015526 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15527 msm_routing_get_port_mixer,
15528 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015529 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15530 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015531 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15532 msm_routing_get_port_mixer,
15533 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015534 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15535 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015536 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15537 msm_routing_get_port_mixer,
15538 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015539 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15540 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015541 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15542 msm_routing_get_port_mixer,
15543 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015544 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15545 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015546 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15547 msm_routing_get_port_mixer,
15548 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015549 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15550 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015551 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15552 msm_routing_get_port_mixer,
15553 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015554 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15555 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015556 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15557 msm_routing_get_port_mixer,
15558 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015559 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15560 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015561 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15562 msm_routing_get_port_mixer,
15563 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015564 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15565 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015566 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15567 msm_routing_get_port_mixer,
15568 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015569 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15570 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015571 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15572 msm_routing_get_port_mixer,
15573 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015574 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15575 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015576 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15577 msm_routing_get_port_mixer,
15578 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015579 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15580 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015581 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15582 msm_routing_get_port_mixer,
15583 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015584 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15585 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015586 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15587 msm_routing_get_port_mixer,
15588 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015589};
15590
15591static const struct snd_kcontrol_new quat_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015592 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15593 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015594 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15595 msm_routing_get_port_mixer,
15596 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015597 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15598 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015599 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15600 msm_routing_get_port_mixer,
15601 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015602 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15603 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015604 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15605 msm_routing_get_port_mixer,
15606 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015607 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15608 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015609 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15610 msm_routing_get_port_mixer,
15611 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015612 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15613 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015614 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15615 msm_routing_get_port_mixer,
15616 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015617 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15618 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015619 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15620 msm_routing_get_port_mixer,
15621 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015622 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15623 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015624 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15625 msm_routing_get_port_mixer,
15626 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015627 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15628 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015629 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15630 msm_routing_get_port_mixer,
15631 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015632 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15633 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015634 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15635 msm_routing_get_port_mixer,
15636 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015637 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15638 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015639 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15640 msm_routing_get_port_mixer,
15641 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015642 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15643 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015644 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15645 msm_routing_get_port_mixer,
15646 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015647 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15648 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015649 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15650 msm_routing_get_port_mixer,
15651 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015652 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15653 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015654 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15655 msm_routing_get_port_mixer,
15656 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015657 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15658 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015659 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15660 msm_routing_get_port_mixer,
15661 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015662 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15663 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015664 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15665 msm_routing_get_port_mixer,
15666 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015667 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15668 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015669 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15670 msm_routing_get_port_mixer,
15671 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015672 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15673 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015674 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15675 msm_routing_get_port_mixer,
15676 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015677 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15678 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015679 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15680 msm_routing_get_port_mixer,
15681 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015682 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15683 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015684 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15685 msm_routing_get_port_mixer,
15686 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015687 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15688 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015689 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15690 msm_routing_get_port_mixer,
15691 msm_routing_put_port_mixer),
15692};
15693
15694static const struct snd_kcontrol_new quin_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015695 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15696 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015697 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15698 msm_routing_get_port_mixer,
15699 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015700 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15701 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015702 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15703 msm_routing_get_port_mixer,
15704 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015705 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15706 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015707 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15708 msm_routing_get_port_mixer,
15709 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015710 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15711 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015712 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15713 msm_routing_get_port_mixer,
15714 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015715 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15716 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015717 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15718 msm_routing_get_port_mixer,
15719 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015720 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15721 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015722 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15723 msm_routing_get_port_mixer,
15724 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015725 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15726 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015727 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15728 msm_routing_get_port_mixer,
15729 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015730 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15731 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015732 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15733 msm_routing_get_port_mixer,
15734 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015735 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15736 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015737 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15738 msm_routing_get_port_mixer,
15739 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015740 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15741 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015742 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15743 msm_routing_get_port_mixer,
15744 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015745 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15746 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015747 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15748 msm_routing_get_port_mixer,
15749 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015750 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15751 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015752 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15753 msm_routing_get_port_mixer,
15754 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015755 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15756 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015757 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15758 msm_routing_get_port_mixer,
15759 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015760 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15761 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015762 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15763 msm_routing_get_port_mixer,
15764 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015765 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15766 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015767 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15768 msm_routing_get_port_mixer,
15769 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015770 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15771 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015772 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15773 msm_routing_get_port_mixer,
15774 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015775 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15776 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015777 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15778 msm_routing_get_port_mixer,
15779 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015780 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15781 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015782 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15783 msm_routing_get_port_mixer,
15784 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015785 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15786 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015787 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15788 msm_routing_get_port_mixer,
15789 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015790 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15791 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015792 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15793 msm_routing_get_port_mixer,
15794 msm_routing_put_port_mixer),
15795};
15796
15797static const struct snd_kcontrol_new quin_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015798 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15799 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015800 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15801 msm_routing_get_port_mixer,
15802 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015803 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15804 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015805 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15806 msm_routing_get_port_mixer,
15807 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015808 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15809 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015810 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15811 msm_routing_get_port_mixer,
15812 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015813 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15814 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015815 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15816 msm_routing_get_port_mixer,
15817 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015818 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15819 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015820 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15821 msm_routing_get_port_mixer,
15822 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015823 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15824 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015825 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15826 msm_routing_get_port_mixer,
15827 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015828 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15829 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015830 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15831 msm_routing_get_port_mixer,
15832 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015833 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15834 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015835 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15836 msm_routing_get_port_mixer,
15837 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015838 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15839 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015840 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15841 msm_routing_get_port_mixer,
15842 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015843 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15844 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015845 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15846 msm_routing_get_port_mixer,
15847 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015848 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15849 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015850 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15851 msm_routing_get_port_mixer,
15852 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015853 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15854 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015855 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15856 msm_routing_get_port_mixer,
15857 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015858 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15859 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015860 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15861 msm_routing_get_port_mixer,
15862 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015863 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15864 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015865 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15866 msm_routing_get_port_mixer,
15867 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015868 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15869 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015870 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15871 msm_routing_get_port_mixer,
15872 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015873 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15874 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015875 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15876 msm_routing_get_port_mixer,
15877 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015878 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15879 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015880 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15881 msm_routing_get_port_mixer,
15882 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015883 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15884 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015885 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15886 msm_routing_get_port_mixer,
15887 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015888 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15889 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015890 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15891 msm_routing_get_port_mixer,
15892 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015893 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15894 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015895 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15896 msm_routing_get_port_mixer,
15897 msm_routing_put_port_mixer),
15898};
15899
15900static const struct snd_kcontrol_new quin_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015901 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15902 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015903 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15904 msm_routing_get_port_mixer,
15905 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015906 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15907 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015908 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15909 msm_routing_get_port_mixer,
15910 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015911 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15912 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015913 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15914 msm_routing_get_port_mixer,
15915 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015916 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15917 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015918 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15919 msm_routing_get_port_mixer,
15920 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015921 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15922 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015923 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15924 msm_routing_get_port_mixer,
15925 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015926 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15927 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015928 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15929 msm_routing_get_port_mixer,
15930 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015931 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15932 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015933 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15934 msm_routing_get_port_mixer,
15935 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015936 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15937 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015938 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15939 msm_routing_get_port_mixer,
15940 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015941 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15942 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015943 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15944 msm_routing_get_port_mixer,
15945 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015946 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15947 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015948 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15949 msm_routing_get_port_mixer,
15950 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015951 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15952 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015953 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15954 msm_routing_get_port_mixer,
15955 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015956 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15957 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015958 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15959 msm_routing_get_port_mixer,
15960 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015961 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15962 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015963 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15964 msm_routing_get_port_mixer,
15965 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015966 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15967 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015968 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15969 msm_routing_get_port_mixer,
15970 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015971 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15972 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015973 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15974 msm_routing_get_port_mixer,
15975 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015976 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15977 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015978 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15979 msm_routing_get_port_mixer,
15980 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015981 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15982 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015983 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15984 msm_routing_get_port_mixer,
15985 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015986 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15987 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015988 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15989 msm_routing_get_port_mixer,
15990 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015991 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15992 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015993 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15994 msm_routing_get_port_mixer,
15995 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015996 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15997 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015998 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15999 msm_routing_get_port_mixer,
16000 msm_routing_put_port_mixer),
16001};
16002
16003static const struct snd_kcontrol_new quin_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016004 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16005 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016006 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16007 msm_routing_get_port_mixer,
16008 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016009 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16010 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016011 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16012 msm_routing_get_port_mixer,
16013 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016014 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16015 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016016 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16017 msm_routing_get_port_mixer,
16018 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016019 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16020 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016021 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16022 msm_routing_get_port_mixer,
16023 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016024 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16025 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016026 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16027 msm_routing_get_port_mixer,
16028 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016029 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16030 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016031 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16032 msm_routing_get_port_mixer,
16033 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016034 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16035 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016036 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16037 msm_routing_get_port_mixer,
16038 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016039 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16040 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016041 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16042 msm_routing_get_port_mixer,
16043 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016044 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16045 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016046 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16047 msm_routing_get_port_mixer,
16048 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016049 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16050 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016051 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16052 msm_routing_get_port_mixer,
16053 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016054 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16055 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016056 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16057 msm_routing_get_port_mixer,
16058 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016059 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16060 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016061 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16062 msm_routing_get_port_mixer,
16063 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016064 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16065 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016066 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16067 msm_routing_get_port_mixer,
16068 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016069 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16070 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016071 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16072 msm_routing_get_port_mixer,
16073 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016074 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16075 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016076 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16077 msm_routing_get_port_mixer,
16078 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016079 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16080 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016081 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16082 msm_routing_get_port_mixer,
16083 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016084 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16085 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016086 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16087 msm_routing_get_port_mixer,
16088 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016089 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16090 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016091 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16092 msm_routing_get_port_mixer,
16093 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016094 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16095 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016096 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16097 msm_routing_get_port_mixer,
16098 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016099 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16100 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016101 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16102 msm_routing_get_port_mixer,
16103 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016104};
16105
16106static const struct snd_kcontrol_new tert_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016107 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16108 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016109 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16110 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016111 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16112 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016113 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16114 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016115 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16116 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016117 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16118 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016119 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16120 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016121 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16122 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016123 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
16124 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016125 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16126 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016127 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16128 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016129 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16130 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016131 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16132 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016133 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16134 msm_routing_put_port_mixer),
16135};
16136
16137static const struct snd_kcontrol_new sec_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016138 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16139 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016140 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16141 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016142 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16143 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016144 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16145 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016146 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16147 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016148 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16149 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016150 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16151 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016152 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16153 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016154 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
16155 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016156 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16157 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016158 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16159 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016160 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16161 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016162 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16163 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016164 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
16165 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016166 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16167 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016168 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16169 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016170 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16171 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080016172 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16173 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016174};
16175
16176static const struct snd_kcontrol_new lsm1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016177 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16178 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016179 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16180 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016181 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16182 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016183 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16184 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016185 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16186 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016187 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16188 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016189 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16190 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016191 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16192 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016193 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16194 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016195 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16196 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016197 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16198 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016199 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16200 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016201 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16202 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016203 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16204 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016205 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16206 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016207 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16208 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016209 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16210 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16211 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16212 msm_routing_put_listen_mixer),
16213 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16214 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16215 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16216 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016217 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16218 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16219 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16220 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016221 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16222 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16223 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16224 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016225};
16226
16227static const struct snd_kcontrol_new lsm2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016228 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16229 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016230 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16231 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016232 SOC_DOUBLE_EXT("SLIMBUS_1_TX",
16233 SND_SOC_NOPM,
16234 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016235 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16236 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016237 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16238 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016239 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16240 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016241 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16242 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016243 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16244 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016245 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16246 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016247 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16248 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016249 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16250 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016251 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16252 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016253 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16254 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016255 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16256 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016257 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16258 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016259 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16260 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016261 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16262 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16263 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16264 msm_routing_put_listen_mixer),
16265 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16266 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16267 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16268 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016269 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16270 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16271 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16272 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016273 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16274 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16275 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16276 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016277};
16278
16279static const struct snd_kcontrol_new lsm3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016280 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16281 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016282 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16283 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016284 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16285 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016286 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16287 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016288 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16289 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016290 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16291 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016292 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16293 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016294 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16295 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016296 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16297 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016298 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16299 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016300 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16301 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016302 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16303 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016304 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16305 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016306 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16307 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016308 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16309 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016310 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16311 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016312 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16313 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16314 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16315 msm_routing_put_listen_mixer),
16316 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16317 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16318 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16319 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016320 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16321 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16322 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16323 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016324 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16325 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16326 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16327 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016328};
16329
16330static const struct snd_kcontrol_new lsm4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016331 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16332 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016333 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16334 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016335 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16336 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016337 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16338 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016339 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16340 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016341 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16342 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016343 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16344 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016345 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16346 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016347 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16348 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016349 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16350 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016351 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16352 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016353 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16354 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016355 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16356 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016357 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16358 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016359 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16360 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016361 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16362 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016363 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16364 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16365 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16366 msm_routing_put_listen_mixer),
16367 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16368 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16369 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16370 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016371 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16372 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16373 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16374 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016375 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16376 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16377 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16378 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016379};
16380
16381static const struct snd_kcontrol_new lsm5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016382 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16383 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016384 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16385 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016386 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16387 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016388 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16389 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016390 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16391 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016392 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16393 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016394 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16395 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016396 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16397 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016398 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16399 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016400 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16401 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016402 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16403 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016404 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16405 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016406 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16407 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016408 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16409 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016410 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16411 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016412 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16413 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016414 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16415 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16416 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16417 msm_routing_put_listen_mixer),
16418 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16419 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16420 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16421 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016422 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16423 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16424 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16425 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016426 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16427 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16428 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16429 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016430};
16431
16432static const struct snd_kcontrol_new lsm6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016433 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16434 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016435 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16436 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016437 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16438 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016439 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16440 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016441 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16442 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016443 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16444 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016445 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16446 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016447 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16448 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016449 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16450 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016451 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16452 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016453 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16454 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016455 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16456 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016457 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16458 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016459 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16460 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016461 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16462 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016463 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16464 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016465 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16466 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16467 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16468 msm_routing_put_listen_mixer),
16469 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16470 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16471 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16472 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016473 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16474 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16475 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16476 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016477 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16478 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16479 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16480 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016481};
16482
16483static const struct snd_kcontrol_new lsm7_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016484 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16485 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016486 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16487 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016488 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16489 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016490 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16491 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016492 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16493 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016494 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16495 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016496 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16497 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016498 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16499 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016500 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16501 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016502 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16503 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016504 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16505 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016506 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16507 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016508 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16509 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016510 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16511 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016512 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16513 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016514 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16515 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016516 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16517 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16518 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16519 msm_routing_put_listen_mixer),
16520 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16521 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16522 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16523 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016524 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16525 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16526 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16527 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016528 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16529 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16530 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16531 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016532};
16533
16534static const struct snd_kcontrol_new lsm8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016535 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16536 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016537 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16538 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016539 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16540 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016541 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16542 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016543 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16544 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016545 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16546 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016547 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16548 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016549 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16550 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016551 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16552 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016553 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16554 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016555 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16556 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016557 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16558 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016559 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16560 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016561 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16562 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016563 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16564 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016565 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16566 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016567 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16568 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16569 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16570 msm_routing_put_listen_mixer),
16571 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16572 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16573 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16574 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016575 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16576 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16577 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16578 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016579 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16580 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16581 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16582 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016583};
16584
16585static const struct snd_kcontrol_new slim_fm_switch_mixer_controls =
16586 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16587 0, 1, 0, msm_routing_get_switch_mixer,
16588 msm_routing_put_switch_mixer);
16589
16590static const struct snd_kcontrol_new slim1_fm_switch_mixer_controls =
16591 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16592 0, 1, 0, msm_routing_get_switch_mixer,
16593 msm_routing_put_switch_mixer);
16594
16595static const struct snd_kcontrol_new slim3_fm_switch_mixer_controls =
16596 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16597 0, 1, 0, msm_routing_get_switch_mixer,
16598 msm_routing_put_switch_mixer);
16599
16600static const struct snd_kcontrol_new slim4_fm_switch_mixer_controls =
16601 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16602 0, 1, 0, msm_routing_get_switch_mixer,
16603 msm_routing_put_switch_mixer);
16604
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053016605static const struct snd_kcontrol_new cdc_dma_wsa_switch_mixer_controls =
16606 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16607 0, 1, 0, msm_routing_get_switch_mixer,
16608 msm_routing_put_switch_mixer);
16609
16610static const struct snd_kcontrol_new cdc_dma_rx_switch_mixer_controls =
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053016611 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16612 0, 1, 0, msm_routing_get_switch_mixer,
16613 msm_routing_put_switch_mixer);
16614
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016615static const struct snd_kcontrol_new slim6_fm_switch_mixer_controls =
16616 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16617 0, 1, 0, msm_routing_get_switch_mixer,
16618 msm_routing_put_switch_mixer);
16619
16620static const struct snd_kcontrol_new pcm_rx_switch_mixer_controls =
16621 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16622 0, 1, 0, msm_routing_get_fm_pcmrx_switch_mixer,
16623 msm_routing_put_fm_pcmrx_switch_mixer);
16624
16625static const struct snd_kcontrol_new int0_mi2s_rx_switch_mixer_controls =
16626 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16627 0, 1, 0, msm_routing_get_int0_mi2s_switch_mixer,
16628 msm_routing_put_int0_mi2s_switch_mixer);
16629
16630static const struct snd_kcontrol_new int4_mi2s_rx_switch_mixer_controls =
16631 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16632 0, 1, 0, msm_routing_get_int4_mi2s_switch_mixer,
16633 msm_routing_put_int4_mi2s_switch_mixer);
16634
16635static const struct snd_kcontrol_new pri_mi2s_rx_switch_mixer_controls =
16636 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16637 0, 1, 0, msm_routing_get_pri_mi2s_switch_mixer,
16638 msm_routing_put_pri_mi2s_switch_mixer);
16639
16640static const struct snd_kcontrol_new sec_mi2s_rx_switch_mixer_controls =
16641 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16642 0, 1, 0, msm_routing_get_sec_mi2s_switch_mixer,
16643 msm_routing_put_sec_mi2s_switch_mixer);
16644
16645static const struct snd_kcontrol_new tert_mi2s_rx_switch_mixer_controls =
16646 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16647 0, 1, 0, msm_routing_get_tert_mi2s_switch_mixer,
16648 msm_routing_put_tert_mi2s_switch_mixer);
16649
16650static const struct snd_kcontrol_new quat_mi2s_rx_switch_mixer_controls =
16651 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16652 0, 1, 0, msm_routing_get_quat_mi2s_switch_mixer,
16653 msm_routing_put_quat_mi2s_switch_mixer);
16654
Rohit Kumara5077932017-09-10 22:05:05 +053016655static const struct snd_kcontrol_new quin_mi2s_rx_switch_mixer_controls =
16656 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16657 0, 1, 0, msm_routing_get_quin_mi2s_switch_mixer,
16658 msm_routing_put_quin_mi2s_switch_mixer);
16659
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016660static const struct snd_kcontrol_new hfp_pri_aux_switch_mixer_controls =
16661 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16662 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16663 msm_routing_put_hfp_switch_mixer);
16664
16665static const struct snd_kcontrol_new hfp_aux_switch_mixer_controls =
16666 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16667 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16668 msm_routing_put_hfp_switch_mixer);
16669
16670static const struct snd_kcontrol_new hfp_int_switch_mixer_controls =
16671 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16672 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16673 msm_routing_put_hfp_switch_mixer);
16674
16675static const struct snd_kcontrol_new hfp_slim7_switch_mixer_controls =
16676 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16677 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16678 msm_routing_put_hfp_switch_mixer);
16679
16680static const struct snd_kcontrol_new usb_switch_mixer_controls =
16681 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16682 0, 1, 0, msm_routing_get_usb_switch_mixer,
16683 msm_routing_put_usb_switch_mixer);
16684
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080016685static const struct snd_kcontrol_new a2dp_slim7_switch_mixer_controls =
16686 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16687 0, 1, 0, msm_routing_a2dp_switch_mixer_get,
16688 msm_routing_a2dp_switch_mixer_put);
16689
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016690static const struct soc_enum lsm_port_enum =
16691 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_port_text), lsm_port_text);
16692
16693static const char * const lsm_func_text[] = {
16694 "None", "AUDIO", "BEACON", "ULTRASOUND", "SWAUDIO",
16695};
16696static const struct soc_enum lsm_func_enum =
16697 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_func_text), lsm_func_text);
16698
16699static const struct snd_kcontrol_new lsm_controls[] = {
16700 /* kcontrol of lsm_function */
16701 SOC_ENUM_EXT(SLIMBUS_0_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16702 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16703 SOC_ENUM_EXT(SLIMBUS_1_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16704 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16705 SOC_ENUM_EXT(SLIMBUS_2_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16706 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16707 SOC_ENUM_EXT(SLIMBUS_3_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16708 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16709 SOC_ENUM_EXT(SLIMBUS_4_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16710 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16711 SOC_ENUM_EXT(SLIMBUS_5_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16712 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16713 SOC_ENUM_EXT(TERT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16714 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16715 SOC_ENUM_EXT(QUAT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16716 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16717 SOC_ENUM_EXT(INT3_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16718 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016719 SOC_ENUM_EXT(TX_CDC_DMA_TX_3_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16720 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016721 SOC_ENUM_EXT(QUIN_TDM_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16722 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016723 /* kcontrol of lsm_port */
16724 SOC_ENUM_EXT("LSM1 Port", lsm_port_enum,
16725 msm_routing_lsm_port_get,
16726 msm_routing_lsm_port_put),
16727 SOC_ENUM_EXT("LSM2 Port", lsm_port_enum,
16728 msm_routing_lsm_port_get,
16729 msm_routing_lsm_port_put),
16730 SOC_ENUM_EXT("LSM3 Port", lsm_port_enum,
16731 msm_routing_lsm_port_get,
16732 msm_routing_lsm_port_put),
16733 SOC_ENUM_EXT("LSM4 Port", lsm_port_enum,
16734 msm_routing_lsm_port_get,
16735 msm_routing_lsm_port_put),
16736 SOC_ENUM_EXT("LSM5 Port", lsm_port_enum,
16737 msm_routing_lsm_port_get,
16738 msm_routing_lsm_port_put),
16739 SOC_ENUM_EXT("LSM6 Port", lsm_port_enum,
16740 msm_routing_lsm_port_get,
16741 msm_routing_lsm_port_put),
16742 SOC_ENUM_EXT("LSM7 Port", lsm_port_enum,
16743 msm_routing_lsm_port_get,
16744 msm_routing_lsm_port_put),
16745 SOC_ENUM_EXT("LSM8 Port", lsm_port_enum,
16746 msm_routing_lsm_port_get,
16747 msm_routing_lsm_port_put),
16748};
16749
16750static const char * const aanc_slim_0_rx_text[] = {
16751 "ZERO", "SLIMBUS_0_TX", "SLIMBUS_1_TX", "SLIMBUS_2_TX", "SLIMBUS_3_TX",
16752 "SLIMBUS_4_TX", "SLIMBUS_5_TX", "SLIMBUS_6_TX"
16753};
16754
16755static const struct soc_enum aanc_slim_0_rx_enum =
16756 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(aanc_slim_0_rx_text),
16757 aanc_slim_0_rx_text);
16758
16759static const struct snd_kcontrol_new aanc_slim_0_rx_mux[] = {
16760 SOC_ENUM_EXT("AANC_SLIM_0_RX MUX", aanc_slim_0_rx_enum,
16761 msm_routing_slim_0_rx_aanc_mux_get,
16762 msm_routing_slim_0_rx_aanc_mux_put)
16763};
16764
Sudheer Papothic07b37a2018-05-04 05:56:47 +053016765static int msm_routing_aanc_noise_level_get(struct snd_kcontrol *kcontrol,
16766 struct snd_ctl_elem_value *ucontrol)
16767{
16768 ucontrol->value.integer.value[0] = aanc_level;
16769
16770 return 0;
16771}
16772
16773static int msm_routing_aanc_noise_level_put(struct snd_kcontrol *kcontrol,
16774 struct snd_ctl_elem_value *ucontrol)
16775{
16776 int ret = 0;
16777
16778 mutex_lock(&routing_lock);
16779 aanc_level = ucontrol->value.integer.value[0];
16780 pr_debug("%s: value: %ld\n",
16781 __func__, ucontrol->value.integer.value[0]);
16782 ret = afe_set_aanc_noise_level(aanc_level);
16783 mutex_unlock(&routing_lock);
16784
16785 return ret;
16786}
16787
16788static const struct snd_kcontrol_new aanc_noise_level[] = {
16789 SOC_SINGLE_EXT("AANC Noise Level", SND_SOC_NOPM, 0, 255,
16790 0, msm_routing_aanc_noise_level_get, msm_routing_aanc_noise_level_put)
16791};
16792
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016793static int msm_routing_get_stereo_to_custom_stereo_control(
16794 struct snd_kcontrol *kcontrol,
16795 struct snd_ctl_elem_value *ucontrol)
16796{
16797 ucontrol->value.integer.value[0] = is_custom_stereo_on;
16798 return 0;
16799}
16800
16801static int msm_routing_put_stereo_to_custom_stereo_control(
16802 struct snd_kcontrol *kcontrol,
16803 struct snd_ctl_elem_value *ucontrol)
16804{
16805 int flag = 0, i = 0, rc = 0, idx = 0;
16806 int be_index = 0, port_id, topo_id;
16807 unsigned int session_id = 0;
16808 uint16_t op_FL_ip_FL_weight = 0;
16809 uint16_t op_FL_ip_FR_weight = 0;
16810 uint16_t op_FR_ip_FL_weight = 0;
16811 uint16_t op_FR_ip_FR_weight = 0;
16812
16813 flag = ucontrol->value.integer.value[0];
16814 pr_debug("%s E flag %d\n", __func__, flag);
16815
16816 if ((is_custom_stereo_on && flag) || (!is_custom_stereo_on && !flag)) {
16817 pr_err("%s: is_custom_stereo_on %d, flag %d\n",
16818 __func__, is_custom_stereo_on, flag);
16819 return 0;
16820 }
16821 is_custom_stereo_on = flag ? true : false;
16822 pr_debug("%s:is_custom_stereo_on %d\n", __func__, is_custom_stereo_on);
16823 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
16824 port_id = msm_bedais[be_index].port_id;
16825 if (!msm_bedais[be_index].active)
16826 continue;
16827 if ((port_id != SLIMBUS_0_RX) &&
16828 (port_id != RT_PROXY_PORT_001_RX) &&
16829 (port_id != AFE_PORT_ID_PRIMARY_MI2S_RX) &&
16830 (port_id != AFE_PORT_ID_INT4_MI2S_RX))
16831 continue;
16832
16833 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
16834 MSM_FRONTEND_DAI_MM_SIZE) {
16835 if (fe_dai_map[i][SESSION_TYPE_RX].perf_mode !=
16836 LEGACY_PCM_MODE)
16837 goto skip_send_custom_stereo;
16838 session_id =
16839 fe_dai_map[i][SESSION_TYPE_RX].strm_id;
16840 if (is_custom_stereo_on) {
16841 op_FL_ip_FL_weight =
16842 Q14_GAIN_ZERO_POINT_FIVE;
16843 op_FL_ip_FR_weight =
16844 Q14_GAIN_ZERO_POINT_FIVE;
16845 op_FR_ip_FL_weight =
16846 Q14_GAIN_ZERO_POINT_FIVE;
16847 op_FR_ip_FR_weight =
16848 Q14_GAIN_ZERO_POINT_FIVE;
16849 } else {
16850 op_FL_ip_FL_weight = Q14_GAIN_UNITY;
16851 op_FL_ip_FR_weight = 0;
16852 op_FR_ip_FL_weight = 0;
16853 op_FR_ip_FR_weight = Q14_GAIN_UNITY;
16854 }
16855 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
16856 unsigned long copp =
16857 session_copp_map[i]
16858 [SESSION_TYPE_RX][be_index];
16859 if (!test_bit(idx, &copp))
16860 goto skip_send_custom_stereo;
16861 topo_id = adm_get_topology_for_port_copp_idx(
16862 msm_bedais[be_index].port_id, idx);
16863 if (topo_id < 0)
16864 pr_debug("%s:Err:custom stereo topo %d",
16865 __func__, topo_id);
16866 pr_debug("idx %d\n", idx);
16867 if (topo_id == DS2_ADM_COPP_TOPOLOGY_ID)
16868 rc = msm_ds2_dap_set_custom_stereo_onoff
16869 (msm_bedais[be_index].port_id,
16870 idx, is_custom_stereo_on);
16871 else if (topo_id == DOLBY_ADM_COPP_TOPOLOGY_ID)
16872 rc = dolby_dap_set_custom_stereo_onoff(
16873 msm_bedais[be_index].port_id,
16874 idx, is_custom_stereo_on);
16875 else
16876 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd
16877 (msm_bedais[be_index].port_id,
16878 idx, session_id,
16879 op_FL_ip_FL_weight,
16880 op_FL_ip_FR_weight,
16881 op_FR_ip_FL_weight,
16882 op_FR_ip_FR_weight);
16883 if (rc < 0)
16884skip_send_custom_stereo:
16885 pr_err("%s: err setting custom stereo\n",
16886 __func__);
16887 }
16888
16889 }
16890 }
16891 return 0;
16892}
16893
16894static const struct snd_kcontrol_new stereo_to_custom_stereo_controls[] = {
16895 SOC_SINGLE_EXT("Set Custom Stereo OnOff", SND_SOC_NOPM, 0,
16896 1, 0, msm_routing_get_stereo_to_custom_stereo_control,
16897 msm_routing_put_stereo_to_custom_stereo_control),
16898};
16899
16900static int msm_routing_get_app_type_cfg_control(struct snd_kcontrol *kcontrol,
16901 struct snd_ctl_elem_value *ucontrol)
16902{
16903 return 0;
16904}
16905
16906static int msm_routing_put_app_type_cfg_control(struct snd_kcontrol *kcontrol,
16907 struct snd_ctl_elem_value *ucontrol)
16908{
16909 int i = 0, j;
16910 int num_app_types = ucontrol->value.integer.value[i++];
16911
16912 pr_debug("%s\n", __func__);
16913
16914 memset(app_type_cfg, 0, MAX_APP_TYPES*
16915 sizeof(struct msm_pcm_routing_app_type_data));
16916 if (num_app_types > MAX_APP_TYPES) {
16917 pr_err("%s: number of app types exceed the max supported\n",
16918 __func__);
16919 return -EINVAL;
16920 }
16921 for (j = 0; j < num_app_types; j++) {
16922 app_type_cfg[j].app_type =
16923 ucontrol->value.integer.value[i++];
16924 app_type_cfg[j].sample_rate =
16925 ucontrol->value.integer.value[i++];
16926 app_type_cfg[j].bit_width =
16927 ucontrol->value.integer.value[i++];
16928 }
16929
16930 return 0;
16931}
16932
16933static int msm_routing_put_app_type_gain_control(struct snd_kcontrol *kcontrol,
16934 struct snd_ctl_elem_value *ucontrol)
16935{
16936 int j, fe_id, be_id, port_type;
16937 int ret = 0;
16938 unsigned long copp;
16939 struct msm_pcm_routing_bdai_data *bedai;
16940 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
16941 SESSION_TYPE_RX;
16942 int app_type = ucontrol->value.integer.value[1];
16943 int gain = (ucontrol->value.integer.value[2] +
16944 ucontrol->value.integer.value[3])/2;
16945
16946 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
16947 MSM_AFE_PORT_TYPE_TX;
16948
16949 mutex_lock(&routing_lock);
16950 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
16951 if (is_be_dai_extproc(be_id))
16952 continue;
16953
16954 bedai = &msm_bedais[be_id];
16955 if (afe_get_port_type(bedai->port_id) != port_type)
16956 continue;
16957
16958 if (!bedai->active)
16959 continue;
16960
16961 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
16962 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
16963 continue;
16964
16965 if (app_type !=
16966 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
16967 continue;
16968
16969 copp = session_copp_map[fe_id][dir][be_id];
16970 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
16971 if (!test_bit(j, &copp))
16972 continue;
16973 ret |= adm_set_volume(bedai->port_id, j, gain);
16974 }
16975 }
16976 }
16977 mutex_unlock(&routing_lock);
16978 return ret ? -EINVAL : 0;
16979}
16980
16981static const struct snd_kcontrol_new app_type_cfg_controls[] = {
16982 SOC_SINGLE_MULTI_EXT("App Type Config", SND_SOC_NOPM, 0,
16983 0xFFFFFFFF, 0, 128, msm_routing_get_app_type_cfg_control,
16984 msm_routing_put_app_type_cfg_control),
16985 SOC_SINGLE_MULTI_EXT("App Type Gain", SND_SOC_NOPM, 0,
16986 0x2000, 0, 4, NULL, msm_routing_put_app_type_gain_control)
16987};
16988
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070016989static int msm_routing_put_module_cfg_control(struct snd_kcontrol *kcontrol,
16990 struct snd_ctl_elem_value *ucontrol)
16991{
16992 int copp_idx, fe_id, be_id, port_type;
16993 int ret = 0;
16994 unsigned long copp;
16995 struct msm_pcm_routing_bdai_data *bedai;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016996 u8 *packed_params = NULL;
16997 struct param_hdr_v3 param_hdr;
16998 u32 packed_param_size = (sizeof(struct param_hdr_v3) +
16999 sizeof(uint32_t));
17000
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017001 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
17002 SESSION_TYPE_RX;
17003 int app_type = ucontrol->value.integer.value[1];
17004 int module_id = ucontrol->value.integer.value[2];
17005 int instance_id = ucontrol->value.integer.value[3];
17006 int param_id = ucontrol->value.integer.value[4];
17007 int param_value = ucontrol->value.integer.value[5];
17008
17009 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
17010 MSM_AFE_PORT_TYPE_TX;
17011 pr_debug("%s app_type:%d mod_id:%d instance_id:%d param_id:%d value:%d\n",
17012 __func__, app_type, module_id,
17013 instance_id, param_id, param_value);
17014
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017015 packed_params = kzalloc(packed_param_size, GFP_KERNEL);
17016 if (!packed_params)
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017017 return -ENOMEM;
17018
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017019 memset(&param_hdr, 0, sizeof(param_hdr));
17020 param_hdr.module_id = module_id;
17021 param_hdr.instance_id = instance_id;
17022 param_hdr.param_id = param_id;
17023 param_hdr.param_size = sizeof(uint32_t);
17024
17025 packed_param_size = 0;
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017026
17027 mutex_lock(&routing_lock);
17028 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
17029 if (is_be_dai_extproc(be_id))
17030 continue;
17031
17032 bedai = &msm_bedais[be_id];
17033 if (afe_get_port_type(bedai->port_id) != port_type)
17034 continue;
17035
17036 if (!bedai->active)
17037 continue;
17038
17039 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
17040 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
17041 continue;
17042
17043 if (app_type !=
17044 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
17045 continue;
17046
17047 copp = session_copp_map[fe_id][dir][be_id];
17048 for (copp_idx = 0; copp_idx < MAX_COPPS_PER_PORT;
17049 copp_idx++) {
17050 if (!test_bit(copp_idx, &copp))
17051 continue;
17052
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017053 ret = q6common_pack_pp_params(packed_params,
17054 &param_hdr,
17055 (u8 *) &param_value,
17056 &packed_param_size);
17057 if (ret) {
17058 pr_err("%s: Failed to pack params, error %d\n",
17059 __func__, ret);
17060 goto done;
17061 }
17062
17063 ret = adm_set_pp_params(bedai->port_id,
17064 copp_idx, NULL,
17065 packed_params,
17066 packed_param_size);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017067 if (ret) {
17068 pr_err("%s: Setting param failed with err=%d\n",
17069 __func__, ret);
17070 ret = -EINVAL;
17071 goto done;
17072 }
17073 }
17074 }
17075 }
17076done:
17077 mutex_unlock(&routing_lock);
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017078 kfree(packed_params);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017079 return ret;
17080}
17081
17082static const struct snd_kcontrol_new module_cfg_controls[] = {
17083 SOC_SINGLE_MULTI_EXT("Audio Effect", SND_SOC_NOPM, 0,
17084 0x2000, 0, 6, NULL, msm_routing_put_module_cfg_control)
17085};
17086
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017087static int msm_routing_get_lsm_app_type_cfg_control(
17088 struct snd_kcontrol *kcontrol,
17089 struct snd_ctl_elem_value *ucontrol)
17090{
17091 return 0;
17092}
17093
17094static int msm_routing_put_lsm_app_type_cfg_control(
17095 struct snd_kcontrol *kcontrol,
17096 struct snd_ctl_elem_value *ucontrol)
17097{
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017098 int shift = ((struct soc_multi_mixer_control *)
17099 kcontrol->private_value)->shift;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017100 int i = 0, j;
17101 int num_app_types = ucontrol->value.integer.value[i++];
17102
17103 memset(lsm_app_type_cfg, 0, MAX_APP_TYPES*
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017104 sizeof(struct msm_pcm_routing_app_type_data));
17105
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017106 if (num_app_types > MAX_APP_TYPES) {
17107 pr_err("%s: number of app types exceed the max supported\n",
17108 __func__);
17109 return -EINVAL;
17110 }
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017111
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017112 for (j = 0; j < num_app_types; j++) {
17113 lsm_app_type_cfg[j].app_type =
17114 ucontrol->value.integer.value[i++];
17115 lsm_app_type_cfg[j].sample_rate =
17116 ucontrol->value.integer.value[i++];
17117 lsm_app_type_cfg[j].bit_width =
17118 ucontrol->value.integer.value[i++];
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017119 /* Shift of 1 indicates this is V2 mixer control */
17120 if (shift == 1)
17121 lsm_app_type_cfg[j].num_out_channels =
17122 ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017123 }
17124
17125 return 0;
17126}
17127
17128static const struct snd_kcontrol_new lsm_app_type_cfg_controls[] = {
17129 SOC_SINGLE_MULTI_EXT("Listen App Type Config", SND_SOC_NOPM, 0,
17130 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
17131 msm_routing_put_lsm_app_type_cfg_control),
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017132 SOC_SINGLE_MULTI_EXT("Listen App Type Config V2", SND_SOC_NOPM, 1,
17133 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
17134 msm_routing_put_lsm_app_type_cfg_control),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017135};
17136
17137static int msm_routing_get_use_ds1_or_ds2_control(
17138 struct snd_kcontrol *kcontrol,
17139 struct snd_ctl_elem_value *ucontrol)
17140{
17141 ucontrol->value.integer.value[0] = is_ds2_on;
17142 return 0;
17143}
17144
17145static int msm_routing_put_use_ds1_or_ds2_control(
17146 struct snd_kcontrol *kcontrol,
17147 struct snd_ctl_elem_value *ucontrol)
17148{
17149 is_ds2_on = ucontrol->value.integer.value[0];
17150 return 0;
17151}
17152
17153static const struct snd_kcontrol_new use_ds1_or_ds2_controls[] = {
17154 SOC_SINGLE_EXT("DS2 OnOff", SND_SOC_NOPM, 0,
17155 1, 0, msm_routing_get_use_ds1_or_ds2_control,
17156 msm_routing_put_use_ds1_or_ds2_control),
17157};
17158
17159int msm_routing_get_rms_value_control(struct snd_kcontrol *kcontrol,
17160 struct snd_ctl_elem_value *ucontrol) {
17161 int rc = 0;
17162 int be_idx = 0;
17163 char *param_value;
17164 int *update_param_value;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017165 uint32_t param_size = (RMS_PAYLOAD_LEN + 1) * sizeof(uint32_t);
17166 struct param_hdr_v3 param_hdr;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017167
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017168 param_value = kzalloc(param_size, GFP_KERNEL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017169 if (!param_value)
17170 return -ENOMEM;
17171
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017172 memset(&param_hdr, 0, sizeof(param_hdr));
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017173 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++)
17174 if (msm_bedais[be_idx].port_id == SLIMBUS_0_TX)
17175 break;
17176 if ((be_idx < MSM_BACKEND_DAI_MAX) && msm_bedais[be_idx].active) {
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017177 param_hdr.module_id = RMS_MODULEID_APPI_PASSTHRU;
17178 param_hdr.instance_id = INSTANCE_ID_0;
17179 param_hdr.param_id = RMS_PARAM_FIRST_SAMPLE;
17180 param_hdr.param_size = param_size;
17181 rc = adm_get_pp_params(SLIMBUS_0_TX, 0, ADM_CLIENT_ID_DEFAULT,
17182 NULL, &param_hdr, (u8 *) param_value);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017183 if (rc) {
17184 pr_err("%s: get parameters failed:%d\n", __func__, rc);
17185 kfree(param_value);
17186 return -EINVAL;
17187 }
17188 update_param_value = (int *)param_value;
17189 ucontrol->value.integer.value[0] = update_param_value[0];
17190
17191 pr_debug("%s: FROM DSP value[0] 0x%x\n",
17192 __func__, update_param_value[0]);
17193 }
17194 kfree(param_value);
17195 return 0;
17196}
17197
17198static int msm_voc_session_id_put(struct snd_kcontrol *kcontrol,
17199 struct snd_ctl_elem_value *ucontrol)
17200{
17201 voc_session_id = ucontrol->value.integer.value[0];
17202
17203 pr_debug("%s: voc_session_id=%u\n", __func__, voc_session_id);
17204
17205 return 0;
17206}
17207
17208static int msm_voc_session_id_get(struct snd_kcontrol *kcontrol,
17209 struct snd_ctl_elem_value *ucontrol)
17210{
17211 ucontrol->value.integer.value[0] = voc_session_id;
17212
17213 return 0;
17214}
17215
17216static struct snd_kcontrol_new msm_voc_session_controls[] = {
17217 SOC_SINGLE_MULTI_EXT("Voc VSID", SND_SOC_NOPM, 0,
17218 0xFFFFFFFF, 0, 1, msm_voc_session_id_get,
17219 msm_voc_session_id_put),
17220};
17221
17222static int msm_sound_focus_info(struct snd_kcontrol *kcontrol,
17223 struct snd_ctl_elem_info *uinfo)
17224{
17225 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
17226 uinfo->count = sizeof(struct sound_focus_param);
17227
17228 return 0;
17229}
17230
17231static int msm_voice_sound_focus_put(struct snd_kcontrol *kcontrol,
17232 struct snd_ctl_elem_value *ucontrol)
17233{
17234 int ret = 0;
17235 struct sound_focus_param soundFocusData;
17236
17237 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
17238 sizeof(struct sound_focus_param));
17239 ret = voc_set_sound_focus(soundFocusData);
17240 if (ret) {
17241 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
17242 __func__, ret);
17243
17244 ret = -EINVAL;
17245 }
17246
17247 return ret;
17248}
17249
17250static int msm_voice_sound_focus_get(struct snd_kcontrol *kcontrol,
17251 struct snd_ctl_elem_value *ucontrol)
17252{
17253 int ret = 0;
17254 struct sound_focus_param soundFocusData;
17255
17256 memset(&soundFocusData, 0, sizeof(struct sound_focus_param));
17257
17258 ret = voc_get_sound_focus(&soundFocusData);
17259 if (ret) {
17260 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
17261 __func__, ret);
17262
17263 ret = -EINVAL;
17264 goto done;
17265 }
17266 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
17267 sizeof(struct sound_focus_param));
17268
17269done:
17270 return ret;
17271}
17272
17273static int msm_source_tracking_info(struct snd_kcontrol *kcontrol,
17274 struct snd_ctl_elem_info *uinfo)
17275{
17276 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
17277 uinfo->count = sizeof(struct source_tracking_param);
17278
17279 return 0;
17280}
17281
17282static int msm_voice_source_tracking_get(struct snd_kcontrol *kcontrol,
17283 struct snd_ctl_elem_value *ucontrol)
17284{
Meng Wang92edfde2018-04-24 12:18:37 +080017285 int ret = 0;
17286 struct source_tracking_param sourceTrackingData;
17287
17288 memset(&sourceTrackingData, 0, sizeof(struct source_tracking_param));
17289
17290 ret = voc_get_source_tracking(&sourceTrackingData);
17291 if (ret) {
17292 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
17293 __func__, ret);
17294
17295 ret = -EINVAL;
17296 goto done;
17297 }
17298 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
17299 sizeof(struct source_tracking_param));
17300
17301done:
17302 return ret;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017303}
17304
17305static int msm_audio_get_copp_idx_from_port_id(int port_id, int session_type,
17306 int *copp_idx)
17307{
17308 int i, idx, be_idx;
17309 int ret = 0;
17310 unsigned long copp;
17311
17312 pr_debug("%s: Enter, port_id=%d\n", __func__, port_id);
17313
17314 ret = q6audio_validate_port(port_id);
17315 if (ret < 0) {
17316 pr_err("%s: port validation failed id 0x%x ret %d\n",
17317 __func__, port_id, ret);
17318
17319 ret = -EINVAL;
17320 goto done;
17321 }
17322
17323 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
17324 if (msm_bedais[be_idx].port_id == port_id)
17325 break;
17326 }
17327 if (be_idx >= MSM_BACKEND_DAI_MAX) {
17328 pr_err("%s: Invalid be id %d\n", __func__, be_idx);
17329
17330 ret = -EINVAL;
17331 goto done;
17332 }
17333
17334 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
17335 MSM_FRONTEND_DAI_MM_SIZE) {
17336 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
17337 copp = session_copp_map[i]
17338 [session_type][be_idx];
17339 if (test_bit(idx, &copp))
17340 break;
17341 }
17342 if (idx >= MAX_COPPS_PER_PORT)
17343 continue;
17344 else
17345 break;
17346 }
17347 if (i >= MSM_FRONTEND_DAI_MM_SIZE) {
17348 pr_err("%s: Invalid FE, exiting\n", __func__);
17349
17350 ret = -EINVAL;
17351 goto done;
17352 }
17353 *copp_idx = idx;
17354 pr_debug("%s: copp_idx=%d\n", __func__, *copp_idx);
17355
17356done:
17357 return ret;
17358}
17359
17360static int msm_audio_sound_focus_derive_port_id(struct snd_kcontrol *kcontrol,
17361 const char *prefix, int *port_id)
17362{
17363 int ret = 0;
17364
17365 pr_debug("%s: Enter, prefix:%s\n", __func__, prefix);
17366
17367 /*
17368 * Mixer control name will be like "Sound Focus Audio Tx SLIMBUS_0"
17369 * where the prefix is "Sound Focus Audio Tx ". Skip the prefix
17370 * and compare the string with the backend name to derive the port id.
17371 */
17372 if (!strcmp(kcontrol->id.name + strlen(prefix),
17373 "SLIMBUS_0")) {
17374 *port_id = SLIMBUS_0_TX;
17375 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17376 "TERT_MI2S")) {
17377 *port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
17378 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17379 "INT3_MI2S")) {
17380 *port_id = AFE_PORT_ID_INT3_MI2S_TX;
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053017381 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17382 "VA_CDC_DMA_TX_0")) {
17383 *port_id = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053017384 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17385 "TX_CDC_DMA_TX_3")) {
17386 *port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017387 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17388 "QUIN_TDM_TX_0")) {
17389 *port_id = AFE_PORT_ID_QUINARY_TDM_TX;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017390 } else {
17391 pr_err("%s: mixer ctl name=%s, could not derive valid port id\n",
17392 __func__, kcontrol->id.name);
17393
17394 ret = -EINVAL;
17395 goto done;
17396 }
17397 pr_debug("%s: mixer ctl name=%s, derived port_id=%d\n",
17398 __func__, kcontrol->id.name, *port_id);
17399
17400done:
17401 return ret;
17402}
17403
17404static int msm_audio_sound_focus_put(struct snd_kcontrol *kcontrol,
17405 struct snd_ctl_elem_value *ucontrol)
17406{
17407 int ret = 0;
17408 struct sound_focus_param soundFocusData;
17409 int port_id, copp_idx;
17410
17411 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17412 "Sound Focus Audio Tx ", &port_id);
17413 if (ret != 0) {
17414 pr_err("%s: Error in deriving port id, err=%d\n",
17415 __func__, ret);
17416
17417 ret = -EINVAL;
17418 goto done;
17419 }
17420
17421 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17422 &copp_idx);
17423 if (ret) {
17424 pr_err("%s: Could not get copp idx for port_id=%d\n",
17425 __func__, port_id);
17426
17427 ret = -EINVAL;
17428 goto done;
17429 }
17430
17431 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
17432 sizeof(struct sound_focus_param));
17433
17434 ret = adm_set_sound_focus(port_id, copp_idx, soundFocusData);
17435 if (ret) {
17436 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
17437 __func__, ret);
17438
17439 ret = -EINVAL;
17440 goto done;
17441 }
17442
17443done:
17444 return ret;
17445}
17446
17447static int msm_audio_sound_focus_get(struct snd_kcontrol *kcontrol,
17448 struct snd_ctl_elem_value *ucontrol)
17449{
17450 int ret = 0;
17451 struct sound_focus_param soundFocusData;
17452 int port_id, copp_idx;
17453
17454 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17455 "Sound Focus Audio Tx ", &port_id);
17456 if (ret) {
17457 pr_err("%s: Error in deriving port id, err=%d\n",
17458 __func__, ret);
17459
17460 ret = -EINVAL;
17461 goto done;
17462 }
17463
17464 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17465 &copp_idx);
17466 if (ret) {
17467 pr_err("%s: Could not get copp idx for port_id=%d\n",
17468 __func__, port_id);
17469
17470 ret = -EINVAL;
17471 goto done;
17472 }
17473
17474 ret = adm_get_sound_focus(port_id, copp_idx, &soundFocusData);
17475 if (ret) {
17476 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
17477 __func__, ret);
17478
17479 ret = -EINVAL;
17480 goto done;
17481 }
17482
17483 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
17484 sizeof(struct sound_focus_param));
17485
17486done:
17487 return ret;
17488}
17489
17490static int msm_audio_source_tracking_get(struct snd_kcontrol *kcontrol,
17491 struct snd_ctl_elem_value *ucontrol)
17492{
17493 int ret = 0;
17494 struct source_tracking_param sourceTrackingData;
17495 int port_id, copp_idx;
17496
17497 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17498 "Source Tracking Audio Tx ", &port_id);
17499 if (ret) {
17500 pr_err("%s: Error in deriving port id, err=%d\n",
17501 __func__, ret);
17502
17503 ret = -EINVAL;
17504 goto done;
17505 }
17506
17507 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17508 &copp_idx);
17509 if (ret) {
17510 pr_err("%s: Could not get copp idx for port_id=%d\n",
17511 __func__, port_id);
17512
17513 ret = -EINVAL;
17514 goto done;
17515 }
17516
17517 ret = adm_get_source_tracking(port_id, copp_idx, &sourceTrackingData);
17518 if (ret) {
17519 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
17520 __func__, ret);
17521
17522 ret = -EINVAL;
17523 goto done;
17524 }
17525
17526 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
17527 sizeof(struct source_tracking_param));
17528
17529done:
17530 return ret;
17531}
17532
17533static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
17534 {
17535 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17536 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17537 .name = "Sound Focus Voice Tx SLIMBUS_0",
17538 .info = msm_sound_focus_info,
17539 .get = msm_voice_sound_focus_get,
17540 .put = msm_voice_sound_focus_put,
17541 },
17542 {
17543 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17544 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17545 .name = "Source Tracking Voice Tx SLIMBUS_0",
17546 .info = msm_source_tracking_info,
17547 .get = msm_voice_source_tracking_get,
17548 },
17549 {
17550 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17551 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17552 .name = "Sound Focus Audio Tx SLIMBUS_0",
17553 .info = msm_sound_focus_info,
17554 .get = msm_audio_sound_focus_get,
17555 .put = msm_audio_sound_focus_put,
17556 },
17557 {
17558 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17559 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17560 .name = "Source Tracking Audio Tx SLIMBUS_0",
17561 .info = msm_source_tracking_info,
17562 .get = msm_audio_source_tracking_get,
17563 },
17564 {
17565 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17566 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17567 .name = "Sound Focus Voice Tx TERT_MI2S",
17568 .info = msm_sound_focus_info,
17569 .get = msm_voice_sound_focus_get,
17570 .put = msm_voice_sound_focus_put,
17571 },
17572 {
17573 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17574 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17575 .name = "Source Tracking Voice Tx TERT_MI2S",
17576 .info = msm_source_tracking_info,
17577 .get = msm_voice_source_tracking_get,
17578 },
17579 {
17580 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17581 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17582 .name = "Sound Focus Audio Tx TERT_MI2S",
17583 .info = msm_sound_focus_info,
17584 .get = msm_audio_sound_focus_get,
17585 .put = msm_audio_sound_focus_put,
17586 },
17587 {
17588 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17589 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17590 .name = "Source Tracking Audio Tx TERT_MI2S",
17591 .info = msm_source_tracking_info,
17592 .get = msm_audio_source_tracking_get,
17593 },
17594 {
17595 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17596 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17597 .name = "Sound Focus Voice Tx INT3_MI2S",
17598 .info = msm_sound_focus_info,
17599 .get = msm_voice_sound_focus_get,
17600 .put = msm_voice_sound_focus_put,
17601 },
17602 {
17603 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17604 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17605 .name = "Source Tracking Voice Tx INT3_MI2S",
17606 .info = msm_source_tracking_info,
17607 .get = msm_voice_source_tracking_get,
17608 },
17609 {
17610 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17611 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17612 .name = "Sound Focus Audio Tx INT3_MI2S",
17613 .info = msm_sound_focus_info,
17614 .get = msm_audio_sound_focus_get,
17615 .put = msm_audio_sound_focus_put,
17616 },
17617 {
17618 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17619 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17620 .name = "Source Tracking Audio Tx INT3_MI2S",
17621 .info = msm_source_tracking_info,
17622 .get = msm_audio_source_tracking_get,
17623 },
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053017624 {
17625 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17626 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17627 .name = "Sound Focus Voice Tx VA_CDC_DMA_TX_0",
17628 .info = msm_sound_focus_info,
17629 .get = msm_voice_sound_focus_get,
17630 .put = msm_voice_sound_focus_put,
17631 },
17632 {
17633 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17634 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17635 .name = "Source Tracking Voice Tx VA_CDC_DMA_TX_0",
17636 .info = msm_source_tracking_info,
17637 .get = msm_voice_source_tracking_get,
17638 },
17639 {
17640 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17641 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17642 .name = "Sound Focus Audio Tx VA_CDC_DMA_TX_0",
17643 .info = msm_sound_focus_info,
17644 .get = msm_audio_sound_focus_get,
17645 .put = msm_audio_sound_focus_put,
17646 },
17647 {
17648 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17649 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17650 .name = "Source Tracking Audio Tx VA_CDC_DMA_TX_0",
17651 .info = msm_source_tracking_info,
17652 .get = msm_audio_source_tracking_get,
17653 },
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053017654 {
17655 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17656 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17657 .name = "Sound Focus Voice Tx TX_CDC_DMA_TX_3",
17658 .info = msm_sound_focus_info,
17659 .get = msm_voice_sound_focus_get,
17660 .put = msm_voice_sound_focus_put,
17661 },
17662 {
17663 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17664 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17665 .name = "Source Tracking Voice Tx TX_CDC_DMA_TX_3",
17666 .info = msm_source_tracking_info,
17667 .get = msm_voice_source_tracking_get,
17668 },
17669 {
17670 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17671 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17672 .name = "Sound Focus Audio Tx TX_CDC_DMA_TX_3",
17673 .info = msm_sound_focus_info,
17674 .get = msm_audio_sound_focus_get,
17675 .put = msm_audio_sound_focus_put,
17676 },
17677 {
17678 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17679 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17680 .name = "Source Tracking Audio Tx TX_CDC_DMA_TX_3",
17681 .info = msm_source_tracking_info,
17682 .get = msm_audio_source_tracking_get,
17683 },
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017684 {
17685 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17686 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17687 .name = "Sound Focus Voice Tx QUIN_TDM_TX_0",
17688 .info = msm_sound_focus_info,
17689 .get = msm_voice_sound_focus_get,
17690 .put = msm_voice_sound_focus_put,
17691 },
17692 {
17693 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17694 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17695 .name = "Source Tracking Voice Tx QUIN_TDM_TX_0",
17696 .info = msm_source_tracking_info,
17697 .get = msm_voice_source_tracking_get,
17698 },
17699 {
17700 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17701 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17702 .name = "Sound Focus Audio Tx QUIN_TDM_TX_0",
17703 .info = msm_sound_focus_info,
17704 .get = msm_audio_sound_focus_get,
17705 .put = msm_audio_sound_focus_put,
17706 },
17707 {
17708 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17709 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17710 .name = "Source Tracking Audio Tx QUIN_TDM_TX_0",
17711 .info = msm_source_tracking_info,
17712 .get = msm_audio_source_tracking_get,
17713 },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017714};
17715
17716static int spkr_prot_put_vi_lch_port(struct snd_kcontrol *kcontrol,
17717 struct snd_ctl_elem_value *ucontrol)
17718{
17719 int ret = 0;
17720 int item;
17721 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
17722
17723 pr_debug("%s item is %d\n", __func__,
17724 ucontrol->value.enumerated.item[0]);
17725 mutex_lock(&routing_lock);
17726 item = ucontrol->value.enumerated.item[0];
17727 if (item < e->items) {
17728 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
17729 __func__, e->shift_l, e->values[item]);
17730 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
17731 e->values[item] < MSM_BACKEND_DAI_MAX)
17732 /* Enable feedback TX path */
17733 ret = afe_spk_prot_feed_back_cfg(
17734 msm_bedais[e->values[item]].port_id,
17735 msm_bedais[e->shift_l].port_id, 1, 0, 1);
17736 else {
17737 pr_debug("%s values are out of range item %d\n",
17738 __func__, e->values[item]);
17739 /* Disable feedback TX path */
17740 if (e->values[item] == MSM_BACKEND_DAI_MAX)
17741 ret = afe_spk_prot_feed_back_cfg(0, 0, 0, 0, 0);
17742 else
17743 ret = -EINVAL;
17744 }
17745 } else {
17746 pr_err("%s item value is out of range item\n", __func__);
17747 ret = -EINVAL;
17748 }
17749 mutex_unlock(&routing_lock);
17750 return ret;
17751}
17752
17753static int spkr_prot_put_vi_rch_port(struct snd_kcontrol *kcontrol,
17754 struct snd_ctl_elem_value *ucontrol)
17755{
17756 int ret = 0;
17757 int item;
17758 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
17759
17760 pr_debug("%s item is %d\n", __func__,
17761 ucontrol->value.enumerated.item[0]);
17762 mutex_lock(&routing_lock);
17763 item = ucontrol->value.enumerated.item[0];
17764 if (item < e->items) {
17765 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
17766 __func__, e->shift_l, e->values[item]);
17767 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
17768 e->values[item] < MSM_BACKEND_DAI_MAX)
17769 /* Enable feedback TX path */
17770 ret = afe_spk_prot_feed_back_cfg(
17771 msm_bedais[e->values[item]].port_id,
17772 msm_bedais[e->shift_l].port_id,
17773 1, 1, 1);
17774 else {
17775 pr_debug("%s values are out of range item %d\n",
17776 __func__, e->values[item]);
17777 /* Disable feedback TX path */
17778 if (e->values[item] == MSM_BACKEND_DAI_MAX)
17779 ret = afe_spk_prot_feed_back_cfg(0,
17780 0, 0, 0, 0);
17781 else
17782 ret = -EINVAL;
17783 }
17784 } else {
17785 pr_err("%s item value is out of range item\n", __func__);
17786 ret = -EINVAL;
17787 }
17788 mutex_unlock(&routing_lock);
17789 return ret;
17790}
17791
17792static int spkr_prot_get_vi_lch_port(struct snd_kcontrol *kcontrol,
17793 struct snd_ctl_elem_value *ucontrol)
17794{
17795 pr_debug("%s\n", __func__);
17796 return 0;
17797}
17798
17799static int spkr_prot_get_vi_rch_port(struct snd_kcontrol *kcontrol,
17800 struct snd_ctl_elem_value *ucontrol)
17801{
17802 pr_debug("%s\n", __func__);
17803 ucontrol->value.enumerated.item[0] = 0;
17804 return 0;
17805}
17806
17807static const char * const slim0_rx_vi_fb_tx_lch_mux_text[] = {
17808 "ZERO", "SLIM4_TX"
17809};
17810
17811static const char * const slim0_rx_vi_fb_tx_rch_mux_text[] = {
17812 "ZERO", "SLIM4_TX"
17813};
17814
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017815static const char * const wsa_rx_0_vi_fb_tx_lch_mux_text[] = {
17816 "ZERO", "WSA_CDC_DMA_TX_0"
17817};
17818
17819static const char * const wsa_rx_0_vi_fb_tx_rch_mux_text[] = {
17820 "ZERO", "WSA_CDC_DMA_TX_0"
17821};
17822
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017823static const char * const mi2s_rx_vi_fb_tx_mux_text[] = {
17824 "ZERO", "SENARY_TX"
17825};
17826
17827static const char * const int4_mi2s_rx_vi_fb_tx_mono_mux_text[] = {
17828 "ZERO", "INT5_MI2S_TX"
17829};
17830
17831static const char * const int4_mi2s_rx_vi_fb_tx_stereo_mux_text[] = {
17832 "ZERO", "INT5_MI2S_TX"
17833};
17834
17835static const int const slim0_rx_vi_fb_tx_lch_value[] = {
17836 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
17837};
17838
17839static const int const slim0_rx_vi_fb_tx_rch_value[] = {
17840 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
17841};
17842
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017843static const int const wsa_rx_0_vi_fb_tx_lch_value[] = {
17844 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
17845};
17846
17847static const int const wsa_rx_0_vi_fb_tx_rch_value[] = {
17848 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
17849};
17850
17851
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017852static const int const mi2s_rx_vi_fb_tx_value[] = {
17853 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SENARY_MI2S_TX
17854};
17855
17856static const int const int4_mi2s_rx_vi_fb_tx_mono_ch_value[] = {
17857 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
17858};
17859
17860static const int const int4_mi2s_rx_vi_fb_tx_stereo_ch_value[] = {
17861 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
17862};
17863
17864static const struct soc_enum slim0_rx_vi_fb_lch_mux_enum =
17865 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
17866 ARRAY_SIZE(slim0_rx_vi_fb_tx_lch_mux_text),
17867 slim0_rx_vi_fb_tx_lch_mux_text, slim0_rx_vi_fb_tx_lch_value);
17868
17869static const struct soc_enum slim0_rx_vi_fb_rch_mux_enum =
17870 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
17871 ARRAY_SIZE(slim0_rx_vi_fb_tx_rch_mux_text),
17872 slim0_rx_vi_fb_tx_rch_mux_text, slim0_rx_vi_fb_tx_rch_value);
17873
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017874static const struct soc_enum wsa_rx_0_vi_fb_lch_mux_enum =
17875 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
17876 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_lch_mux_text),
17877 wsa_rx_0_vi_fb_tx_lch_mux_text, wsa_rx_0_vi_fb_tx_lch_value);
17878
17879static const struct soc_enum wsa_rx_0_vi_fb_rch_mux_enum =
17880 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
17881 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_rch_mux_text),
17882 wsa_rx_0_vi_fb_tx_rch_mux_text, wsa_rx_0_vi_fb_tx_rch_value);
17883
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017884static const struct soc_enum mi2s_rx_vi_fb_mux_enum =
17885 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_PRI_MI2S_RX, 0, 0,
17886 ARRAY_SIZE(mi2s_rx_vi_fb_tx_mux_text),
17887 mi2s_rx_vi_fb_tx_mux_text, mi2s_rx_vi_fb_tx_value);
17888
17889static const struct soc_enum int4_mi2s_rx_vi_fb_mono_ch_mux_enum =
17890 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
17891 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_mono_mux_text),
17892 int4_mi2s_rx_vi_fb_tx_mono_mux_text,
17893 int4_mi2s_rx_vi_fb_tx_mono_ch_value);
17894
17895static const struct soc_enum int4_mi2s_rx_vi_fb_stereo_ch_mux_enum =
17896 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
17897 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_stereo_mux_text),
17898 int4_mi2s_rx_vi_fb_tx_stereo_mux_text,
17899 int4_mi2s_rx_vi_fb_tx_stereo_ch_value);
17900
17901static const struct snd_kcontrol_new slim0_rx_vi_fb_lch_mux =
17902 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_LCH_MUX",
17903 slim0_rx_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
17904 spkr_prot_put_vi_lch_port);
17905
17906static const struct snd_kcontrol_new slim0_rx_vi_fb_rch_mux =
17907 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_RCH_MUX",
17908 slim0_rx_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
17909 spkr_prot_put_vi_rch_port);
17910
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017911static const struct snd_kcontrol_new wsa_rx_0_vi_fb_lch_mux =
17912 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_LCH_MUX",
17913 wsa_rx_0_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
17914 spkr_prot_put_vi_lch_port);
17915
17916static const struct snd_kcontrol_new wsa_rx_0_vi_fb_rch_mux =
17917 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_RCH_MUX",
17918 wsa_rx_0_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
17919 spkr_prot_put_vi_rch_port);
17920
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017921static const struct snd_kcontrol_new mi2s_rx_vi_fb_mux =
17922 SOC_DAPM_ENUM_EXT("PRI_MI2S_RX_VI_FB_MUX",
17923 mi2s_rx_vi_fb_mux_enum, spkr_prot_get_vi_lch_port,
17924 spkr_prot_put_vi_lch_port);
17925
17926static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_mono_ch_mux =
17927 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_MONO_CH_MUX",
17928 int4_mi2s_rx_vi_fb_mono_ch_mux_enum, spkr_prot_get_vi_lch_port,
17929 spkr_prot_put_vi_lch_port);
17930
17931static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_stereo_ch_mux =
17932 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX",
17933 int4_mi2s_rx_vi_fb_stereo_ch_mux_enum, spkr_prot_get_vi_rch_port,
17934 spkr_prot_put_vi_rch_port);
17935
17936static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
17937 /* Frontend AIF */
17938 /* Widget name equals to Front-End DAI name<Need confirmation>,
17939 * Stream name must contains substring of front-end dai name
17940 */
17941 SND_SOC_DAPM_AIF_IN("MM_DL1", "MultiMedia1 Playback", 0, 0, 0, 0),
17942 SND_SOC_DAPM_AIF_IN("MM_DL2", "MultiMedia2 Playback", 0, 0, 0, 0),
17943 SND_SOC_DAPM_AIF_IN("MM_DL3", "MultiMedia3 Playback", 0, 0, 0, 0),
17944 SND_SOC_DAPM_AIF_IN("MM_DL4", "MultiMedia4 Playback", 0, 0, 0, 0),
17945 SND_SOC_DAPM_AIF_IN("MM_DL5", "MultiMedia5 Playback", 0, 0, 0, 0),
17946 SND_SOC_DAPM_AIF_IN("MM_DL6", "MultiMedia6 Playback", 0, 0, 0, 0),
17947 SND_SOC_DAPM_AIF_IN("MM_DL7", "MultiMedia7 Playback", 0, 0, 0, 0),
17948 SND_SOC_DAPM_AIF_IN("MM_DL8", "MultiMedia8 Playback", 0, 0, 0, 0),
17949 SND_SOC_DAPM_AIF_IN("MM_DL9", "MultiMedia9 Playback", 0, 0, 0, 0),
17950 SND_SOC_DAPM_AIF_IN("MM_DL10", "MultiMedia10 Playback", 0, 0, 0, 0),
17951 SND_SOC_DAPM_AIF_IN("MM_DL11", "MultiMedia11 Playback", 0, 0, 0, 0),
17952 SND_SOC_DAPM_AIF_IN("MM_DL12", "MultiMedia12 Playback", 0, 0, 0, 0),
17953 SND_SOC_DAPM_AIF_IN("MM_DL13", "MultiMedia13 Playback", 0, 0, 0, 0),
17954 SND_SOC_DAPM_AIF_IN("MM_DL14", "MultiMedia14 Playback", 0, 0, 0, 0),
17955 SND_SOC_DAPM_AIF_IN("MM_DL15", "MultiMedia15 Playback", 0, 0, 0, 0),
17956 SND_SOC_DAPM_AIF_IN("MM_DL16", "MultiMedia16 Playback", 0, 0, 0, 0),
17957 SND_SOC_DAPM_AIF_IN("MM_DL20", "MultiMedia20 Playback", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070017958 SND_SOC_DAPM_AIF_IN("MM_DL21", "MultiMedia21 Playback", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053017959 SND_SOC_DAPM_AIF_IN("MM_DL26", "MultiMedia26 Playback", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017960 SND_SOC_DAPM_AIF_IN("VOIP_DL", "VoIP Playback", 0, 0, 0, 0),
17961 SND_SOC_DAPM_AIF_OUT("MM_UL1", "MultiMedia1 Capture", 0, 0, 0, 0),
17962 SND_SOC_DAPM_AIF_OUT("MM_UL2", "MultiMedia2 Capture", 0, 0, 0, 0),
17963 SND_SOC_DAPM_AIF_OUT("MM_UL3", "MultiMedia3 Capture", 0, 0, 0, 0),
17964 SND_SOC_DAPM_AIF_OUT("MM_UL4", "MultiMedia4 Capture", 0, 0, 0, 0),
17965 SND_SOC_DAPM_AIF_OUT("MM_UL5", "MultiMedia5 Capture", 0, 0, 0, 0),
17966 SND_SOC_DAPM_AIF_OUT("MM_UL6", "MultiMedia6 Capture", 0, 0, 0, 0),
17967 SND_SOC_DAPM_AIF_OUT("MM_UL8", "MultiMedia8 Capture", 0, 0, 0, 0),
17968 SND_SOC_DAPM_AIF_OUT("MM_UL9", "MultiMedia9 Capture", 0, 0, 0, 0),
Laxminath Kasam38070be2017-08-17 18:21:59 +053017969 SND_SOC_DAPM_AIF_OUT("MM_UL10", "MultiMedia10 Capture", 0, 0, 0, 0),
Asish Bhattacharya34504582017-08-08 12:55:01 +053017970 SND_SOC_DAPM_AIF_OUT("MM_UL16", "MultiMedia16 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017971 SND_SOC_DAPM_AIF_OUT("MM_UL17", "MultiMedia17 Capture", 0, 0, 0, 0),
17972 SND_SOC_DAPM_AIF_OUT("MM_UL18", "MultiMedia18 Capture", 0, 0, 0, 0),
17973 SND_SOC_DAPM_AIF_OUT("MM_UL19", "MultiMedia19 Capture", 0, 0, 0, 0),
17974 SND_SOC_DAPM_AIF_OUT("MM_UL20", "MultiMedia20 Capture", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070017975 SND_SOC_DAPM_AIF_OUT("MM_UL21", "MultiMedia21 Capture", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053017976 SND_SOC_DAPM_AIF_OUT("MM_UL27", "MultiMedia27 Capture", 0, 0, 0, 0),
Meng Wang5c4bab72018-04-25 10:40:01 +080017977 SND_SOC_DAPM_AIF_OUT("MM_UL28", "MultiMedia28 Capture", 0, 0, 0, 0),
17978 SND_SOC_DAPM_AIF_OUT("MM_UL29", "MultiMedia29 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017979 SND_SOC_DAPM_AIF_OUT("VOIP_UL", "VoIP Capture", 0, 0, 0, 0),
17980 SND_SOC_DAPM_AIF_IN("VOICEMMODE1_DL",
17981 "VoiceMMode1 Playback", 0, 0, 0, 0),
17982 SND_SOC_DAPM_AIF_OUT("VOICEMMODE1_UL",
17983 "VoiceMMode1 Capture", 0, 0, 0, 0),
17984 SND_SOC_DAPM_AIF_IN("VOICEMMODE2_DL",
17985 "VoiceMMode2 Playback", 0, 0, 0, 0),
17986 SND_SOC_DAPM_AIF_OUT("VOICEMMODE2_UL",
17987 "VoiceMMode2 Capture", 0, 0, 0, 0),
17988 SND_SOC_DAPM_AIF_IN("SLIM0_DL_HL", "SLIMBUS0_HOSTLESS Playback",
17989 0, 0, 0, 0),
17990 SND_SOC_DAPM_AIF_OUT("SLIM0_UL_HL", "SLIMBUS0_HOSTLESS Capture",
17991 0, 0, 0, 0),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053017992 SND_SOC_DAPM_AIF_IN("CDC_DMA_DL_HL", "CDC_DMA_HOSTLESS Playback",
17993 0, 0, 0, 0),
17994 SND_SOC_DAPM_AIF_OUT("CDC_DMA_UL_HL", "CDC_DMA_HOSTLESS Capture",
17995 0, 0, 0, 0),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053017996 SND_SOC_DAPM_AIF_OUT("TX3_CDC_DMA_UL_HL",
17997 "TX3_CDC_DMA_HOSTLESS Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017998 SND_SOC_DAPM_AIF_OUT("CPE_LSM_UL_HL", "CPE LSM capture",
17999 0, 0, 0, 0),
18000 SND_SOC_DAPM_AIF_IN("SLIM1_DL_HL", "SLIMBUS1_HOSTLESS Playback",
18001 0, 0, 0, 0),
18002 SND_SOC_DAPM_AIF_OUT("SLIM1_UL_HL", "SLIMBUS1_HOSTLESS Capture",
18003 0, 0, 0, 0),
18004 SND_SOC_DAPM_AIF_IN("SLIM3_DL_HL", "SLIMBUS3_HOSTLESS Playback",
18005 0, 0, 0, 0),
18006 SND_SOC_DAPM_AIF_OUT("SLIM3_UL_HL", "SLIMBUS3_HOSTLESS Capture",
18007 0, 0, 0, 0),
18008 SND_SOC_DAPM_AIF_IN("SLIM4_DL_HL", "SLIMBUS4_HOSTLESS Playback",
18009 0, 0, 0, 0),
18010 SND_SOC_DAPM_AIF_OUT("SLIM4_UL_HL", "SLIMBUS4_HOSTLESS Capture",
18011 0, 0, 0, 0),
18012 SND_SOC_DAPM_AIF_IN("SLIM6_DL_HL", "SLIMBUS6_HOSTLESS Playback",
18013 0, 0, 0, 0),
18014 SND_SOC_DAPM_AIF_OUT("SLIM6_UL_HL", "SLIMBUS6_HOSTLESS Capture",
18015 0, 0, 0, 0),
18016 SND_SOC_DAPM_AIF_IN("SLIM7_DL_HL", "SLIMBUS7_HOSTLESS Playback",
18017 0, 0, 0, 0),
18018 SND_SOC_DAPM_AIF_OUT("SLIM7_UL_HL", "SLIMBUS7_HOSTLESS Capture",
18019 0, 0, 0, 0),
18020 SND_SOC_DAPM_AIF_IN("SLIM8_DL_HL", "SLIMBUS8_HOSTLESS Playback",
18021 0, 0, 0, 0),
18022 SND_SOC_DAPM_AIF_OUT("SLIM8_UL_HL", "SLIMBUS8_HOSTLESS Capture",
18023 0, 0, 0, 0),
18024 SND_SOC_DAPM_AIF_IN("INTFM_DL_HL", "INT_FM_HOSTLESS Playback",
18025 0, 0, 0, 0),
18026 SND_SOC_DAPM_AIF_OUT("INTFM_UL_HL", "INT_FM_HOSTLESS Capture",
18027 0, 0, 0, 0),
18028 SND_SOC_DAPM_AIF_IN("INTHFP_DL_HL", "INT_HFP_BT_HOSTLESS Playback",
18029 0, 0, 0, 0),
18030 SND_SOC_DAPM_AIF_OUT("INTHFP_UL_HL", "INT_HFP_BT_HOSTLESS Capture",
18031 0, 0, 0, 0),
18032 SND_SOC_DAPM_AIF_IN("USBAUDIO_DL_HL", "USBAUDIO_HOSTLESS Playback",
18033 0, 0, 0, 0),
18034 SND_SOC_DAPM_AIF_OUT("USBAUDIO_UL_HL", "USBAUDIO_HOSTLESS Capture",
18035 0, 0, 0, 0),
18036 SND_SOC_DAPM_AIF_IN("HDMI_DL_HL", "HDMI_HOSTLESS Playback", 0, 0, 0, 0),
18037 SND_SOC_DAPM_AIF_IN("SEC_I2S_DL_HL", "SEC_I2S_RX_HOSTLESS Playback",
18038 0, 0, 0, 0),
18039 SND_SOC_DAPM_AIF_IN("INT0_MI2S_DL_HL",
18040 "INT0 MI2S_RX Hostless Playback",
18041 0, 0, 0, 0),
18042 SND_SOC_DAPM_AIF_IN("INT4_MI2S_DL_HL",
18043 "INT4 MI2S_RX Hostless Playback",
18044 0, 0, 0, 0),
18045 SND_SOC_DAPM_AIF_IN("PRI_MI2S_DL_HL",
18046 "Primary MI2S_RX Hostless Playback",
18047 0, 0, 0, 0),
18048 SND_SOC_DAPM_AIF_IN("SEC_MI2S_DL_HL",
18049 "Secondary MI2S_RX Hostless Playback",
18050 0, 0, 0, 0),
18051 SND_SOC_DAPM_AIF_IN("TERT_MI2S_DL_HL",
18052 "Tertiary MI2S_RX Hostless Playback",
18053 0, 0, 0, 0),
18054 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_DL_HL",
18055 "Quaternary MI2S_RX Hostless Playback",
18056 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018057 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_DL_HL",
18058 "Quinary MI2S_RX Hostless Playback",
18059 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018060
18061 SND_SOC_DAPM_AIF_IN("AUXPCM_DL_HL", "AUXPCM_HOSTLESS Playback",
18062 0, 0, 0, 0),
18063 SND_SOC_DAPM_AIF_OUT("AUXPCM_UL_HL", "AUXPCM_HOSTLESS Capture",
18064 0, 0, 0, 0),
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080018065 SND_SOC_DAPM_AIF_IN("SEC_AUXPCM_DL_HL", "SEC_AUXPCM_HOSTLESS Playback",
18066 0, 0, 0, 0),
18067 SND_SOC_DAPM_AIF_OUT("SEC_AUXPCM_UL_HL", "SEC_AUXPCM_HOSTLESS Capture",
18068 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018069 SND_SOC_DAPM_AIF_OUT("MI2S_UL_HL", "MI2S_TX_HOSTLESS Capture",
18070 0, 0, 0, 0),
18071 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_UL_HL",
18072 "INT3 MI2S_TX Hostless Capture",
18073 0, 0, 0, 0),
18074 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_UL_HL",
18075 "Tertiary MI2S_TX Hostless Capture",
18076 0, 0, 0, 0),
18077 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_UL_HL",
18078 "Secondary MI2S_TX Hostless Capture",
18079 0, 0, 0, 0),
18080 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_UL_HL",
18081 "Primary MI2S_TX Hostless Capture",
18082 0, 0, 0, 0),
18083 SND_SOC_DAPM_AIF_OUT("MI2S_DL_HL", "MI2S_RX_HOSTLESS Playback",
18084 0, 0, 0, 0),
18085 SND_SOC_DAPM_AIF_IN("DTMF_DL_HL", "DTMF_RX_HOSTLESS Playback",
18086 0, 0, 0, 0),
18087 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_UL_HL",
18088 "Quaternary MI2S_TX Hostless Capture",
18089 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018090 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_UL_HL",
18091 "Quinary MI2S_TX Hostless Capture",
18092 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018093
18094 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_0_DL_HL",
18095 "Primary TDM0 Hostless Playback",
18096 0, 0, 0, 0),
18097 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_0_UL_HL",
18098 "Primary TDM0 Hostless Capture",
18099 0, 0, 0, 0),
18100 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_1_DL_HL",
18101 "Primary TDM1 Hostless Playback",
18102 0, 0, 0, 0),
18103 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_1_UL_HL",
18104 "Primary TDM1 Hostless Capture",
18105 0, 0, 0, 0),
18106 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_2_DL_HL",
18107 "Primary TDM2 Hostless Playback",
18108 0, 0, 0, 0),
18109 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_2_UL_HL",
18110 "Primary TDM2 Hostless Capture",
18111 0, 0, 0, 0),
18112 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_3_DL_HL",
18113 "Primary TDM3 Hostless Playback",
18114 0, 0, 0, 0),
18115 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_3_UL_HL",
18116 "Primary TDM3 Hostless Capture",
18117 0, 0, 0, 0),
18118 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_4_DL_HL",
18119 "Primary TDM4 Hostless Playback",
18120 0, 0, 0, 0),
18121 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_4_UL_HL",
18122 "Primary TDM4 Hostless Capture",
18123 0, 0, 0, 0),
18124 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_5_DL_HL",
18125 "Primary TDM5 Hostless Playback",
18126 0, 0, 0, 0),
18127 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_5_UL_HL",
18128 "Primary TDM5 Hostless Capture",
18129 0, 0, 0, 0),
18130 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_6_DL_HL",
18131 "Primary TDM6 Hostless Playback",
18132 0, 0, 0, 0),
18133 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_6_UL_HL",
18134 "Primary TDM6 Hostless Capture",
18135 0, 0, 0, 0),
18136 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_7_DL_HL",
18137 "Primary TDM7 Hostless Playback",
18138 0, 0, 0, 0),
18139 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_7_UL_HL",
18140 "Primary TDM7 Hostless Capture",
18141 0, 0, 0, 0),
18142 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_0_DL_HL",
18143 "Secondary TDM0 Hostless Playback",
18144 0, 0, 0, 0),
18145 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_0_UL_HL",
18146 "Secondary TDM0 Hostless Capture",
18147 0, 0, 0, 0),
18148 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_1_DL_HL",
18149 "Secondary TDM1 Hostless Playback",
18150 0, 0, 0, 0),
18151 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_1_UL_HL",
18152 "Secondary TDM1 Hostless Capture",
18153 0, 0, 0, 0),
18154 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_2_DL_HL",
18155 "Secondary TDM2 Hostless Playback",
18156 0, 0, 0, 0),
18157 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_2_UL_HL",
18158 "Secondary TDM2 Hostless Capture",
18159 0, 0, 0, 0),
18160 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_3_DL_HL",
18161 "Secondary TDM3 Hostless Playback",
18162 0, 0, 0, 0),
18163 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_3_UL_HL",
18164 "Secondary TDM3 Hostless Capture",
18165 0, 0, 0, 0),
18166 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_4_DL_HL",
18167 "Secondary TDM4 Hostless Playback",
18168 0, 0, 0, 0),
18169 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_4_UL_HL",
18170 "Secondary TDM4 Hostless Capture",
18171 0, 0, 0, 0),
18172 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_5_DL_HL",
18173 "Secondary TDM5 Hostless Playback",
18174 0, 0, 0, 0),
18175 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_5_UL_HL",
18176 "Secondary TDM5 Hostless Capture",
18177 0, 0, 0, 0),
18178 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_6_DL_HL",
18179 "Secondary TDM6 Hostless Playback",
18180 0, 0, 0, 0),
18181 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_6_UL_HL",
18182 "Secondary TDM6 Hostless Capture",
18183 0, 0, 0, 0),
18184 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_7_DL_HL",
18185 "Secondary TDM7 Hostless Playback",
18186 0, 0, 0, 0),
18187 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_7_UL_HL",
18188 "Secondary TDM7 Hostless Capture",
18189 0, 0, 0, 0),
18190 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_0_DL_HL",
18191 "Tertiary TDM0 Hostless Playback",
18192 0, 0, 0, 0),
18193 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_0_UL_HL",
18194 "Tertiary TDM0 Hostless Capture",
18195 0, 0, 0, 0),
18196 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_1_DL_HL",
18197 "Tertiary TDM1 Hostless Playback",
18198 0, 0, 0, 0),
18199 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_1_UL_HL",
18200 "Tertiary TDM1 Hostless Capture",
18201 0, 0, 0, 0),
18202 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_2_DL_HL",
18203 "Tertiary TDM2 Hostless Playback",
18204 0, 0, 0, 0),
18205 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_2_UL_HL",
18206 "Tertiary TDM2 Hostless Capture",
18207 0, 0, 0, 0),
18208 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_3_DL_HL",
18209 "Tertiary TDM3 Hostless Playback",
18210 0, 0, 0, 0),
18211 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_3_UL_HL",
18212 "Tertiary TDM3 Hostless Capture",
18213 0, 0, 0, 0),
18214 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_4_DL_HL",
18215 "Tertiary TDM4 Hostless Playback",
18216 0, 0, 0, 0),
18217 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_4_UL_HL",
18218 "Tertiary TDM4 Hostless Capture",
18219 0, 0, 0, 0),
18220 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_5_DL_HL",
18221 "Tertiary TDM5 Hostless Playback",
18222 0, 0, 0, 0),
18223 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_5_UL_HL",
18224 "Tertiary TDM5 Hostless Capture",
18225 0, 0, 0, 0),
18226 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_6_DL_HL",
18227 "Tertiary TDM6 Hostless Playback",
18228 0, 0, 0, 0),
18229 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_6_UL_HL",
18230 "Tertiary TDM6 Hostless Capture",
18231 0, 0, 0, 0),
18232 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_7_DL_HL",
18233 "Tertiary TDM7 Hostless Playback",
18234 0, 0, 0, 0),
18235 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_7_UL_HL",
18236 "Tertiary TDM7 Hostless Capture",
18237 0, 0, 0, 0),
18238 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_0_DL_HL",
18239 "Quaternary TDM0 Hostless Playback",
18240 0, 0, 0, 0),
18241 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_0_UL_HL",
18242 "Quaternary TDM0 Hostless Capture",
18243 0, 0, 0, 0),
18244 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_1_DL_HL",
18245 "Quaternary TDM1 Hostless Playback",
18246 0, 0, 0, 0),
18247 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_1_UL_HL",
18248 "Quaternary TDM1 Hostless Capture",
18249 0, 0, 0, 0),
18250 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_2_DL_HL",
18251 "Quaternary TDM2 Hostless Playback",
18252 0, 0, 0, 0),
18253 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_2_UL_HL",
18254 "Quaternary TDM2 Hostless Capture",
18255 0, 0, 0, 0),
18256 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_3_DL_HL",
18257 "Quaternary TDM3 Hostless Playback",
18258 0, 0, 0, 0),
18259 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_3_UL_HL",
18260 "Quaternary TDM3 Hostless Capture",
18261 0, 0, 0, 0),
18262 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_4_DL_HL",
18263 "Quaternary TDM4 Hostless Playback",
18264 0, 0, 0, 0),
18265 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_4_UL_HL",
18266 "Quaternary TDM4 Hostless Capture",
18267 0, 0, 0, 0),
18268 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_5_DL_HL",
18269 "Quaternary TDM5 Hostless Playback",
18270 0, 0, 0, 0),
18271 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_5_UL_HL",
18272 "Quaternary TDM5 Hostless Capture",
18273 0, 0, 0, 0),
18274 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_6_DL_HL",
18275 "Quaternary TDM6 Hostless Playback",
18276 0, 0, 0, 0),
18277 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_6_UL_HL",
18278 "Quaternary TDM6 Hostless Capture",
18279 0, 0, 0, 0),
18280 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_7_DL_HL",
18281 "Quaternary TDM7 Hostless Playback",
18282 0, 0, 0, 0),
18283 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_7_UL_HL",
18284 "Quaternary TDM7 Hostless Capture",
18285 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018286 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_0_DL_HL",
18287 "Quinary TDM0 Hostless Playback",
18288 0, 0, 0, 0),
18289 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_0_UL_HL",
18290 "Quinary TDM0 Hostless Capture",
18291 0, 0, 0, 0),
18292 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_1_DL_HL",
18293 "Quinary TDM1 Hostless Playback",
18294 0, 0, 0, 0),
18295 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_1_UL_HL",
18296 "Quinary TDM1 Hostless Capture",
18297 0, 0, 0, 0),
18298 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_2_DL_HL",
18299 "Quinary TDM2 Hostless Playback",
18300 0, 0, 0, 0),
18301 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_2_UL_HL",
18302 "Quinary TDM2 Hostless Capture",
18303 0, 0, 0, 0),
18304 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_3_DL_HL",
18305 "Quinary TDM3 Hostless Playback",
18306 0, 0, 0, 0),
18307 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_3_UL_HL",
18308 "Quinary TDM3 Hostless Capture",
18309 0, 0, 0, 0),
18310 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_4_DL_HL",
18311 "Quinary TDM4 Hostless Playback",
18312 0, 0, 0, 0),
18313 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_4_UL_HL",
18314 "Quinary TDM4 Hostless Capture",
18315 0, 0, 0, 0),
18316 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_5_DL_HL",
18317 "Quinary TDM5 Hostless Playback",
18318 0, 0, 0, 0),
18319 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_5_UL_HL",
18320 "Quinary TDM5 Hostless Capture",
18321 0, 0, 0, 0),
18322 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_6_DL_HL",
18323 "Quinary TDM6 Hostless Playback",
18324 0, 0, 0, 0),
18325 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_6_UL_HL",
18326 "Quinary TDM6 Hostless Capture",
18327 0, 0, 0, 0),
18328 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_7_DL_HL",
18329 "Quinary TDM7 Hostless Playback",
18330 0, 0, 0, 0),
18331 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_7_UL_HL",
18332 "Quinary TDM7 Hostless Capture",
18333 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018334
18335 /* LSM */
18336 SND_SOC_DAPM_AIF_OUT("LSM1_UL_HL", "Listen 1 Audio Service Capture",
18337 0, 0, 0, 0),
18338 SND_SOC_DAPM_AIF_OUT("LSM2_UL_HL", "Listen 2 Audio Service Capture",
18339 0, 0, 0, 0),
18340 SND_SOC_DAPM_AIF_OUT("LSM3_UL_HL", "Listen 3 Audio Service Capture",
18341 0, 0, 0, 0),
18342 SND_SOC_DAPM_AIF_OUT("LSM4_UL_HL", "Listen 4 Audio Service Capture",
18343 0, 0, 0, 0),
18344 SND_SOC_DAPM_AIF_OUT("LSM5_UL_HL", "Listen 5 Audio Service Capture",
18345 0, 0, 0, 0),
18346 SND_SOC_DAPM_AIF_OUT("LSM6_UL_HL", "Listen 6 Audio Service Capture",
18347 0, 0, 0, 0),
18348 SND_SOC_DAPM_AIF_OUT("LSM7_UL_HL", "Listen 7 Audio Service Capture",
18349 0, 0, 0, 0),
18350 SND_SOC_DAPM_AIF_OUT("LSM8_UL_HL", "Listen 8 Audio Service Capture",
18351 0, 0, 0, 0),
18352 SND_SOC_DAPM_AIF_IN("QCHAT_DL", "QCHAT Playback", 0, 0, 0, 0),
18353 SND_SOC_DAPM_AIF_OUT("QCHAT_UL", "QCHAT Capture", 0, 0, 0, 0),
18354 /* Backend AIF */
18355 /* Stream name equals to backend dai link stream name */
18356 SND_SOC_DAPM_AIF_OUT("PRI_I2S_RX", "Primary I2S Playback", 0, 0, 0, 0),
18357 SND_SOC_DAPM_AIF_OUT("SEC_I2S_RX", "Secondary I2S Playback",
18358 0, 0, 0, 0),
Ralf Herzc8701f72018-06-20 11:37:35 +020018359 SND_SOC_DAPM_AIF_OUT("PRI_SPDIF_RX", "Primary SPDIF Playback",
18360 0, 0, 0, 0),
18361 SND_SOC_DAPM_AIF_IN("PRI_SPDIF_TX", "Primary SPDIF Capture",
18362 0, 0, 0, 0),
18363 SND_SOC_DAPM_AIF_OUT("SEC_SPDIF_RX", "Secondary SPDIF Playback",
18364 0, 0, 0, 0),
18365 SND_SOC_DAPM_AIF_IN("SEC_SPDIF_TX", "Secondary SPDIF Capture",
18366 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018367 SND_SOC_DAPM_AIF_OUT("SLIMBUS_0_RX", "Slimbus Playback", 0, 0, 0, 0),
18368 SND_SOC_DAPM_AIF_OUT("SLIMBUS_2_RX", "Slimbus2 Playback", 0, 0, 0, 0),
18369 SND_SOC_DAPM_AIF_OUT("SLIMBUS_5_RX", "Slimbus5 Playback", 0, 0, 0, 0),
18370 SND_SOC_DAPM_AIF_OUT("HDMI", "HDMI Playback", 0, 0, 0, 0),
18371 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT", "Display Port Playback",
18372 0, 0, 0, 0),
Karthikeyan Mani57550082018-05-03 18:43:58 -070018373 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT1", "Display Port1 Playback",
18374 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018375 SND_SOC_DAPM_AIF_OUT("MI2S_RX", "MI2S Playback", 0, 0, 0, 0),
18376 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_RX", "Quaternary MI2S Playback",
18377 0, 0, 0, 0),
18378 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_RX", "Tertiary MI2S Playback",
18379 0, 0, 0, 0),
18380 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX", "Secondary MI2S Playback",
18381 0, 0, 0, 0),
18382 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX_SD1",
18383 "Secondary MI2S Playback SD1",
18384 0, 0, 0, 0),
18385 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_RX", "Primary MI2S Playback",
18386 0, 0, 0, 0),
18387 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_RX", "INT0 MI2S Playback",
18388 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053018389 SND_SOC_DAPM_AIF_OUT("INT2_MI2S_RX", "INT2 MI2S Playback",
18390 0, 0, 0, 0),
18391 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_RX", "INT3 MI2S Playback",
18392 0, 0, 0, 0),
18393 SND_SOC_DAPM_AIF_OUT("INT5_MI2S_RX", "INT5 MI2S Playback",
18394 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018395 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_RX", "INT4 MI2S Playback",
18396 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053018397 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_TX", "INT4 MI2S Capture",
18398 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018399 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_RX", "Quinary MI2S Playback",
18400 0, 0, 0, 0),
18401 SND_SOC_DAPM_AIF_IN("PRI_I2S_TX", "Primary I2S Capture", 0, 0, 0, 0),
18402 SND_SOC_DAPM_AIF_IN("MI2S_TX", "MI2S Capture", 0, 0, 0, 0),
18403 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_TX", "Quaternary MI2S Capture",
18404 0, 0, 0, 0),
18405 SND_SOC_DAPM_AIF_IN("PRI_MI2S_TX", "Primary MI2S Capture",
18406 0, 0, 0, 0),
18407 SND_SOC_DAPM_AIF_IN("TERT_MI2S_TX", "Tertiary MI2S Capture",
18408 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053018409 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_TX", "INT0 MI2S Capture",
18410 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018411 SND_SOC_DAPM_AIF_IN("INT2_MI2S_TX", "INT2 MI2S Capture",
18412 0, 0, 0, 0),
18413 SND_SOC_DAPM_AIF_IN("INT3_MI2S_TX", "INT3 MI2S Capture",
18414 0, 0, 0, 0),
18415 SND_SOC_DAPM_AIF_IN("SEC_MI2S_TX", "Secondary MI2S Capture",
18416 0, 0, 0, 0),
18417 SND_SOC_DAPM_AIF_IN("SLIMBUS_0_TX", "Slimbus Capture", 0, 0, 0, 0),
18418 SND_SOC_DAPM_AIF_IN("SLIMBUS_2_TX", "Slimbus2 Capture", 0, 0, 0, 0),
18419 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_TX", "Quinary MI2S Capture",
18420 0, 0, 0, 0),
18421 SND_SOC_DAPM_AIF_IN("SENARY_MI2S_TX", "Senary MI2S Capture",
18422 0, 0, 0, 0),
18423 SND_SOC_DAPM_AIF_OUT("INT_BT_SCO_RX", "Internal BT-SCO Playback",
18424 0, 0, 0, 0),
18425 SND_SOC_DAPM_AIF_IN("INT_BT_SCO_TX", "Internal BT-SCO Capture",
18426 0, 0, 0, 0),
18427 SND_SOC_DAPM_AIF_OUT("INT_BT_A2DP_RX", "Internal BT-A2DP Playback",
18428 0, 0, 0, 0),
18429 SND_SOC_DAPM_AIF_OUT("INT_FM_RX", "Internal FM Playback",
18430 0, 0, 0, 0),
18431 SND_SOC_DAPM_AIF_IN("INT_FM_TX", "Internal FM Capture",
18432 0, 0, 0, 0),
18433 SND_SOC_DAPM_AIF_OUT("PCM_RX", "AFE Playback",
18434 0, 0, 0, 0),
18435 SND_SOC_DAPM_AIF_IN("PCM_TX", "AFE Capture",
18436 0, 0, 0, 0),
18437 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_0", "Primary TDM0 Playback",
18438 0, 0, 0, 0),
18439 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_0", "Primary TDM0 Capture",
18440 0, 0, 0, 0),
18441 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_1", "Primary TDM1 Playback",
18442 0, 0, 0, 0),
18443 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_1", "Primary TDM1 Capture",
18444 0, 0, 0, 0),
18445 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_2", "Primary TDM2 Playback",
18446 0, 0, 0, 0),
18447 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_2", "Primary TDM2 Capture",
18448 0, 0, 0, 0),
18449 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_3", "Primary TDM3 Playback",
18450 0, 0, 0, 0),
18451 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_3", "Primary TDM3 Capture",
18452 0, 0, 0, 0),
18453 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_4", "Primary TDM4 Playback",
18454 0, 0, 0, 0),
18455 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_4", "Primary TDM4 Capture",
18456 0, 0, 0, 0),
18457 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_5", "Primary TDM5 Playback",
18458 0, 0, 0, 0),
18459 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_5", "Primary TDM5 Capture",
18460 0, 0, 0, 0),
18461 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_6", "Primary TDM6 Playback",
18462 0, 0, 0, 0),
18463 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_6", "Primary TDM6 Capture",
18464 0, 0, 0, 0),
18465 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_7", "Primary TDM7 Playback",
18466 0, 0, 0, 0),
18467 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_7", "Primary TDM7 Capture",
18468 0, 0, 0, 0),
18469 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_0", "Secondary TDM0 Playback",
18470 0, 0, 0, 0),
18471 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_0", "Secondary TDM0 Capture",
18472 0, 0, 0, 0),
18473 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_1", "Secondary TDM1 Playback",
18474 0, 0, 0, 0),
18475 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_1", "Secondary TDM1 Capture",
18476 0, 0, 0, 0),
18477 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_2", "Secondary TDM2 Playback",
18478 0, 0, 0, 0),
18479 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_2", "Secondary TDM2 Capture",
18480 0, 0, 0, 0),
18481 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_3", "Secondary TDM3 Playback",
18482 0, 0, 0, 0),
18483 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_3", "Secondary TDM3 Capture",
18484 0, 0, 0, 0),
18485 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_4", "Secondary TDM4 Playback",
18486 0, 0, 0, 0),
18487 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_4", "Secondary TDM4 Capture",
18488 0, 0, 0, 0),
18489 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_5", "Secondary TDM5 Playback",
18490 0, 0, 0, 0),
18491 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_5", "Secondary TDM5 Capture",
18492 0, 0, 0, 0),
18493 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_6", "Secondary TDM6 Playback",
18494 0, 0, 0, 0),
18495 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_6", "Secondary TDM6 Capture",
18496 0, 0, 0, 0),
18497 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_7", "Secondary TDM7 Playback",
18498 0, 0, 0, 0),
18499 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_7", "Secondary TDM7 Capture",
18500 0, 0, 0, 0),
18501 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_0", "Tertiary TDM0 Playback",
18502 0, 0, 0, 0),
18503 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_0", "Tertiary TDM0 Capture",
18504 0, 0, 0, 0),
18505 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_1", "Tertiary TDM1 Playback",
18506 0, 0, 0, 0),
18507 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_1", "Tertiary TDM1 Capture",
18508 0, 0, 0, 0),
18509 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_2", "Tertiary TDM2 Playback",
18510 0, 0, 0, 0),
18511 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_2", "Tertiary TDM2 Capture",
18512 0, 0, 0, 0),
18513 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_3", "Tertiary TDM3 Playback",
18514 0, 0, 0, 0),
18515 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_3", "Tertiary TDM3 Capture",
18516 0, 0, 0, 0),
18517 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_4", "Tertiary TDM4 Playback",
18518 0, 0, 0, 0),
18519 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_4", "Tertiary TDM4 Capture",
18520 0, 0, 0, 0),
18521 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_5", "Tertiary TDM5 Playback",
18522 0, 0, 0, 0),
18523 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_5", "Tertiary TDM5 Capture",
18524 0, 0, 0, 0),
18525 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_6", "Tertiary TDM6 Playback",
18526 0, 0, 0, 0),
18527 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_6", "Tertiary TDM6 Capture",
18528 0, 0, 0, 0),
18529 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_7", "Tertiary TDM7 Playback",
18530 0, 0, 0, 0),
18531 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_7", "Tertiary TDM7 Capture",
18532 0, 0, 0, 0),
18533 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_0", "Quaternary TDM0 Playback",
18534 0, 0, 0, 0),
18535 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_0", "Quaternary TDM0 Capture",
18536 0, 0, 0, 0),
18537 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_1", "Quaternary TDM1 Playback",
18538 0, 0, 0, 0),
18539 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_1", "Quaternary TDM1 Capture",
18540 0, 0, 0, 0),
18541 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_2", "Quaternary TDM2 Playback",
18542 0, 0, 0, 0),
18543 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_2", "Quaternary TDM2 Capture",
18544 0, 0, 0, 0),
18545 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_3", "Quaternary TDM3 Playback",
18546 0, 0, 0, 0),
18547 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_3", "Quaternary TDM3 Capture",
18548 0, 0, 0, 0),
18549 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_4", "Quaternary TDM4 Playback",
18550 0, 0, 0, 0),
18551 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_4", "Quaternary TDM4 Capture",
18552 0, 0, 0, 0),
18553 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_5", "Quaternary TDM5 Playback",
18554 0, 0, 0, 0),
18555 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_5", "Quaternary TDM5 Capture",
18556 0, 0, 0, 0),
18557 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_6", "Quaternary TDM6 Playback",
18558 0, 0, 0, 0),
18559 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_6", "Quaternary TDM6 Capture",
18560 0, 0, 0, 0),
18561 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_7", "Quaternary TDM7 Playback",
18562 0, 0, 0, 0),
18563 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_7", "Quaternary TDM7 Capture",
18564 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018565 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_0", "Quinary TDM0 Playback",
18566 0, 0, 0, 0),
18567 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_0", "Quinary TDM0 Capture",
18568 0, 0, 0, 0),
18569 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_1", "Quinary TDM1 Playback",
18570 0, 0, 0, 0),
18571 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_1", "Quinary TDM1 Capture",
18572 0, 0, 0, 0),
18573 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_2", "Quinary TDM2 Playback",
18574 0, 0, 0, 0),
18575 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_2", "Quinary TDM2 Capture",
18576 0, 0, 0, 0),
18577 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_3", "Quinary TDM3 Playback",
18578 0, 0, 0, 0),
18579 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_3", "Quinary TDM3 Capture",
18580 0, 0, 0, 0),
18581 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_4", "Quinary TDM4 Playback",
18582 0, 0, 0, 0),
18583 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_4", "Quinary TDM4 Capture",
18584 0, 0, 0, 0),
18585 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_5", "Quinary TDM5 Playback",
18586 0, 0, 0, 0),
18587 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_5", "Quinary TDM5 Capture",
18588 0, 0, 0, 0),
18589 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_6", "Quinary TDM6 Playback",
18590 0, 0, 0, 0),
18591 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_6", "Quinary TDM6 Capture",
18592 0, 0, 0, 0),
18593 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_7", "Quinary TDM7 Playback",
18594 0, 0, 0, 0),
18595 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_7", "Quinary TDM7 Capture",
18596 0, 0, 0, 0),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018597 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_0", "WSA CDC DMA0 Playback",
18598 0, 0, 0, 0),
18599 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_0", "WSA CDC DMA0 Capture",
18600 0, 0, 0, 0),
18601 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_1", "WSA CDC DMA1 Playback",
18602 0, 0, 0, 0),
18603 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_1", "WSA CDC DMA1 Capture",
18604 0, 0, 0, 0),
18605 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_2", "WSA CDC DMA2 Capture",
18606 0, 0, 0, 0),
18607 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_0", "VA CDC DMA0 Capture",
18608 0, 0, 0, 0),
18609 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_1", "VA CDC DMA1 Capture",
18610 0, 0, 0, 0),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053018611 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_0", "RX CDC DMA0 Playback",
18612 0, 0, 0, 0),
18613 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_0", "TX CDC DMA0 Capture",
18614 0, 0, 0, 0),
18615 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_1", "RX CDC DMA1 Playback",
18616 0, 0, 0, 0),
18617 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_1", "TX CDC DMA1 Capture",
18618 0, 0, 0, 0),
18619 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_2", "RX CDC DMA2 Playback",
18620 0, 0, 0, 0),
18621 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_2", "TX CDC DMA2 Capture",
18622 0, 0, 0, 0),
18623 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_3", "RX CDC DMA3 Playback",
18624 0, 0, 0, 0),
18625 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_3", "TX CDC DMA3 Capture",
18626 0, 0, 0, 0),
18627 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_4", "RX CDC DMA4 Playback",
18628 0, 0, 0, 0),
18629 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_4", "TX CDC DMA4 Capture",
18630 0, 0, 0, 0),
18631 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_5", "RX CDC DMA5 Playback",
18632 0, 0, 0, 0),
18633 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_5", "TX CDC DMA5 Capture",
18634 0, 0, 0, 0),
18635 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_6", "RX CDC DMA6 Playback",
18636 0, 0, 0, 0),
18637 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_7", "RX CDC DMA7 Playback",
18638 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018639 /* incall */
18640 SND_SOC_DAPM_AIF_OUT("VOICE_PLAYBACK_TX", "Voice Farend Playback",
18641 0, 0, 0, 0),
18642 SND_SOC_DAPM_AIF_OUT("VOICE2_PLAYBACK_TX", "Voice2 Farend Playback",
18643 0, 0, 0, 0),
18644 SND_SOC_DAPM_AIF_OUT("SLIMBUS_4_RX", "Slimbus4 Playback",
18645 0, 0, 0, 0),
18646 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_TX", "Voice Uplink Capture",
18647 0, 0, 0, 0),
18648 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_RX", "Voice Downlink Capture",
18649 0, 0, 0, 0),
18650 SND_SOC_DAPM_AIF_IN("SLIMBUS_4_TX", "Slimbus4 Capture",
18651 0, 0, 0, 0),
18652 SND_SOC_DAPM_AIF_IN("SENARY_TX", "Senary_mi2s Capture",
18653 0, 0, 0, 0),
18654 SND_SOC_DAPM_AIF_IN("INT5_MI2S_TX", "INT5 MI2S Capture",
18655 0, 0, 0, 0),
18656 SND_SOC_DAPM_AIF_IN("SLIMBUS_5_TX", "Slimbus5 Capture", 0, 0, 0, 0),
18657
18658 SND_SOC_DAPM_AIF_OUT("AUX_PCM_RX", "AUX PCM Playback", 0, 0, 0, 0),
18659 SND_SOC_DAPM_AIF_IN("AUX_PCM_TX", "AUX PCM Capture", 0, 0, 0, 0),
18660 SND_SOC_DAPM_AIF_OUT("SEC_AUX_PCM_RX", "Sec AUX PCM Playback",
18661 0, 0, 0, 0),
18662 SND_SOC_DAPM_AIF_IN("SEC_AUX_PCM_TX", "Sec AUX PCM Capture",
18663 0, 0, 0, 0),
18664 SND_SOC_DAPM_AIF_OUT("TERT_AUX_PCM_RX", "Tert AUX PCM Playback",
18665 0, 0, 0, 0),
18666 SND_SOC_DAPM_AIF_IN("TERT_AUX_PCM_TX", "Tert AUX PCM Capture",
18667 0, 0, 0, 0),
18668 SND_SOC_DAPM_AIF_OUT("QUAT_AUX_PCM_RX", "Quat AUX PCM Playback",
18669 0, 0, 0, 0),
18670 SND_SOC_DAPM_AIF_IN("QUAT_AUX_PCM_TX", "Quat AUX PCM Capture",
18671 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018672 SND_SOC_DAPM_AIF_OUT("QUIN_AUX_PCM_RX", "Quin AUX PCM Playback",
18673 0, 0, 0, 0),
18674 SND_SOC_DAPM_AIF_IN("QUIN_AUX_PCM_TX", "Quin AUX PCM Capture",
18675 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018676 SND_SOC_DAPM_AIF_IN("VOICE_STUB_DL", "VOICE_STUB Playback", 0, 0, 0, 0),
18677 SND_SOC_DAPM_AIF_OUT("VOICE_STUB_UL", "VOICE_STUB Capture", 0, 0, 0, 0),
18678 SND_SOC_DAPM_AIF_IN("VOICE2_STUB_DL", "VOICE2_STUB Playback",
18679 0, 0, 0, 0),
18680 SND_SOC_DAPM_AIF_OUT("VOICE2_STUB_UL", "VOICE2_STUB Capture",
18681 0, 0, 0, 0),
18682 SND_SOC_DAPM_AIF_IN("VOLTE_STUB_DL", "VOLTE_STUB Playback", 0, 0, 0, 0),
18683 SND_SOC_DAPM_AIF_OUT("VOLTE_STUB_UL", "VOLTE_STUB Capture", 0, 0, 0, 0),
18684 SND_SOC_DAPM_AIF_OUT("STUB_RX", "Stub Playback", 0, 0, 0, 0),
18685 SND_SOC_DAPM_AIF_IN("STUB_TX", "Stub Capture", 0, 0, 0, 0),
18686 SND_SOC_DAPM_AIF_OUT("SLIMBUS_1_RX", "Slimbus1 Playback", 0, 0, 0, 0),
18687 SND_SOC_DAPM_AIF_IN("SLIMBUS_1_TX", "Slimbus1 Capture", 0, 0, 0, 0),
18688 SND_SOC_DAPM_AIF_IN("STUB_1_TX", "Stub1 Capture", 0, 0, 0, 0),
18689 SND_SOC_DAPM_AIF_OUT("SLIMBUS_3_RX", "Slimbus3 Playback", 0, 0, 0, 0),
18690 SND_SOC_DAPM_AIF_IN("SLIMBUS_3_TX", "Slimbus3 Capture", 0, 0, 0, 0),
18691 /* In- call recording */
18692 SND_SOC_DAPM_AIF_OUT("SLIMBUS_6_RX", "Slimbus6 Playback", 0, 0, 0, 0),
18693 SND_SOC_DAPM_AIF_IN("SLIMBUS_6_TX", "Slimbus6 Capture", 0, 0, 0, 0),
18694
18695 SND_SOC_DAPM_AIF_OUT("SLIMBUS_7_RX", "Slimbus7 Playback", 0, 0, 0, 0),
18696 SND_SOC_DAPM_AIF_IN("SLIMBUS_7_TX", "Slimbus7 Capture", 0, 0, 0, 0),
18697
18698 SND_SOC_DAPM_AIF_OUT("SLIMBUS_8_RX", "Slimbus8 Playback", 0, 0, 0, 0),
18699 SND_SOC_DAPM_AIF_IN("SLIMBUS_8_TX", "Slimbus8 Capture", 0, 0, 0, 0),
18700 SND_SOC_DAPM_AIF_OUT("USB_AUDIO_RX", "USB Audio Playback", 0, 0, 0, 0),
18701 SND_SOC_DAPM_AIF_IN("USB_AUDIO_TX", "USB Audio Capture", 0, 0, 0, 0),
18702
18703 /* Switch Definitions */
18704 SND_SOC_DAPM_SWITCH("SLIMBUS_DL_HL", SND_SOC_NOPM, 0, 0,
18705 &slim_fm_switch_mixer_controls),
18706 SND_SOC_DAPM_SWITCH("SLIMBUS1_DL_HL", SND_SOC_NOPM, 0, 0,
18707 &slim1_fm_switch_mixer_controls),
18708 SND_SOC_DAPM_SWITCH("SLIMBUS3_DL_HL", SND_SOC_NOPM, 0, 0,
18709 &slim3_fm_switch_mixer_controls),
18710 SND_SOC_DAPM_SWITCH("SLIMBUS4_DL_HL", SND_SOC_NOPM, 0, 0,
18711 &slim4_fm_switch_mixer_controls),
18712 SND_SOC_DAPM_SWITCH("SLIMBUS6_DL_HL", SND_SOC_NOPM, 0, 0,
18713 &slim6_fm_switch_mixer_controls),
18714 SND_SOC_DAPM_SWITCH("PCM_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18715 &pcm_rx_switch_mixer_controls),
18716 SND_SOC_DAPM_SWITCH("INT0_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18717 &int0_mi2s_rx_switch_mixer_controls),
18718 SND_SOC_DAPM_SWITCH("INT4_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18719 &int4_mi2s_rx_switch_mixer_controls),
18720 SND_SOC_DAPM_SWITCH("PRI_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18721 &pri_mi2s_rx_switch_mixer_controls),
18722 SND_SOC_DAPM_SWITCH("SEC_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18723 &sec_mi2s_rx_switch_mixer_controls),
18724 SND_SOC_DAPM_SWITCH("TERT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18725 &tert_mi2s_rx_switch_mixer_controls),
18726 SND_SOC_DAPM_SWITCH("QUAT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18727 &quat_mi2s_rx_switch_mixer_controls),
Rohit Kumara5077932017-09-10 22:05:05 +053018728 SND_SOC_DAPM_SWITCH("QUIN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18729 &quin_mi2s_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018730 SND_SOC_DAPM_SWITCH("HFP_PRI_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
18731 &hfp_pri_aux_switch_mixer_controls),
18732 SND_SOC_DAPM_SWITCH("HFP_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
18733 &hfp_aux_switch_mixer_controls),
18734 SND_SOC_DAPM_SWITCH("HFP_INT_UL_HL", SND_SOC_NOPM, 0, 0,
18735 &hfp_int_switch_mixer_controls),
18736 SND_SOC_DAPM_SWITCH("HFP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
18737 &hfp_slim7_switch_mixer_controls),
18738 SND_SOC_DAPM_SWITCH("USB_DL_HL", SND_SOC_NOPM, 0, 0,
18739 &usb_switch_mixer_controls),
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080018740 SND_SOC_DAPM_SWITCH("A2DP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
18741 &a2dp_slim7_switch_mixer_controls),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053018742 SND_SOC_DAPM_SWITCH("WSA_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053018743 &cdc_dma_wsa_switch_mixer_controls),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053018744 SND_SOC_DAPM_SWITCH("RX_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053018745 &cdc_dma_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018746
18747 /* Mixer definitions */
18748 SND_SOC_DAPM_MIXER("PRI_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18749 pri_i2s_rx_mixer_controls, ARRAY_SIZE(pri_i2s_rx_mixer_controls)),
18750 SND_SOC_DAPM_MIXER("SEC_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18751 sec_i2s_rx_mixer_controls, ARRAY_SIZE(sec_i2s_rx_mixer_controls)),
18752 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18753 slimbus_rx_mixer_controls, ARRAY_SIZE(slimbus_rx_mixer_controls)),
18754 SND_SOC_DAPM_MIXER("SLIMBUS_2_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18755 slimbus_2_rx_mixer_controls, ARRAY_SIZE(slimbus_2_rx_mixer_controls)),
18756 SND_SOC_DAPM_MIXER("SLIMBUS_5_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18757 slimbus_5_rx_mixer_controls, ARRAY_SIZE(slimbus_5_rx_mixer_controls)),
18758 SND_SOC_DAPM_MIXER("SLIMBUS_7_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18759 slimbus_7_rx_mixer_controls, ARRAY_SIZE(slimbus_7_rx_mixer_controls)),
18760 SND_SOC_DAPM_MIXER("HDMI Mixer", SND_SOC_NOPM, 0, 0,
18761 hdmi_mixer_controls, ARRAY_SIZE(hdmi_mixer_controls)),
18762 SND_SOC_DAPM_MIXER("DISPLAY_PORT Mixer", SND_SOC_NOPM, 0, 0,
18763 display_port_mixer_controls, ARRAY_SIZE(display_port_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070018764 SND_SOC_DAPM_MIXER("DISPLAY_PORT1 Mixer", SND_SOC_NOPM, 0, 0,
18765 display_port1_mixer_controls, ARRAY_SIZE(display_port1_mixer_controls)),
Ralf Herzc8701f72018-06-20 11:37:35 +020018766 SND_SOC_DAPM_MIXER("PRI_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18767 pri_spdif_rx_mixer_controls, ARRAY_SIZE(pri_spdif_rx_mixer_controls)),
18768 SND_SOC_DAPM_MIXER("SEC_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18769 sec_spdif_rx_mixer_controls, ARRAY_SIZE(sec_spdif_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018770 SND_SOC_DAPM_MIXER("MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18771 mi2s_rx_mixer_controls, ARRAY_SIZE(mi2s_rx_mixer_controls)),
18772 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18773 quaternary_mi2s_rx_mixer_controls,
18774 ARRAY_SIZE(quaternary_mi2s_rx_mixer_controls)),
18775 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18776 tertiary_mi2s_rx_mixer_controls,
18777 ARRAY_SIZE(tertiary_mi2s_rx_mixer_controls)),
18778 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18779 secondary_mi2s_rx_mixer_controls,
18780 ARRAY_SIZE(secondary_mi2s_rx_mixer_controls)),
18781 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_SD1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18782 secondary_mi2s_rx2_mixer_controls,
18783 ARRAY_SIZE(secondary_mi2s_rx2_mixer_controls)),
18784 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18785 primary_mi2s_rx_mixer_controls,
18786 ARRAY_SIZE(primary_mi2s_rx_mixer_controls)),
18787 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18788 int0_mi2s_rx_mixer_controls,
18789 ARRAY_SIZE(int0_mi2s_rx_mixer_controls)),
18790 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18791 int4_mi2s_rx_mixer_controls,
18792 ARRAY_SIZE(int4_mi2s_rx_mixer_controls)),
18793 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18794 quinary_mi2s_rx_mixer_controls,
18795 ARRAY_SIZE(quinary_mi2s_rx_mixer_controls)),
18796 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18797 pri_tdm_rx_0_mixer_controls,
18798 ARRAY_SIZE(pri_tdm_rx_0_mixer_controls)),
18799 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18800 pri_tdm_rx_1_mixer_controls,
18801 ARRAY_SIZE(pri_tdm_rx_1_mixer_controls)),
18802 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18803 pri_tdm_rx_2_mixer_controls,
18804 ARRAY_SIZE(pri_tdm_rx_2_mixer_controls)),
18805 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18806 pri_tdm_rx_3_mixer_controls,
18807 ARRAY_SIZE(pri_tdm_rx_3_mixer_controls)),
18808 SND_SOC_DAPM_MIXER("PRI_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18809 pri_tdm_tx_0_mixer_controls,
18810 ARRAY_SIZE(pri_tdm_tx_0_mixer_controls)),
18811 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18812 sec_tdm_rx_0_mixer_controls,
18813 ARRAY_SIZE(sec_tdm_rx_0_mixer_controls)),
18814 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18815 sec_tdm_rx_1_mixer_controls,
18816 ARRAY_SIZE(sec_tdm_rx_1_mixer_controls)),
18817 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18818 sec_tdm_rx_2_mixer_controls,
18819 ARRAY_SIZE(sec_tdm_rx_2_mixer_controls)),
18820 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18821 sec_tdm_rx_3_mixer_controls,
18822 ARRAY_SIZE(sec_tdm_rx_3_mixer_controls)),
18823 SND_SOC_DAPM_MIXER("SEC_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18824 sec_tdm_tx_0_mixer_controls,
18825 ARRAY_SIZE(sec_tdm_tx_0_mixer_controls)),
18826 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18827 tert_tdm_rx_0_mixer_controls,
18828 ARRAY_SIZE(tert_tdm_rx_0_mixer_controls)),
18829 SND_SOC_DAPM_MIXER("TERT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18830 tert_tdm_tx_0_mixer_controls,
18831 ARRAY_SIZE(tert_tdm_tx_0_mixer_controls)),
18832 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18833 tert_tdm_rx_1_mixer_controls,
18834 ARRAY_SIZE(tert_tdm_rx_1_mixer_controls)),
18835 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18836 tert_tdm_rx_2_mixer_controls,
18837 ARRAY_SIZE(tert_tdm_rx_2_mixer_controls)),
18838 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18839 tert_tdm_rx_3_mixer_controls,
18840 ARRAY_SIZE(tert_tdm_rx_3_mixer_controls)),
18841 SND_SOC_DAPM_MIXER("TERT_TDM_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
18842 tert_tdm_rx_4_mixer_controls,
18843 ARRAY_SIZE(tert_tdm_rx_4_mixer_controls)),
18844 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18845 quat_tdm_rx_0_mixer_controls,
18846 ARRAY_SIZE(quat_tdm_rx_0_mixer_controls)),
18847 SND_SOC_DAPM_MIXER("QUAT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18848 quat_tdm_tx_0_mixer_controls,
18849 ARRAY_SIZE(quat_tdm_tx_0_mixer_controls)),
18850 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18851 quat_tdm_rx_1_mixer_controls,
18852 ARRAY_SIZE(quat_tdm_rx_1_mixer_controls)),
18853 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18854 quat_tdm_rx_2_mixer_controls,
18855 ARRAY_SIZE(quat_tdm_rx_2_mixer_controls)),
18856 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18857 quat_tdm_rx_3_mixer_controls,
18858 ARRAY_SIZE(quat_tdm_rx_3_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053018859 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18860 quin_tdm_rx_0_mixer_controls,
18861 ARRAY_SIZE(quin_tdm_rx_0_mixer_controls)),
18862 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18863 quin_tdm_tx_0_mixer_controls,
18864 ARRAY_SIZE(quin_tdm_tx_0_mixer_controls)),
18865 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18866 quin_tdm_rx_1_mixer_controls,
18867 ARRAY_SIZE(quin_tdm_rx_1_mixer_controls)),
18868 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18869 quin_tdm_rx_2_mixer_controls,
18870 ARRAY_SIZE(quin_tdm_rx_2_mixer_controls)),
18871 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18872 quin_tdm_rx_3_mixer_controls,
18873 ARRAY_SIZE(quin_tdm_rx_3_mixer_controls)),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018874 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18875 wsa_cdc_dma_rx_0_mixer_controls,
18876 ARRAY_SIZE(wsa_cdc_dma_rx_0_mixer_controls)),
18877 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18878 wsa_cdc_dma_rx_1_mixer_controls,
18879 ARRAY_SIZE(wsa_cdc_dma_rx_1_mixer_controls)),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053018880 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18881 rx_cdc_dma_rx_0_mixer_controls,
18882 ARRAY_SIZE(rx_cdc_dma_rx_0_mixer_controls)),
18883 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18884 rx_cdc_dma_rx_1_mixer_controls,
18885 ARRAY_SIZE(rx_cdc_dma_rx_1_mixer_controls)),
18886 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18887 rx_cdc_dma_rx_2_mixer_controls,
18888 ARRAY_SIZE(rx_cdc_dma_rx_2_mixer_controls)),
18889 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18890 rx_cdc_dma_rx_3_mixer_controls,
18891 ARRAY_SIZE(rx_cdc_dma_rx_3_mixer_controls)),
18892 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
18893 rx_cdc_dma_rx_4_mixer_controls,
18894 ARRAY_SIZE(rx_cdc_dma_rx_4_mixer_controls)),
18895 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_5 Audio Mixer", SND_SOC_NOPM, 0, 0,
18896 rx_cdc_dma_rx_5_mixer_controls,
18897 ARRAY_SIZE(rx_cdc_dma_rx_5_mixer_controls)),
18898 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_6 Audio Mixer", SND_SOC_NOPM, 0, 0,
18899 rx_cdc_dma_rx_6_mixer_controls,
18900 ARRAY_SIZE(rx_cdc_dma_rx_6_mixer_controls)),
18901 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_7 Audio Mixer", SND_SOC_NOPM, 0, 0,
18902 rx_cdc_dma_rx_7_mixer_controls,
18903 ARRAY_SIZE(rx_cdc_dma_rx_7_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018904 SND_SOC_DAPM_MIXER("MultiMedia1 Mixer", SND_SOC_NOPM, 0, 0,
18905 mmul1_mixer_controls, ARRAY_SIZE(mmul1_mixer_controls)),
18906 SND_SOC_DAPM_MIXER("MultiMedia2 Mixer", SND_SOC_NOPM, 0, 0,
18907 mmul2_mixer_controls, ARRAY_SIZE(mmul2_mixer_controls)),
18908 SND_SOC_DAPM_MIXER("MultiMedia3 Mixer", SND_SOC_NOPM, 0, 0,
18909 mmul3_mixer_controls, ARRAY_SIZE(mmul3_mixer_controls)),
18910 SND_SOC_DAPM_MIXER("MultiMedia4 Mixer", SND_SOC_NOPM, 0, 0,
18911 mmul4_mixer_controls, ARRAY_SIZE(mmul4_mixer_controls)),
18912 SND_SOC_DAPM_MIXER("MultiMedia5 Mixer", SND_SOC_NOPM, 0, 0,
18913 mmul5_mixer_controls, ARRAY_SIZE(mmul5_mixer_controls)),
18914 SND_SOC_DAPM_MIXER("MultiMedia6 Mixer", SND_SOC_NOPM, 0, 0,
18915 mmul6_mixer_controls, ARRAY_SIZE(mmul6_mixer_controls)),
18916 SND_SOC_DAPM_MIXER("MultiMedia8 Mixer", SND_SOC_NOPM, 0, 0,
18917 mmul8_mixer_controls, ARRAY_SIZE(mmul8_mixer_controls)),
18918 SND_SOC_DAPM_MIXER("MultiMedia9 Mixer", SND_SOC_NOPM, 0, 0,
18919 mmul9_mixer_controls, ARRAY_SIZE(mmul9_mixer_controls)),
Laxminath Kasam38070be2017-08-17 18:21:59 +053018920 SND_SOC_DAPM_MIXER("MultiMedia10 Mixer", SND_SOC_NOPM, 0, 0,
18921 mmul10_mixer_controls, ARRAY_SIZE(mmul10_mixer_controls)),
Asish Bhattacharya34504582017-08-08 12:55:01 +053018922 SND_SOC_DAPM_MIXER("MultiMedia16 Mixer", SND_SOC_NOPM, 0, 0,
18923 mmul16_mixer_controls, ARRAY_SIZE(mmul16_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018924 SND_SOC_DAPM_MIXER("MultiMedia17 Mixer", SND_SOC_NOPM, 0, 0,
18925 mmul17_mixer_controls, ARRAY_SIZE(mmul17_mixer_controls)),
18926 SND_SOC_DAPM_MIXER("MultiMedia18 Mixer", SND_SOC_NOPM, 0, 0,
18927 mmul18_mixer_controls, ARRAY_SIZE(mmul18_mixer_controls)),
18928 SND_SOC_DAPM_MIXER("MultiMedia19 Mixer", SND_SOC_NOPM, 0, 0,
18929 mmul19_mixer_controls, ARRAY_SIZE(mmul19_mixer_controls)),
18930 SND_SOC_DAPM_MIXER("MultiMedia20 Mixer", SND_SOC_NOPM, 0, 0,
18931 mmul20_mixer_controls, ARRAY_SIZE(mmul20_mixer_controls)),
Derek Chen07c6d1c2018-07-05 10:39:25 -070018932 SND_SOC_DAPM_MIXER("MultiMedia21 Mixer", SND_SOC_NOPM, 0, 0,
18933 mmul21_mixer_controls, ARRAY_SIZE(mmul21_mixer_controls)),
Surendar Karkac1cde372018-08-14 18:56:24 +053018934 SND_SOC_DAPM_MIXER("MultiMedia27 Mixer", SND_SOC_NOPM, 0, 0,
18935 mmul27_mixer_controls, ARRAY_SIZE(mmul27_mixer_controls)),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053018936 SND_SOC_DAPM_MIXER("MultiMedia28 Mixer", SND_SOC_NOPM, 0, 0,
18937 mmul28_mixer_controls, ARRAY_SIZE(mmul28_mixer_controls)),
18938 SND_SOC_DAPM_MIXER("MultiMedia29 Mixer", SND_SOC_NOPM, 0, 0,
18939 mmul29_mixer_controls, ARRAY_SIZE(mmul29_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018940 SND_SOC_DAPM_MIXER("AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18941 auxpcm_rx_mixer_controls, ARRAY_SIZE(auxpcm_rx_mixer_controls)),
18942 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18943 sec_auxpcm_rx_mixer_controls, ARRAY_SIZE(sec_auxpcm_rx_mixer_controls)),
18944 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18945 tert_auxpcm_rx_mixer_controls,
18946 ARRAY_SIZE(tert_auxpcm_rx_mixer_controls)),
18947 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18948 quat_auxpcm_rx_mixer_controls,
18949 ARRAY_SIZE(quat_auxpcm_rx_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053018950 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18951 quin_auxpcm_rx_mixer_controls,
18952 ARRAY_SIZE(quin_auxpcm_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018953 /* incall */
18954 SND_SOC_DAPM_MIXER("Incall_Music Audio Mixer", SND_SOC_NOPM, 0, 0,
18955 incall_music_delivery_mixer_controls,
18956 ARRAY_SIZE(incall_music_delivery_mixer_controls)),
18957 SND_SOC_DAPM_MIXER("Incall_Music_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18958 incall_music2_delivery_mixer_controls,
18959 ARRAY_SIZE(incall_music2_delivery_mixer_controls)),
18960 SND_SOC_DAPM_MIXER("SLIMBUS_4_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18961 slimbus_4_rx_mixer_controls,
18962 ARRAY_SIZE(slimbus_4_rx_mixer_controls)),
18963 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18964 slimbus_6_rx_mixer_controls,
18965 ARRAY_SIZE(slimbus_6_rx_mixer_controls)),
18966 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18967 usb_audio_rx_mixer_controls,
18968 ARRAY_SIZE(usb_audio_rx_mixer_controls)),
18969 /* Voice Mixer */
18970 SND_SOC_DAPM_MIXER("PRI_RX_Voice Mixer",
18971 SND_SOC_NOPM, 0, 0, pri_rx_voice_mixer_controls,
18972 ARRAY_SIZE(pri_rx_voice_mixer_controls)),
18973 SND_SOC_DAPM_MIXER("SEC_RX_Voice Mixer",
18974 SND_SOC_NOPM, 0, 0,
18975 sec_i2s_rx_voice_mixer_controls,
18976 ARRAY_SIZE(sec_i2s_rx_voice_mixer_controls)),
18977 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_Voice Mixer",
18978 SND_SOC_NOPM, 0, 0,
18979 sec_mi2s_rx_voice_mixer_controls,
18980 ARRAY_SIZE(sec_mi2s_rx_voice_mixer_controls)),
18981 SND_SOC_DAPM_MIXER("SLIM_0_RX_Voice Mixer",
18982 SND_SOC_NOPM, 0, 0,
18983 slimbus_rx_voice_mixer_controls,
18984 ARRAY_SIZE(slimbus_rx_voice_mixer_controls)),
18985 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX_Voice Mixer",
18986 SND_SOC_NOPM, 0, 0,
18987 bt_sco_rx_voice_mixer_controls,
18988 ARRAY_SIZE(bt_sco_rx_voice_mixer_controls)),
18989 SND_SOC_DAPM_MIXER("AFE_PCM_RX_Voice Mixer",
18990 SND_SOC_NOPM, 0, 0,
18991 afe_pcm_rx_voice_mixer_controls,
18992 ARRAY_SIZE(afe_pcm_rx_voice_mixer_controls)),
18993 SND_SOC_DAPM_MIXER("AUX_PCM_RX_Voice Mixer",
18994 SND_SOC_NOPM, 0, 0,
18995 aux_pcm_rx_voice_mixer_controls,
18996 ARRAY_SIZE(aux_pcm_rx_voice_mixer_controls)),
18997 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX_Voice Mixer",
18998 SND_SOC_NOPM, 0, 0,
18999 sec_aux_pcm_rx_voice_mixer_controls,
19000 ARRAY_SIZE(sec_aux_pcm_rx_voice_mixer_controls)),
19001 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX_Voice Mixer",
19002 SND_SOC_NOPM, 0, 0,
19003 tert_aux_pcm_rx_voice_mixer_controls,
19004 ARRAY_SIZE(tert_aux_pcm_rx_voice_mixer_controls)),
19005 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX_Voice Mixer",
19006 SND_SOC_NOPM, 0, 0,
19007 quat_aux_pcm_rx_voice_mixer_controls,
19008 ARRAY_SIZE(quat_aux_pcm_rx_voice_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019009 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX_Voice Mixer",
19010 SND_SOC_NOPM, 0, 0,
19011 quin_aux_pcm_rx_voice_mixer_controls,
19012 ARRAY_SIZE(quin_aux_pcm_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019013 SND_SOC_DAPM_MIXER("HDMI_RX_Voice Mixer",
19014 SND_SOC_NOPM, 0, 0,
19015 hdmi_rx_voice_mixer_controls,
19016 ARRAY_SIZE(hdmi_rx_voice_mixer_controls)),
19017 SND_SOC_DAPM_MIXER("MI2S_RX_Voice Mixer",
19018 SND_SOC_NOPM, 0, 0,
19019 mi2s_rx_voice_mixer_controls,
19020 ARRAY_SIZE(mi2s_rx_voice_mixer_controls)),
19021 SND_SOC_DAPM_MIXER("PRI_MI2S_RX_Voice Mixer",
19022 SND_SOC_NOPM, 0, 0,
19023 pri_mi2s_rx_voice_mixer_controls,
19024 ARRAY_SIZE(pri_mi2s_rx_voice_mixer_controls)),
19025 SND_SOC_DAPM_MIXER("INT0_MI2S_RX_Voice Mixer",
19026 SND_SOC_NOPM, 0, 0,
19027 int0_mi2s_rx_voice_mixer_controls,
19028 ARRAY_SIZE(int0_mi2s_rx_voice_mixer_controls)),
19029 SND_SOC_DAPM_MIXER("INT4_MI2S_RX_Voice Mixer",
19030 SND_SOC_NOPM, 0, 0,
19031 int4_mi2s_rx_voice_mixer_controls,
19032 ARRAY_SIZE(int4_mi2s_rx_voice_mixer_controls)),
19033 SND_SOC_DAPM_MIXER("TERT_MI2S_RX_Voice Mixer",
19034 SND_SOC_NOPM, 0, 0,
19035 tert_mi2s_rx_voice_mixer_controls,
19036 ARRAY_SIZE(tert_mi2s_rx_voice_mixer_controls)),
19037 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX_Voice Mixer",
19038 SND_SOC_NOPM, 0, 0,
19039 quat_mi2s_rx_voice_mixer_controls,
19040 ARRAY_SIZE(quat_mi2s_rx_voice_mixer_controls)),
19041 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX_Voice Mixer",
19042 SND_SOC_NOPM, 0, 0,
19043 quin_mi2s_rx_voice_mixer_controls,
19044 ARRAY_SIZE(quin_mi2s_rx_voice_mixer_controls)),
19045 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2_Voice Mixer",
19046 SND_SOC_NOPM, 0, 0,
19047 quat_tdm_rx_2_voice_mixer_controls,
19048 ARRAY_SIZE(quat_tdm_rx_2_voice_mixer_controls)),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053019049 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0_Voice Mixer",
19050 SND_SOC_NOPM, 0, 0,
19051 wsa_cdc_dma_rx_0_voice_mixer_controls,
19052 ARRAY_SIZE(wsa_cdc_dma_rx_0_voice_mixer_controls)),
19053 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0_Voice Mixer",
19054 SND_SOC_NOPM, 0, 0,
19055 rx_cdc_dma_rx_0_voice_mixer_controls,
19056 ARRAY_SIZE(rx_cdc_dma_rx_0_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019057 SND_SOC_DAPM_MIXER("Voip_Tx Mixer",
19058 SND_SOC_NOPM, 0, 0, tx_voip_mixer_controls,
19059 ARRAY_SIZE(tx_voip_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019060 SND_SOC_DAPM_MIXER("VoiceMMode1_Tx Mixer",
19061 SND_SOC_NOPM, 0, 0, tx_voicemmode1_mixer_controls,
19062 ARRAY_SIZE(tx_voicemmode1_mixer_controls)),
19063 SND_SOC_DAPM_MIXER("VoiceMMode2_Tx Mixer",
19064 SND_SOC_NOPM, 0, 0, tx_voicemmode2_mixer_controls,
19065 ARRAY_SIZE(tx_voicemmode2_mixer_controls)),
19066 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19067 int_bt_sco_rx_mixer_controls, ARRAY_SIZE(int_bt_sco_rx_mixer_controls)),
19068 SND_SOC_DAPM_MIXER("INTERNAL_A2DP_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19069 int_bt_a2dp_rx_mixer_controls,
19070 ARRAY_SIZE(int_bt_a2dp_rx_mixer_controls)),
19071 SND_SOC_DAPM_MIXER("INTERNAL_FM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19072 int_fm_rx_mixer_controls, ARRAY_SIZE(int_fm_rx_mixer_controls)),
19073 SND_SOC_DAPM_MIXER("AFE_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19074 afe_pcm_rx_mixer_controls, ARRAY_SIZE(afe_pcm_rx_mixer_controls)),
19075 SND_SOC_DAPM_MIXER("Voice Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
19076 tx_voice_stub_mixer_controls, ARRAY_SIZE(tx_voice_stub_mixer_controls)),
19077 SND_SOC_DAPM_MIXER("Voice2 Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
19078 tx_voice2_stub_mixer_controls,
19079 ARRAY_SIZE(tx_voice2_stub_mixer_controls)),
19080 SND_SOC_DAPM_MIXER("VoLTE Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
19081 tx_volte_stub_mixer_controls, ARRAY_SIZE(tx_volte_stub_mixer_controls)),
19082 SND_SOC_DAPM_MIXER("STUB_RX Mixer", SND_SOC_NOPM, 0, 0,
19083 stub_rx_mixer_controls, ARRAY_SIZE(stub_rx_mixer_controls)),
19084 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Mixer", SND_SOC_NOPM, 0, 0,
19085 slimbus_1_rx_mixer_controls, ARRAY_SIZE(slimbus_1_rx_mixer_controls)),
19086 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
19087 slimbus_3_rx_mixer_controls, ARRAY_SIZE(slimbus_3_rx_mixer_controls)),
19088 SND_SOC_DAPM_MIXER("SLIM_6_RX_Voice Mixer",
19089 SND_SOC_NOPM, 0, 0,
19090 slimbus_6_rx_voice_mixer_controls,
19091 ARRAY_SIZE(slimbus_6_rx_voice_mixer_controls)),
19092 SND_SOC_DAPM_MIXER("SLIM_7_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
19093 slimbus_7_rx_voice_mixer_controls,
19094 ARRAY_SIZE(slimbus_7_rx_voice_mixer_controls)),
19095 SND_SOC_DAPM_MIXER("SLIM_8_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
19096 slimbus_8_rx_voice_mixer_controls,
19097 ARRAY_SIZE(slimbus_8_rx_voice_mixer_controls)),
19098 /* port mixer */
19099 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Port Mixer",
19100 SND_SOC_NOPM, 0, 0, sbus_0_rx_port_mixer_controls,
19101 ARRAY_SIZE(sbus_0_rx_port_mixer_controls)),
19102 SND_SOC_DAPM_MIXER("AUX_PCM_RX Port Mixer",
19103 SND_SOC_NOPM, 0, 0, aux_pcm_rx_port_mixer_controls,
19104 ARRAY_SIZE(aux_pcm_rx_port_mixer_controls)),
19105 SND_SOC_DAPM_MIXER("SEC_AUXPCM_RX Port Mixer",
19106 SND_SOC_NOPM, 0, 0, sec_auxpcm_rx_port_mixer_controls,
19107 ARRAY_SIZE(sec_auxpcm_rx_port_mixer_controls)),
19108 SND_SOC_DAPM_MIXER("TERT_AUXPCM_RX Port Mixer",
19109 SND_SOC_NOPM, 0, 0, tert_auxpcm_rx_port_mixer_controls,
19110 ARRAY_SIZE(tert_auxpcm_rx_port_mixer_controls)),
19111 SND_SOC_DAPM_MIXER("QUAT_AUXPCM_RX Port Mixer",
19112 SND_SOC_NOPM, 0, 0, quat_auxpcm_rx_port_mixer_controls,
19113 ARRAY_SIZE(quat_auxpcm_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019114 SND_SOC_DAPM_MIXER("QUIN_AUXPCM_RX Port Mixer",
19115 SND_SOC_NOPM, 0, 0, quin_auxpcm_rx_port_mixer_controls,
19116 ARRAY_SIZE(quin_auxpcm_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019117 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19118 sbus_1_rx_port_mixer_controls,
19119 ARRAY_SIZE(sbus_1_rx_port_mixer_controls)),
19120 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19121 bt_sco_rx_port_mixer_controls,
19122 ARRAY_SIZE(bt_sco_rx_port_mixer_controls)),
19123 SND_SOC_DAPM_MIXER("AFE_PCM_RX Port Mixer",
19124 SND_SOC_NOPM, 0, 0, afe_pcm_rx_port_mixer_controls,
19125 ARRAY_SIZE(afe_pcm_rx_port_mixer_controls)),
19126 SND_SOC_DAPM_MIXER("HDMI_RX Port Mixer",
19127 SND_SOC_NOPM, 0, 0, hdmi_rx_port_mixer_controls,
19128 ARRAY_SIZE(hdmi_rx_port_mixer_controls)),
19129 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX Port Mixer",
19130 SND_SOC_NOPM, 0, 0, display_port_rx_port_mixer_controls,
19131 ARRAY_SIZE(display_port_rx_port_mixer_controls)),
Karthikeyan Manifbea92f2018-06-14 16:38:15 -070019132 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1 Port Mixer",
Karthikeyan Mani57550082018-05-03 18:43:58 -070019133 SND_SOC_NOPM, 0, 0, display_port_rx1_port_mixer_controls,
19134 ARRAY_SIZE(display_port_rx1_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019135 SND_SOC_DAPM_MIXER("SEC_I2S_RX Port Mixer",
19136 SND_SOC_NOPM, 0, 0, sec_i2s_rx_port_mixer_controls,
19137 ARRAY_SIZE(sec_i2s_rx_port_mixer_controls)),
19138 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX Port Mixer",
19139 SND_SOC_NOPM, 0, 0, sbus_3_rx_port_mixer_controls,
19140 ARRAY_SIZE(sbus_3_rx_port_mixer_controls)),
19141 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Port Mixer",
19142 SND_SOC_NOPM, 0, 0, sbus_6_rx_port_mixer_controls,
19143 ARRAY_SIZE(sbus_6_rx_port_mixer_controls)),
19144 SND_SOC_DAPM_MIXER("MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19145 mi2s_rx_port_mixer_controls, ARRAY_SIZE(mi2s_rx_port_mixer_controls)),
19146 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19147 primary_mi2s_rx_port_mixer_controls,
19148 ARRAY_SIZE(primary_mi2s_rx_port_mixer_controls)),
19149 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19150 sec_mi2s_rx_port_mixer_controls,
19151 ARRAY_SIZE(sec_mi2s_rx_port_mixer_controls)),
19152 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19153 tert_mi2s_rx_port_mixer_controls,
19154 ARRAY_SIZE(tert_mi2s_rx_port_mixer_controls)),
19155 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19156 quat_mi2s_rx_port_mixer_controls,
19157 ARRAY_SIZE(quat_mi2s_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019158 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19159 quin_mi2s_rx_port_mixer_controls,
19160 ARRAY_SIZE(quin_mi2s_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019161 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19162 pri_tdm_rx_0_port_mixer_controls,
19163 ARRAY_SIZE(pri_tdm_rx_0_port_mixer_controls)),
19164 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19165 pri_tdm_rx_1_port_mixer_controls,
19166 ARRAY_SIZE(pri_tdm_rx_1_port_mixer_controls)),
19167 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19168 pri_tdm_rx_2_port_mixer_controls,
19169 ARRAY_SIZE(pri_tdm_rx_2_port_mixer_controls)),
19170 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19171 pri_tdm_rx_3_port_mixer_controls,
19172 ARRAY_SIZE(pri_tdm_rx_3_port_mixer_controls)),
19173 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19174 sec_tdm_rx_0_port_mixer_controls,
19175 ARRAY_SIZE(sec_tdm_rx_0_port_mixer_controls)),
19176 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19177 sec_tdm_rx_1_port_mixer_controls,
19178 ARRAY_SIZE(sec_tdm_rx_1_port_mixer_controls)),
19179 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19180 sec_tdm_rx_2_port_mixer_controls,
19181 ARRAY_SIZE(sec_tdm_rx_2_port_mixer_controls)),
19182 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19183 sec_tdm_rx_3_port_mixer_controls,
19184 ARRAY_SIZE(sec_tdm_rx_3_port_mixer_controls)),
19185 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19186 tert_tdm_rx_0_port_mixer_controls,
19187 ARRAY_SIZE(tert_tdm_rx_0_port_mixer_controls)),
19188 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19189 tert_tdm_rx_1_port_mixer_controls,
19190 ARRAY_SIZE(tert_tdm_rx_1_port_mixer_controls)),
19191 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19192 tert_tdm_rx_2_port_mixer_controls,
19193 ARRAY_SIZE(tert_tdm_rx_2_port_mixer_controls)),
19194 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19195 tert_tdm_rx_3_port_mixer_controls,
19196 ARRAY_SIZE(tert_tdm_rx_3_port_mixer_controls)),
19197 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19198 quat_tdm_rx_0_port_mixer_controls,
19199 ARRAY_SIZE(quat_tdm_rx_0_port_mixer_controls)),
19200 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19201 quat_tdm_rx_1_port_mixer_controls,
19202 ARRAY_SIZE(quat_tdm_rx_1_port_mixer_controls)),
19203 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19204 quat_tdm_rx_2_port_mixer_controls,
19205 ARRAY_SIZE(quat_tdm_rx_2_port_mixer_controls)),
19206 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19207 quat_tdm_rx_3_port_mixer_controls,
19208 ARRAY_SIZE(quat_tdm_rx_3_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019209 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19210 quin_tdm_rx_0_port_mixer_controls,
19211 ARRAY_SIZE(quin_tdm_rx_0_port_mixer_controls)),
19212 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19213 quin_tdm_rx_1_port_mixer_controls,
19214 ARRAY_SIZE(quin_tdm_rx_1_port_mixer_controls)),
19215 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19216 quin_tdm_rx_2_port_mixer_controls,
19217 ARRAY_SIZE(quin_tdm_rx_2_port_mixer_controls)),
19218 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19219 quin_tdm_rx_3_port_mixer_controls,
19220 ARRAY_SIZE(quin_tdm_rx_3_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019221 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19222 int0_mi2s_rx_port_mixer_controls,
19223 ARRAY_SIZE(int0_mi2s_rx_port_mixer_controls)),
19224 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19225 int4_mi2s_rx_port_mixer_controls,
19226 ARRAY_SIZE(int4_mi2s_rx_port_mixer_controls)),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053019227 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19228 wsa_cdc_dma_rx_0_port_mixer_controls,
19229 ARRAY_SIZE(wsa_cdc_dma_rx_0_port_mixer_controls)),
19230 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19231 rx_cdc_dma_rx_0_port_mixer_controls,
19232 ARRAY_SIZE(rx_cdc_dma_rx_0_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019233 SND_SOC_DAPM_MIXER("QCHAT_Tx Mixer",
19234 SND_SOC_NOPM, 0, 0, tx_qchat_mixer_controls,
19235 ARRAY_SIZE(tx_qchat_mixer_controls)),
19236 SND_SOC_DAPM_MIXER("USB_AUDIO_RX_Voice Mixer",
19237 SND_SOC_NOPM, 0, 0, usb_audio_rx_voice_mixer_controls,
19238 ARRAY_SIZE(usb_audio_rx_voice_mixer_controls)),
19239 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Port Mixer",
19240 SND_SOC_NOPM, 0, 0, usb_rx_port_mixer_controls,
19241 ARRAY_SIZE(usb_rx_port_mixer_controls)),
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080019242 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX_Voice Mixer",
19243 SND_SOC_NOPM, 0, 0, display_port_rx_voice_mixer_controls,
19244 ARRAY_SIZE(display_port_rx_voice_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070019245 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1_Voice Mixer",
19246 SND_SOC_NOPM, 0, 0, display_port_rx1_voice_mixer_controls,
19247 ARRAY_SIZE(display_port_rx1_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019248 /* lsm mixer definitions */
19249 SND_SOC_DAPM_MIXER("LSM1 Mixer", SND_SOC_NOPM, 0, 0,
19250 lsm1_mixer_controls, ARRAY_SIZE(lsm1_mixer_controls)),
19251 SND_SOC_DAPM_MIXER("LSM2 Mixer", SND_SOC_NOPM, 0, 0,
19252 lsm2_mixer_controls, ARRAY_SIZE(lsm2_mixer_controls)),
19253 SND_SOC_DAPM_MIXER("LSM3 Mixer", SND_SOC_NOPM, 0, 0,
19254 lsm3_mixer_controls, ARRAY_SIZE(lsm3_mixer_controls)),
19255 SND_SOC_DAPM_MIXER("LSM4 Mixer", SND_SOC_NOPM, 0, 0,
19256 lsm4_mixer_controls, ARRAY_SIZE(lsm4_mixer_controls)),
19257 SND_SOC_DAPM_MIXER("LSM5 Mixer", SND_SOC_NOPM, 0, 0,
19258 lsm5_mixer_controls, ARRAY_SIZE(lsm5_mixer_controls)),
19259 SND_SOC_DAPM_MIXER("LSM6 Mixer", SND_SOC_NOPM, 0, 0,
19260 lsm6_mixer_controls, ARRAY_SIZE(lsm6_mixer_controls)),
19261 SND_SOC_DAPM_MIXER("LSM7 Mixer", SND_SOC_NOPM, 0, 0,
19262 lsm7_mixer_controls, ARRAY_SIZE(lsm7_mixer_controls)),
19263 SND_SOC_DAPM_MIXER("LSM8 Mixer", SND_SOC_NOPM, 0, 0,
19264 lsm8_mixer_controls, ARRAY_SIZE(lsm8_mixer_controls)),
19265 /* Virtual Pins to force backends ON atm */
19266 SND_SOC_DAPM_OUTPUT("BE_OUT"),
19267 SND_SOC_DAPM_INPUT("BE_IN"),
19268
19269 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
19270 &slim0_rx_vi_fb_lch_mux),
19271 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
19272 &slim0_rx_vi_fb_rch_mux),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019273 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
19274 &wsa_rx_0_vi_fb_lch_mux),
19275 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
19276 &wsa_rx_0_vi_fb_rch_mux),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019277 SND_SOC_DAPM_MUX("PRI_MI2S_RX_VI_FB_MUX", SND_SOC_NOPM, 0, 0,
19278 &mi2s_rx_vi_fb_mux),
19279 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_MONO_CH_MUX", SND_SOC_NOPM, 0, 0,
19280 &int4_mi2s_rx_vi_fb_mono_ch_mux),
19281 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", SND_SOC_NOPM, 0, 0,
19282 &int4_mi2s_rx_vi_fb_stereo_ch_mux),
19283
19284 SND_SOC_DAPM_MUX("VOC_EXT_EC MUX", SND_SOC_NOPM, 0, 0,
19285 &voc_ext_ec_mux),
19286 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL1 MUX", SND_SOC_NOPM, 0, 0,
19287 &ext_ec_ref_mux_ul1),
19288 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL2 MUX", SND_SOC_NOPM, 0, 0,
19289 &ext_ec_ref_mux_ul2),
19290 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL3 MUX", SND_SOC_NOPM, 0, 0,
19291 &ext_ec_ref_mux_ul3),
19292 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL4 MUX", SND_SOC_NOPM, 0, 0,
19293 &ext_ec_ref_mux_ul4),
19294 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL5 MUX", SND_SOC_NOPM, 0, 0,
19295 &ext_ec_ref_mux_ul5),
19296 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL6 MUX", SND_SOC_NOPM, 0, 0,
19297 &ext_ec_ref_mux_ul6),
19298 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL8 MUX", SND_SOC_NOPM, 0, 0,
19299 &ext_ec_ref_mux_ul8),
19300 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL9 MUX", SND_SOC_NOPM, 0, 0,
19301 &ext_ec_ref_mux_ul9),
Laxminath Kasam38070be2017-08-17 18:21:59 +053019302 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL10 MUX", SND_SOC_NOPM, 0, 0,
19303 &ext_ec_ref_mux_ul10),
Asish Bhattacharya34504582017-08-08 12:55:01 +053019304 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL16 MUX", SND_SOC_NOPM, 0, 0,
19305 &ext_ec_ref_mux_ul16),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019306 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL17 MUX", SND_SOC_NOPM, 0, 0,
19307 &ext_ec_ref_mux_ul17),
19308 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL18 MUX", SND_SOC_NOPM, 0, 0,
19309 &ext_ec_ref_mux_ul18),
19310 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL19 MUX", SND_SOC_NOPM, 0, 0,
19311 &ext_ec_ref_mux_ul19),
Meng Wang5c4bab72018-04-25 10:40:01 +080019312 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL28 MUX", SND_SOC_NOPM, 0, 0,
19313 &ext_ec_ref_mux_ul28),
19314 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL29 MUX", SND_SOC_NOPM, 0, 0,
19315 &ext_ec_ref_mux_ul29),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019316};
19317
19318static const struct snd_soc_dapm_route intercon[] = {
19319 {"PRI_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19320 {"PRI_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19321 {"PRI_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19322 {"PRI_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19323 {"PRI_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19324 {"PRI_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19325 {"PRI_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19326 {"PRI_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19327 {"PRI_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19328 {"PRI_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19329 {"PRI_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19330 {"PRI_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19331 {"PRI_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19332 {"PRI_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19333 {"PRI_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19334 {"PRI_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019335 {"PRI_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019336 {"PRI_I2S_RX", NULL, "PRI_RX Audio Mixer"},
19337
19338 {"SEC_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19339 {"SEC_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19340 {"SEC_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19341 {"SEC_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19342 {"SEC_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19343 {"SEC_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19344 {"SEC_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19345 {"SEC_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19346 {"SEC_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19347 {"SEC_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19348 {"SEC_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19349 {"SEC_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19350 {"SEC_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19351 {"SEC_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19352 {"SEC_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19353 {"SEC_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019354 {"SEC_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019355 {"SEC_I2S_RX", NULL, "SEC_RX Audio Mixer"},
19356
19357 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19358 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19359 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19360 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19361 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19362 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19363 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19364 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19365 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19366 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19367 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19368 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19369 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19370 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19371 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19372 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019373 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019374 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Audio Mixer"},
19375
19376 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19377 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19378 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19379 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19380 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19381 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19382 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19383 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19384 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19385 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19386 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19387 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19388 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19389 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19390 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19391 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019392 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019393 {"SLIMBUS_2_RX", NULL, "SLIMBUS_2_RX Audio Mixer"},
19394
19395 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19396 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19397 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19398 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19399 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19400 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19401 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19402 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19403 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19404 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19405 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19406 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19407 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19408 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19409 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19410 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019411 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019412 {"SLIMBUS_5_RX", NULL, "SLIMBUS_5_RX Audio Mixer"},
19413
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019414 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19415 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19416 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19417 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19418 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19419 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19420 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19421 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19422 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19423 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19424 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19425 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19426 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19427 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19428 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19429 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019430 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019431 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Audio Mixer"},
19432
19433 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19434 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19435 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19436 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19437 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19438 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19439 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19440 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19441 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19442 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19443 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19444 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19445 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19446 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19447 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19448 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019449 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019450 {"WSA_CDC_DMA_RX_1", NULL, "WSA_CDC_DMA_RX_1 Audio Mixer"},
19451
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019452 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19453 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19454 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19455 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19456 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19457 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19458 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19459 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19460 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19461 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19462 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19463 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19464 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19465 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19466 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19467 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019468 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019469 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Audio Mixer"},
19470
19471 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19472 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19473 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19474 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19475 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19476 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19477 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19478 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19479 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19480 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19481 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19482 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19483 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19484 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19485 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19486 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019487 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019488 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_1 Audio Mixer"},
19489
19490 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19491 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19492 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
19493 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
19494 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19495 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
19496 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
19497 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
19498 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19499 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
19500 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
19501 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
19502 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
19503 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
19504 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
19505 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019506 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019507 {"RX_CDC_DMA_RX_2", NULL, "RX_CDC_DMA_RX_2 Audio Mixer"},
19508
19509 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
19510 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
19511 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
19512 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
19513 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
19514 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
19515 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
19516 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
19517 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
19518 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
19519 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
19520 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
19521 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
19522 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
19523 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
19524 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019525 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019526 {"RX_CDC_DMA_RX_3", NULL, "RX_CDC_DMA_RX_3 Audio Mixer"},
19527
19528 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
19529 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
19530 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
19531 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
19532 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
19533 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
19534 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
19535 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
19536 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
19537 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
19538 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
19539 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
19540 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
19541 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
19542 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
19543 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019544 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019545 {"RX_CDC_DMA_RX_4", NULL, "RX_CDC_DMA_RX_4 Audio Mixer"},
19546
19547 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia1", "MM_DL1"},
19548 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia2", "MM_DL2"},
19549 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia3", "MM_DL3"},
19550 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia4", "MM_DL4"},
19551 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia5", "MM_DL5"},
19552 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia6", "MM_DL6"},
19553 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia7", "MM_DL7"},
19554 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia8", "MM_DL8"},
19555 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia9", "MM_DL9"},
19556 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia10", "MM_DL10"},
19557 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia11", "MM_DL11"},
19558 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia12", "MM_DL12"},
19559 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia13", "MM_DL13"},
19560 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia14", "MM_DL14"},
19561 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia15", "MM_DL15"},
19562 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019563 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019564 {"RX_CDC_DMA_RX_5", NULL, "RX_CDC_DMA_RX_5 Audio Mixer"},
19565
19566 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia1", "MM_DL1"},
19567 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia2", "MM_DL2"},
19568 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia3", "MM_DL3"},
19569 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia4", "MM_DL4"},
19570 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia5", "MM_DL5"},
19571 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia6", "MM_DL6"},
19572 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia7", "MM_DL7"},
19573 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia8", "MM_DL8"},
19574 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia9", "MM_DL9"},
19575 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia10", "MM_DL10"},
19576 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia11", "MM_DL11"},
19577 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia12", "MM_DL12"},
19578 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia13", "MM_DL13"},
19579 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia14", "MM_DL14"},
19580 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia15", "MM_DL15"},
19581 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019582 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019583 {"RX_CDC_DMA_RX_6", NULL, "RX_CDC_DMA_RX_6 Audio Mixer"},
19584
19585 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia1", "MM_DL1"},
19586 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia2", "MM_DL2"},
19587 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia3", "MM_DL3"},
19588 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia4", "MM_DL4"},
19589 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia5", "MM_DL5"},
19590 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia6", "MM_DL6"},
19591 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia7", "MM_DL7"},
19592 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia8", "MM_DL8"},
19593 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia9", "MM_DL9"},
19594 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia10", "MM_DL10"},
19595 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia11", "MM_DL11"},
19596 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia12", "MM_DL12"},
19597 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia13", "MM_DL13"},
19598 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia14", "MM_DL14"},
19599 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia15", "MM_DL15"},
19600 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019601 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019602 {"RX_CDC_DMA_RX_7", NULL, "RX_CDC_DMA_RX_7 Audio Mixer"},
19603
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019604 {"HDMI Mixer", "MultiMedia1", "MM_DL1"},
19605 {"HDMI Mixer", "MultiMedia2", "MM_DL2"},
19606 {"HDMI Mixer", "MultiMedia3", "MM_DL3"},
19607 {"HDMI Mixer", "MultiMedia4", "MM_DL4"},
19608 {"HDMI Mixer", "MultiMedia5", "MM_DL5"},
19609 {"HDMI Mixer", "MultiMedia6", "MM_DL6"},
19610 {"HDMI Mixer", "MultiMedia7", "MM_DL7"},
19611 {"HDMI Mixer", "MultiMedia8", "MM_DL8"},
19612 {"HDMI Mixer", "MultiMedia9", "MM_DL9"},
19613 {"HDMI Mixer", "MultiMedia10", "MM_DL10"},
19614 {"HDMI Mixer", "MultiMedia11", "MM_DL11"},
19615 {"HDMI Mixer", "MultiMedia12", "MM_DL12"},
19616 {"HDMI Mixer", "MultiMedia13", "MM_DL13"},
19617 {"HDMI Mixer", "MultiMedia14", "MM_DL14"},
19618 {"HDMI Mixer", "MultiMedia15", "MM_DL15"},
19619 {"HDMI Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019620 {"HDMI Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019621 {"HDMI", NULL, "HDMI Mixer"},
19622
19623 {"DISPLAY_PORT Mixer", "MultiMedia1", "MM_DL1"},
19624 {"DISPLAY_PORT Mixer", "MultiMedia2", "MM_DL2"},
19625 {"DISPLAY_PORT Mixer", "MultiMedia3", "MM_DL3"},
19626 {"DISPLAY_PORT Mixer", "MultiMedia4", "MM_DL4"},
19627 {"DISPLAY_PORT Mixer", "MultiMedia5", "MM_DL5"},
19628 {"DISPLAY_PORT Mixer", "MultiMedia6", "MM_DL6"},
19629 {"DISPLAY_PORT Mixer", "MultiMedia7", "MM_DL7"},
19630 {"DISPLAY_PORT Mixer", "MultiMedia8", "MM_DL8"},
19631 {"DISPLAY_PORT Mixer", "MultiMedia9", "MM_DL9"},
19632 {"DISPLAY_PORT Mixer", "MultiMedia10", "MM_DL10"},
19633 {"DISPLAY_PORT Mixer", "MultiMedia11", "MM_DL11"},
19634 {"DISPLAY_PORT Mixer", "MultiMedia12", "MM_DL12"},
19635 {"DISPLAY_PORT Mixer", "MultiMedia13", "MM_DL13"},
19636 {"DISPLAY_PORT Mixer", "MultiMedia14", "MM_DL14"},
19637 {"DISPLAY_PORT Mixer", "MultiMedia15", "MM_DL15"},
19638 {"DISPLAY_PORT Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019639 {"DISPLAY_PORT Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019640 {"DISPLAY_PORT", NULL, "DISPLAY_PORT Mixer"},
19641
Karthikeyan Mani57550082018-05-03 18:43:58 -070019642 {"DISPLAY_PORT1 Mixer", "MultiMedia1", "MM_DL1"},
19643 {"DISPLAY_PORT1 Mixer", "MultiMedia2", "MM_DL2"},
19644 {"DISPLAY_PORT1 Mixer", "MultiMedia3", "MM_DL3"},
19645 {"DISPLAY_PORT1 Mixer", "MultiMedia4", "MM_DL4"},
19646 {"DISPLAY_PORT1 Mixer", "MultiMedia5", "MM_DL5"},
19647 {"DISPLAY_PORT1 Mixer", "MultiMedia6", "MM_DL6"},
19648 {"DISPLAY_PORT1 Mixer", "MultiMedia7", "MM_DL7"},
19649 {"DISPLAY_PORT1 Mixer", "MultiMedia8", "MM_DL8"},
19650 {"DISPLAY_PORT1 Mixer", "MultiMedia9", "MM_DL9"},
19651 {"DISPLAY_PORT1 Mixer", "MultiMedia10", "MM_DL10"},
19652 {"DISPLAY_PORT1 Mixer", "MultiMedia11", "MM_DL11"},
19653 {"DISPLAY_PORT1 Mixer", "MultiMedia12", "MM_DL12"},
19654 {"DISPLAY_PORT1 Mixer", "MultiMedia13", "MM_DL13"},
19655 {"DISPLAY_PORT1 Mixer", "MultiMedia14", "MM_DL14"},
19656 {"DISPLAY_PORT1 Mixer", "MultiMedia15", "MM_DL15"},
19657 {"DISPLAY_PORT1 Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019658 {"DISPLAY_PORT1 Mixer", "MultiMedia26", "MM_DL26"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070019659 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT1 Mixer"},
19660
Ralf Herzc8701f72018-06-20 11:37:35 +020019661 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19662 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19663 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19664 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19665 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19666 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19667 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19668 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19669 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19670 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19671 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19672 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19673 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19674 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19675 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19676 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019677 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020019678 {"PRI_SPDIF_RX", NULL, "PRI_SPDIF_RX Audio Mixer"},
19679
19680 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19681 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19682 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19683 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19684 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19685 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19686 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19687 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19688 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19689 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19690 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19691 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19692 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19693 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19694 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19695 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019696 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020019697 {"SEC_SPDIF_RX", NULL, "SEC_SPDIF_RX Audio Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019698
19699 /* incall */
19700 {"Incall_Music Audio Mixer", "MultiMedia1", "MM_DL1"},
19701 {"Incall_Music Audio Mixer", "MultiMedia2", "MM_DL2"},
19702 {"Incall_Music Audio Mixer", "MultiMedia5", "MM_DL5"},
19703 {"Incall_Music Audio Mixer", "MultiMedia9", "MM_DL9"},
19704 {"VOICE_PLAYBACK_TX", NULL, "Incall_Music Audio Mixer"},
19705 {"Incall_Music_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19706 {"Incall_Music_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19707 {"Incall_Music_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19708 {"Incall_Music_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19709 {"VOICE2_PLAYBACK_TX", NULL, "Incall_Music_2 Audio Mixer"},
19710 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19711 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19712 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19713 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19714 {"SLIMBUS_4_RX", NULL, "SLIMBUS_4_RX Audio Mixer"},
19715
19716 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19717 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19718 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19719 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19720 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19721 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19722 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19723 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19724 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19725 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19726 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19727 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19728 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19729 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19730 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19731 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019732 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019733 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Audio Mixer"},
19734
19735 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19736 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19737 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19738 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19739 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19740 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19741 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19742 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19743 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19744 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19745 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19746 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19747 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19748 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19749 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19750 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019751 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019752 {"SLIMBUS_7_RX", NULL, "SLIMBUS_7_RX Audio Mixer"},
19753
19754 {"USB_AUDIO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19755 {"USB_AUDIO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19756 {"USB_AUDIO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19757 {"USB_AUDIO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19758 {"USB_AUDIO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19759 {"USB_AUDIO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19760 {"USB_AUDIO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19761 {"USB_AUDIO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19762 {"USB_AUDIO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19763 {"USB_AUDIO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19764 {"USB_AUDIO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19765 {"USB_AUDIO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19766 {"USB_AUDIO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19767 {"USB_AUDIO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19768 {"USB_AUDIO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19769 {"USB_AUDIO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019770 {"USB_AUDIO_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019771 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Audio Mixer"},
19772
19773 {"MultiMedia1 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
19774 {"MultiMedia4 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
19775 {"MultiMedia8 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
19776 {"MultiMedia1 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
19777 {"MultiMedia4 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
19778 {"MultiMedia8 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
19779 {"MultiMedia1 Mixer", "SLIM_4_TX", "SLIMBUS_4_TX"},
19780 {"MultiMedia1 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
19781 {"MultiMedia1 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
19782 {"MultiMedia1 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
19783 {"MultiMedia8 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
19784 {"MultiMedia8 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
19785 {"MultiMedia4 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19786 {"MultiMedia17 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19787 {"MultiMedia18 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19788 {"MultiMedia19 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019789 {"MultiMedia28 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19790 {"MultiMedia29 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019791 {"MultiMedia8 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19792 {"MultiMedia2 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19793 {"MultiMedia4 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19794 {"MultiMedia17 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19795 {"MultiMedia18 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19796 {"MultiMedia19 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019797 {"MultiMedia28 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19798 {"MultiMedia29 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019799 {"MultiMedia8 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020019800 {"MultiMedia18 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019801 {"MultiMedia17 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19802 {"MultiMedia18 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19803 {"MultiMedia19 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19804 {"MultiMedia28 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19805 {"MultiMedia29 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19806 {"MultiMedia17 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019807 {"MultiMedia18 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019808 {"MultiMedia19 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
19809 {"MultiMedia28 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
19810 {"MultiMedia29 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019811 {"MultiMedia8 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
19812 {"MultiMedia3 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19813 {"MultiMedia5 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053019814 {"MultiMedia10 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053019815 {"MultiMedia16 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019816 {"MultiMedia5 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
19817 {"MultiMedia5 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053019818 {"MultiMedia10 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020019819 {"MultiMedia18 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
19820 {"MultiMedia18 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
19821
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019822 {"MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19823 {"MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19824 {"MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19825 {"MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19826 {"MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19827 {"MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19828 {"MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19829 {"MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19830 {"MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19831 {"MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19832 {"MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19833 {"MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19834 {"MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19835 {"MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19836 {"MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19837 {"MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019838 {"MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019839 {"MI2S_RX", NULL, "MI2S_RX Audio Mixer"},
19840
19841 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19842 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19843 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19844 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19845 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19846 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19847 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19848 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19849 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19850 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19851 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19852 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19853 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19854 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19855 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019856 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019857 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Audio Mixer"},
19858
19859 {"TERT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19860 {"TERT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19861 {"TERT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19862 {"TERT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19863 {"TERT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19864 {"TERT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19865 {"TERT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19866 {"TERT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19867 {"TERT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19868 {"TERT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19869 {"TERT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19870 {"TERT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19871 {"TERT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19872 {"TERT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019873 {"TERT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019874 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Audio Mixer"},
19875
19876 {"SEC_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19877 {"SEC_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19878 {"SEC_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19879 {"SEC_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19880 {"SEC_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19881 {"SEC_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19882 {"SEC_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19883 {"SEC_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19884 {"SEC_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19885 {"SEC_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19886 {"SEC_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19887 {"SEC_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19888 {"SEC_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19889 {"SEC_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019890 {"SEC_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019891 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Audio Mixer"},
19892
19893 {"SEC_MI2S_RX_SD1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19894 {"SEC_MI2S_RX_SD1", NULL, "SEC_MI2S_RX_SD1 Audio Mixer"},
19895
19896 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19897 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
19898
19899 {"PRI_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19900 {"PRI_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19901 {"PRI_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19902 {"PRI_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19903 {"PRI_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19904 {"PRI_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19905 {"PRI_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19906 {"PRI_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19907 {"PRI_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19908 {"PRI_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19909 {"PRI_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19910 {"PRI_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19911 {"PRI_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19912 {"PRI_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19913 {"PRI_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019914 {"PRI_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019915 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Audio Mixer"},
19916
19917 {"INT0_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19918 {"INT0_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19919 {"INT0_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19920 {"INT0_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19921 {"INT0_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19922 {"INT0_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19923 {"INT0_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19924 {"INT0_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19925 {"INT0_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19926 {"INT0_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19927 {"INT0_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19928 {"INT0_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19929 {"INT0_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19930 {"INT0_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19931 {"INT0_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19932 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Audio Mixer"},
19933
19934 {"INT4_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19935 {"INT4_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19936 {"INT4_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19937 {"INT4_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19938 {"INT4_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19939 {"INT4_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19940 {"INT4_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19941 {"INT4_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19942 {"INT4_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19943 {"INT4_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19944 {"INT4_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19945 {"INT4_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19946 {"INT4_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19947 {"INT4_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19948 {"INT4_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19949 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Audio Mixer"},
19950
19951 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19952 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19953 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19954 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19955 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19956 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19957 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19958 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19959 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19960 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19961 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19962 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19963 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19964 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19965 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19966 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19967 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19968 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Audio Mixer"},
19969
19970 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19971 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19972 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19973 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19974 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19975 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19976 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19977 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19978 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19979 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19980 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19981 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19982 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19983 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19984 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19985 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019986 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019987 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Audio Mixer"},
19988
19989 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19990 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19991 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19992 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19993 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19994 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19995 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19996 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19997 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19998 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19999 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20000 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20001 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20002 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20003 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20004 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020005 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020006 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Audio Mixer"},
20007
20008 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20009 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20010 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20011 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20012 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20013 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20014 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20015 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20016 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20017 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20018 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20019 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20020 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20021 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20022 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20023 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020024 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020025 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Audio Mixer"},
20026
20027 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20028 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20029 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20030 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20031 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20032 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20033 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20034 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20035 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20036 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20037 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20038 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20039 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20040 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20041 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20042 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020043 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020044 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Audio Mixer"},
20045
20046 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20047 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20048 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20049 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20050 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20051 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20052 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20053 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20054 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20055 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20056 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20057 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20058 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20059 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20060 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20061 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20062 {"PRI_TDM_TX_0", NULL, "PRI_TDM_TX_0 Audio Mixer"},
20063
20064 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20065 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20066 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20067 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20068 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20069 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20070 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20071 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20072 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20073 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20074 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20075 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20076 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20077 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20078 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20079 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020080 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020081 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Audio Mixer"},
20082
20083 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20084 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20085 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20086 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20087 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20088 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20089 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20090 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20091 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20092 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20093 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20094 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20095 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20096 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20097 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20098 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020099 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020100 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Audio Mixer"},
20101
20102 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20103 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20104 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20105 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20106 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20107 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20108 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20109 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20110 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20111 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20112 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20113 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20114 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20115 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20116 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20117 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020118 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020119 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Audio Mixer"},
20120
20121 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20122 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20123 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20124 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20125 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20126 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20127 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20128 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20129 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20130 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20131 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20132 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20133 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20134 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20135 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20136 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020137 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020138 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Audio Mixer"},
20139
20140 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20141 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20142 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20143 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20144 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20145 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20146 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20147 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20148 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20149 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20150 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20151 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20152 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20153 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20154 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20155 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20156 {"SEC_TDM_TX_0", NULL, "SEC_TDM_TX_0 Audio Mixer"},
20157
20158 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20159 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20160 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20161 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20162 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20163 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20164 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20165 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20166 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20167 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20168 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20169 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20170 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20171 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20172 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20173 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020174 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020175 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Audio Mixer"},
20176
20177 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20178 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20179 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20180 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20181 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20182 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20183 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20184 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20185 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20186 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20187 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20188 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20189 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20190 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20191 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20192 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20193 {"TERT_TDM_TX_0", NULL, "TERT_TDM_TX_0 Audio Mixer"},
20194
20195 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20196 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20197 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20198 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20199 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20200 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20201 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20202 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20203 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20204 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20205 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20206 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20207 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20208 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20209 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20210 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020211 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020212 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Audio Mixer"},
20213
20214 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20215 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20216 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20217 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20218 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20219 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20220 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20221 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20222 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20223 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20224 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20225 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20226 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20227 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20228 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20229 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020230 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020231 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Audio Mixer"},
20232
20233 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20234 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20235 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20236 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20237 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20238 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20239 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20240 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20241 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20242 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20243 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20244 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20245 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20246 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20247 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20248 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020249 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020250 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Audio Mixer"},
20251
20252 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
20253 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
20254 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
20255 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
20256 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
20257 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
20258 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
20259 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
20260 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
20261 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
20262 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
20263 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
20264 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
20265 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
20266 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
20267 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020268 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020269 {"TERT_TDM_RX_4", NULL, "TERT_TDM_RX_4 Audio Mixer"},
20270
20271 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20272 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20273 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20274 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20275 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20276 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20277 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20278 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20279 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20280 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20281 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20282 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20283 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20284 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20285 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20286 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20287 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020288 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020289 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Audio Mixer"},
20290
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020291 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20292 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20293 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20294 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20295 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20296 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20297 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20298 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20299 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20300 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20301 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20302 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20303 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20304 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20305 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20306 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20307 {"QUAT_TDM_TX_0", NULL, "QUAT_TDM_TX_0 Audio Mixer"},
20308
20309 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20310 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20311 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20312 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20313 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20314 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20315 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20316 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20317 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20318 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20319 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20320 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20321 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20322 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20323 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20324 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
20325 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020326 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020327 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Audio Mixer"},
20328
20329 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20330 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20331 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20332 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20333 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20334 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20335 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20336 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20337 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20338 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20339 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20340 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20341 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20342 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20343 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20344 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
20345 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020346 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020347 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Audio Mixer"},
20348
20349 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20350 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20351 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20352 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20353 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20354 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20355 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20356 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20357 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20358 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20359 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20360 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20361 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20362 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20363 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20364 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
20365 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020366 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020367 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Audio Mixer"},
20368
Rohit Kumara5077932017-09-10 22:05:05 +053020369 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20370 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20371 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20372 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20373 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20374 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20375 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20376 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20377 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20378 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20379 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20380 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20381 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20382 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20383 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20384 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20385 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020386 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053020387 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Audio Mixer"},
20388
20389 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20390 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20391 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20392 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20393 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20394 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20395 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20396 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20397 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20398 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20399 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20400 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20401 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20402 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20403 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20404 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20405 {"QUIN_TDM_TX_0", NULL, "QUIN_TDM_TX_0 Audio Mixer"},
20406
20407 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20408 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20409 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20410 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20411 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20412 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20413 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20414 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20415 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20416 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20417 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20418 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20419 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20420 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20421 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20422 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
20423 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020424 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053020425 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Audio Mixer"},
20426
20427 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20428 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20429 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20430 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20431 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20432 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20433 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20434 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20435 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20436 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20437 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20438 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20439 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20440 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20441 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20442 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
20443 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020444 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053020445 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Audio Mixer"},
20446
20447 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20448 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20449 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20450 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20451 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20452 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20453 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20454 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20455 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20456 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20457 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20458 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20459 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20460 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20461 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20462 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
20463 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020464 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053020465 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Audio Mixer"},
20466
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020467 {"MultiMedia1 Mixer", "PRI_TX", "PRI_I2S_TX"},
20468 {"MultiMedia1 Mixer", "MI2S_TX", "MI2S_TX"},
20469 {"MultiMedia2 Mixer", "MI2S_TX", "MI2S_TX"},
20470 {"MultiMedia3 Mixer", "MI2S_TX", "MI2S_TX"},
20471 {"MultiMedia5 Mixer", "MI2S_TX", "MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020472 {"MultiMedia10 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020473 {"MultiMedia16 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020474 {"MultiMedia1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20475 {"MultiMedia2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20476 {"MultiMedia6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20477 {"MultiMedia1 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
20478 {"MultiMedia2 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
20479 {"MultiMedia1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20480 {"MultiMedia2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20481 {"MultiMedia1 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20482 {"MultiMedia2 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20483 {"MultiMedia1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20484 {"MultiMedia2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20485 {"MultiMedia1 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20486 {"MultiMedia1 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
20487 {"MultiMedia3 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
20488 {"MultiMedia5 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020489 {"MultiMedia10 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020490 {"MultiMedia1 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
20491 {"MultiMedia3 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
20492 {"MultiMedia5 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020493 {"MultiMedia10 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020494 {"MultiMedia16 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
20495 {"MultiMedia16 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020496 {"MultiMedia1 Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
20497 {"MultiMedia3 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
20498 {"MultiMedia5 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020499 {"MultiMedia10 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020500 {"MultiMedia1 Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
20501 {"MultiMedia3 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
20502 {"MultiMedia5 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020503 {"MultiMedia10 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020504 {"MultiMedia16 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020505 {"MultiMedia1 Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
20506 {"MultiMedia3 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
20507 {"MultiMedia5 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020508 {"MultiMedia2 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20509 {"MultiMedia2 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
20510 {"MultiMedia2 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
20511 {"MultiMedia2 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
20512 {"MultiMedia1 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20513 {"MultiMedia1 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20514 {"MultiMedia2 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20515 {"MultiMedia6 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20516 {"MultiMedia6 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20517 {"MultiMedia3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20518 {"MultiMedia5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020519 {"MultiMedia10 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020520 {"MultiMedia6 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20521 {"MultiMedia3 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20522 {"MultiMedia5 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020523 {"MultiMedia10 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020524 {"MultiMedia16 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020525 {"MultiMedia6 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20526 {"MultiMedia3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20527 {"MultiMedia5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020528 {"MultiMedia10 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020529 {"MultiMedia16 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020530 {"MultiMedia17 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20531 {"MultiMedia18 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20532 {"MultiMedia19 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20533 {"MultiMedia28 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20534 {"MultiMedia29 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020535 {"MultiMedia6 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20536 {"MultiMedia6 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
20537 {"MultiMedia6 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
20538 {"MultiMedia6 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020539 {"MultiMedia6 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020540
20541 {"MultiMedia1 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20542 {"MultiMedia1 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20543 {"MultiMedia1 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20544 {"MultiMedia1 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20545 {"MultiMedia1 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20546 {"MultiMedia1 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20547 {"MultiMedia1 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20548 {"MultiMedia1 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20549 {"MultiMedia1 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20550 {"MultiMedia1 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20551 {"MultiMedia1 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20552 {"MultiMedia1 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20553 {"MultiMedia1 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20554 {"MultiMedia1 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20555 {"MultiMedia1 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20556 {"MultiMedia1 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020557 {"MultiMedia1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20558 {"MultiMedia1 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20559 {"MultiMedia1 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20560 {"MultiMedia1 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020561 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20562 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20563 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20564 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20565 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020566 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20567 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20568 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20569 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20570 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20571 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020572 {"MultiMedia1 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20573 {"MultiMedia1 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020574
20575 {"MultiMedia2 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20576 {"MultiMedia2 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20577 {"MultiMedia2 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20578 {"MultiMedia2 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20579 {"MultiMedia2 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20580 {"MultiMedia2 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20581 {"MultiMedia2 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20582 {"MultiMedia2 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20583 {"MultiMedia2 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20584 {"MultiMedia2 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20585 {"MultiMedia2 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20586 {"MultiMedia2 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20587 {"MultiMedia2 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20588 {"MultiMedia2 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20589 {"MultiMedia2 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20590 {"MultiMedia2 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020591 {"MultiMedia2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20592 {"MultiMedia2 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20593 {"MultiMedia2 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20594 {"MultiMedia2 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020595 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20596 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20597 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20598 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20599 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020600 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20601 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20602 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20603 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20604 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20605 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020606 {"MultiMedia2 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20607 {"MultiMedia2 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020608
20609 {"MultiMedia3 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20610 {"MultiMedia3 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20611 {"MultiMedia3 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20612 {"MultiMedia3 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20613 {"MultiMedia3 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20614 {"MultiMedia3 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20615 {"MultiMedia3 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20616 {"MultiMedia3 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20617 {"MultiMedia3 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20618 {"MultiMedia3 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20619 {"MultiMedia3 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20620 {"MultiMedia3 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20621 {"MultiMedia3 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20622 {"MultiMedia3 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20623 {"MultiMedia3 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20624 {"MultiMedia3 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020625 {"MultiMedia3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20626 {"MultiMedia3 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20627 {"MultiMedia3 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20628 {"MultiMedia3 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020629 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20630 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20631 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20632 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20633 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020634 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20635 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20636 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20637 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20638 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20639 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020640 {"MultiMedia3 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20641 {"MultiMedia3 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020642
20643 {"MultiMedia4 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20644 {"MultiMedia4 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20645 {"MultiMedia4 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20646 {"MultiMedia4 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20647 {"MultiMedia4 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20648 {"MultiMedia4 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20649 {"MultiMedia4 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20650 {"MultiMedia4 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20651 {"MultiMedia4 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20652 {"MultiMedia4 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20653 {"MultiMedia4 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20654 {"MultiMedia4 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20655 {"MultiMedia4 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20656 {"MultiMedia4 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20657 {"MultiMedia4 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20658 {"MultiMedia4 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020659 {"MultiMedia4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20660 {"MultiMedia4 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20661 {"MultiMedia4 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20662 {"MultiMedia4 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020663 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20664 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20665 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20666 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20667 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020668 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20669 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20670 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20671 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20672 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20673 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020674 {"MultiMedia4 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20675 {"MultiMedia4 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020676
20677 {"MultiMedia5 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20678 {"MultiMedia5 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20679 {"MultiMedia5 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20680 {"MultiMedia5 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20681 {"MultiMedia5 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20682 {"MultiMedia5 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20683 {"MultiMedia5 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20684 {"MultiMedia5 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20685 {"MultiMedia5 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20686 {"MultiMedia5 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20687 {"MultiMedia5 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20688 {"MultiMedia5 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20689 {"MultiMedia5 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20690 {"MultiMedia5 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20691 {"MultiMedia5 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20692 {"MultiMedia5 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020693 {"MultiMedia5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20694 {"MultiMedia5 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20695 {"MultiMedia5 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20696 {"MultiMedia5 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020697 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20698 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20699 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20700 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20701 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020702 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20703 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20704 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20705 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20706 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20707 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020708 {"MultiMedia5 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20709 {"MultiMedia5 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020710
20711 {"MultiMedia6 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20712 {"MultiMedia6 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20713 {"MultiMedia6 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20714 {"MultiMedia6 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20715 {"MultiMedia6 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20716 {"MultiMedia6 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20717 {"MultiMedia6 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20718 {"MultiMedia6 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20719 {"MultiMedia6 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20720 {"MultiMedia6 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20721 {"MultiMedia6 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20722 {"MultiMedia6 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20723 {"MultiMedia6 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20724 {"MultiMedia6 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20725 {"MultiMedia6 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20726 {"MultiMedia6 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020727 {"MultiMedia6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20728 {"MultiMedia6 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20729 {"MultiMedia6 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20730 {"MultiMedia6 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020731 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20732 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20733 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20734 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20735 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020736 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20737 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20738 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20739 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20740 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20741 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020742 {"MultiMedia6 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20743 {"MultiMedia6 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020744
20745 {"MultiMedia8 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20746 {"MultiMedia8 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20747 {"MultiMedia8 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20748 {"MultiMedia8 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20749 {"MultiMedia8 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20750 {"MultiMedia8 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20751 {"MultiMedia8 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20752 {"MultiMedia8 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20753 {"MultiMedia8 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20754 {"MultiMedia8 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20755 {"MultiMedia8 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20756 {"MultiMedia8 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20757 {"MultiMedia8 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20758 {"MultiMedia8 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20759 {"MultiMedia8 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20760 {"MultiMedia8 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020761 {"MultiMedia8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20762 {"MultiMedia8 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20763 {"MultiMedia8 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20764 {"MultiMedia8 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020765 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20766 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20767 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20768 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20769 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020770 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20771 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20772 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20773 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20774 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20775 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020776 {"MultiMedia8 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20777 {"MultiMedia8 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020778
20779 {"MultiMedia9 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20780 {"MultiMedia9 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20781 {"MultiMedia9 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20782 {"MultiMedia9 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20783 {"MultiMedia9 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20784 {"MultiMedia9 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20785 {"MultiMedia9 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20786 {"MultiMedia9 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020787 {"MultiMedia9 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20788 {"MultiMedia9 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20789 {"MultiMedia9 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20790 {"MultiMedia9 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020791 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20792 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20793 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20794 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20795 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020796 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20797 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20798 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20799 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20800 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20801 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020802 {"MultiMedia9 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20803 {"MultiMedia9 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020804
Laxminath Kasam38070be2017-08-17 18:21:59 +053020805 {"MultiMedia10 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20806 {"MultiMedia10 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20807 {"MultiMedia10 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20808 {"MultiMedia10 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20809 {"MultiMedia10 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20810 {"MultiMedia10 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20811 {"MultiMedia10 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20812 {"MultiMedia10 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020813 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20814 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20815 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20816 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20817 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20818 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
20819
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020820 {"MultiMedia20 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20821 {"MultiMedia20 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20822 {"MultiMedia20 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20823 {"MultiMedia20 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020824 {"MultiMedia20 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020825 {"MultiMedia20 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20826 {"MultiMedia20 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20827 {"MultiMedia20 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20828 {"MultiMedia20 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20829 {"MultiMedia20 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20830 {"MultiMedia20 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20831 {"MultiMedia20 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20832 {"MultiMedia20 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20833 {"MultiMedia20 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20834 {"MultiMedia20 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20835 {"MultiMedia20 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20836 {"MultiMedia20 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20837 {"MultiMedia20 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20838 {"MultiMedia20 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20839 {"MultiMedia20 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20840 {"MultiMedia20 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020841 {"MultiMedia20 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20842 {"MultiMedia20 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20843 {"MultiMedia20 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20844 {"MultiMedia20 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020845 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20846 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20847 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20848 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20849 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020850 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20851 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20852 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20853 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20854 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20855 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020856 {"MultiMedia20 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20857 {"MultiMedia20 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020858
Derek Chen07c6d1c2018-07-05 10:39:25 -070020859 {"MultiMedia21 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
20860 {"MultiMedia21 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
20861 {"MultiMedia21 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20862 {"MultiMedia21 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20863 {"MultiMedia21 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20864 {"MultiMedia21 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20865 {"MultiMedia21 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20866 {"MultiMedia21 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20867 {"MultiMedia21 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20868 {"MultiMedia21 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20869 {"MultiMedia21 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20870 {"MultiMedia21 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20871 {"MultiMedia21 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20872 {"MultiMedia21 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20873 {"MultiMedia21 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20874 {"MultiMedia21 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20875 {"MultiMedia21 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20876 {"MultiMedia21 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
20877 {"MultiMedia21 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20878 {"MultiMedia21 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20879 {"MultiMedia21 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20880 {"MultiMedia21 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053020881 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20882 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20883 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20884 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20885 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
20886 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20887 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20888 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20889 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20890 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20891 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
20892 {"MultiMedia21 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20893 {"MultiMedia21 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020894
Surendar Karkac1cde372018-08-14 18:56:24 +053020895 {"MultiMedia27 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20896 {"MultiMedia27 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
20897 {"MultiMedia27 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
20898 {"MultiMedia27 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20899 {"MultiMedia27 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20900 {"MultiMedia27 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20901 {"MultiMedia27 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20902 {"MultiMedia27 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
20903 {"MultiMedia27 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20904 {"MultiMedia27 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
20905
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020906 {"MultiMedia1 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
20907 {"MultiMedia2 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
20908 {"MultiMedia4 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
20909 {"MultiMedia5 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
20910 {"MultiMedia6 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
20911 {"MultiMedia8 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020912 {"MultiMedia10 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020913
Asish Bhattacharya34504582017-08-08 12:55:01 +053020914 {"MultiMedia16 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20915 {"MultiMedia16 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20916 {"MultiMedia16 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20917 {"MultiMedia16 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20918 {"MultiMedia16 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20919 {"MultiMedia16 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20920 {"MultiMedia16 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20921 {"MultiMedia16 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20922 {"MultiMedia16 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20923 {"MultiMedia16 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20924 {"MultiMedia16 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20925 {"MultiMedia16 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20926 {"MultiMedia16 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20927 {"MultiMedia16 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20928 {"MultiMedia16 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20929 {"MultiMedia16 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
20930 {"MultiMedia16 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020931 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20932 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20933 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20934 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20935 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020936 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20937 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20938 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20939 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20940 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20941 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020942 {"MultiMedia16 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20943 {"MultiMedia16 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020944
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020945 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20946 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20947 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20948 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20949 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20950 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
20951
20952 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20953 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20954 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20955 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20956 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20957 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
20958
20959 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20960 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20961 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20962 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20963 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20964 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
20965
20966 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20967 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20968 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20969 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20970 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20971 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
20972
20973 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20974 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20975 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20976 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20977 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20978 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
20979
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020980 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20981 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20982 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20983 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20984 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20985 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20986 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20987 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20988 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20989 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20990 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20991 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20992 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20993 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20994 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20995 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20996 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
20997 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Audio Mixer"},
20998
20999 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21000 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21001 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21002 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21003 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21004 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21005 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21006 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21007 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21008 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21009 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21010 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21011 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21012 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21013 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21014 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21015 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
21016 {"INT_BT_A2DP_RX", NULL, "INTERNAL_A2DP_RX Audio Mixer"},
21017
21018 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21019 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21020 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21021 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21022 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21023 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21024 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21025 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21026 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21027 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21028 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21029 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21030 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21031 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21032 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21033 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21034 {"INT_FM_RX", NULL, "INTERNAL_FM_RX Audio Mixer"},
21035
21036 {"AFE_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21037 {"AFE_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21038 {"AFE_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21039 {"AFE_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21040 {"AFE_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21041 {"AFE_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21042 {"AFE_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21043 {"AFE_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21044 {"AFE_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21045 {"AFE_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21046 {"AFE_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21047 {"AFE_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21048 {"AFE_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21049 {"AFE_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21050 {"AFE_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21051 {"AFE_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21052 {"PCM_RX", NULL, "AFE_PCM_RX Audio Mixer"},
21053
21054 {"MultiMedia1 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21055 {"MultiMedia3 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21056 {"MultiMedia4 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021057 {"MultiMedia10 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021058 {"MultiMedia17 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21059 {"MultiMedia18 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21060 {"MultiMedia19 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021061 {"MultiMedia28 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21062 {"MultiMedia29 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021063 {"MultiMedia5 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21064 {"MultiMedia8 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021065 {"MultiMedia16 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021066 {"MultiMedia1 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21067 {"MultiMedia4 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021068 {"MultiMedia16 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021069 {"MultiMedia17 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21070 {"MultiMedia18 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21071 {"MultiMedia19 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021072 {"MultiMedia28 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21073 {"MultiMedia29 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021074 {"MultiMedia5 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21075 {"MultiMedia6 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21076 {"MultiMedia8 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21077
21078 {"MultiMedia1 Mixer", "AFE_PCM_TX", "PCM_TX"},
21079 {"MultiMedia3 Mixer", "AFE_PCM_TX", "PCM_TX"},
21080 {"MultiMedia4 Mixer", "AFE_PCM_TX", "PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021081 {"MultiMedia10 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021082 {"MultiMedia17 Mixer", "AFE_PCM_TX", "PCM_TX"},
21083 {"MultiMedia18 Mixer", "AFE_PCM_TX", "PCM_TX"},
21084 {"MultiMedia19 Mixer", "AFE_PCM_TX", "PCM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021085 {"MultiMedia28 Mixer", "AFE_PCM_TX", "PCM_TX"},
21086 {"MultiMedia29 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021087 {"MultiMedia5 Mixer", "AFE_PCM_TX", "PCM_TX"},
21088 {"MultiMedia8 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021089 {"MultiMedia16 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021090 {"MM_UL1", NULL, "MultiMedia1 Mixer"},
21091 {"MultiMedia2 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21092 {"MM_UL2", NULL, "MultiMedia2 Mixer"},
21093 {"MM_UL3", NULL, "MultiMedia3 Mixer"},
21094 {"MM_UL4", NULL, "MultiMedia4 Mixer"},
21095 {"MM_UL5", NULL, "MultiMedia5 Mixer"},
21096 {"MM_UL6", NULL, "MultiMedia6 Mixer"},
21097 {"MM_UL8", NULL, "MultiMedia8 Mixer"},
21098 {"MM_UL9", NULL, "MultiMedia9 Mixer"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021099 {"MM_UL10", NULL, "MultiMedia10 Mixer"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021100 {"MM_UL16", NULL, "MultiMedia16 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021101 {"MM_UL17", NULL, "MultiMedia17 Mixer"},
21102 {"MM_UL18", NULL, "MultiMedia18 Mixer"},
21103 {"MM_UL19", NULL, "MultiMedia19 Mixer"},
21104 {"MM_UL20", NULL, "MultiMedia20 Mixer"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021105 {"MM_UL21", NULL, "MultiMedia21 Mixer"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021106 {"MM_UL27", NULL, "MultiMedia27 Mixer"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021107 {"MM_UL28", NULL, "MultiMedia28 Mixer"},
21108 {"MM_UL29", NULL, "MultiMedia29 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021109
21110 {"AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21111 {"AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21112 {"AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21113 {"AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21114 {"AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21115 {"AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21116 {"AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21117 {"AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21118 {"AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21119 {"AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21120 {"AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21121 {"AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21122 {"AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21123 {"AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21124 {"AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21125 {"AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021126 {"AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021127 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Audio Mixer"},
21128
21129 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21130 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21131 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21132 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21133 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21134 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21135 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21136 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21137 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21138 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21139 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21140 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21141 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21142 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21143 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21144 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021145 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021146 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX Audio Mixer"},
21147
21148 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21149 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21150 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21151 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21152 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21153 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21154 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21155 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21156 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21157 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21158 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21159 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21160 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21161 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21162 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21163 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21164 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX Audio Mixer"},
21165
21166 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21167 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21168 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21169 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21170 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21171 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21172 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21173 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21174 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21175 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21176 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21177 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21178 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21179 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21180 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21181 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21182 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX Audio Mixer"},
21183
Rohit Kumara5077932017-09-10 22:05:05 +053021184 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21185 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21186 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21187 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21188 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21189 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21190 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21191 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21192 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21193 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21194 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21195 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21196 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21197 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21198 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21199 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21200 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX Audio Mixer"},
21201
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021202 {"PRI_RX_Voice Mixer", "Voip", "VOIP_DL"},
21203 {"PRI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21204 {"PRI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21205 {"PRI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21206 {"PRI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21207 {"PRI_I2S_RX", NULL, "PRI_RX_Voice Mixer"},
21208
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021209 {"SEC_RX_Voice Mixer", "Voip", "VOIP_DL"},
21210 {"SEC_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21211 {"SEC_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21212 {"SEC_I2S_RX", NULL, "SEC_RX_Voice Mixer"},
21213
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021214 {"SEC_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
21215 {"SEC_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21216 {"SEC_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21217 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21218 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21219 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_Voice Mixer"},
21220
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021221 {"SLIM_0_RX_Voice Mixer", "Voip", "VOIP_DL"},
21222 {"SLIM_0_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021223 {"SLIM_0_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21224 {"SLIM_0_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21225 {"SLIM_0_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21226 {"SLIMBUS_0_RX", NULL, "SLIM_0_RX_Voice Mixer"},
21227
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021228 {"SLIM_6_RX_Voice Mixer", "Voip", "VOIP_DL"},
21229 {"SLIM_6_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021230 {"SLIM_6_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21231 {"SLIM_6_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21232 {"SLIM_6_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21233 {"SLIMBUS_6_RX", NULL, "SLIM_6_RX_Voice Mixer"},
21234
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021235 {"USB_AUDIO_RX_Voice Mixer", "Voip", "VOIP_DL"},
21236 {"USB_AUDIO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021237 {"USB_AUDIO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21238 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21239 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21240 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX_Voice Mixer"},
21241
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080021242 {"DISPLAY_PORT_RX_Voice Mixer", "Voip", "VOIP_DL"},
21243 {"DISPLAY_PORT_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080021244 {"DISPLAY_PORT_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21245 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21246 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21247 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX_Voice Mixer"},
21248
Karthikeyan Mani57550082018-05-03 18:43:58 -070021249 {"DISPLAY_PORT_RX1_Voice Mixer", "Voip", "VOIP_DL"},
21250 {"DISPLAY_PORT_RX1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21251 {"DISPLAY_PORT_RX1_Voice Mixer", "QCHAT", "QCHAT_DL"},
21252 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21253 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21254 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1_Voice Mixer"},
21255
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021256 {"INTERNAL_BT_SCO_RX_Voice Mixer", "Voip", "VOIP_DL"},
21257 {"INTERNAL_BT_SCO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21258 {"INTERNAL_BT_SCO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21259 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21260 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021261 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX_Voice Mixer"},
21262
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021263 {"AFE_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21264 {"AFE_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21265 {"AFE_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21266 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21267 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21268 {"PCM_RX", NULL, "AFE_PCM_RX_Voice Mixer"},
21269
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021270 {"AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21271 {"AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021272 {"AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21273 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21274 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21275 {"AUX_PCM_RX", NULL, "AUX_PCM_RX_Voice Mixer"},
21276
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021277 {"SEC_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21278 {"SEC_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021279 {"SEC_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21280 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21281 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21282 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX_Voice Mixer"},
21283
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021284 {"TERT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21285 {"TERT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021286 {"TERT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21287 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21288 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21289 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX_Voice Mixer"},
21290
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021291 {"QUAT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21292 {"QUAT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021293 {"QUAT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21294 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21295 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21296 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX_Voice Mixer"},
21297
Rohit Kumara5077932017-09-10 22:05:05 +053021298 {"QUIN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21299 {"QUIN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053021300 {"QUIN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21301 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21302 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21303 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX_Voice Mixer"},
21304
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021305 {"HDMI_RX_Voice Mixer", "Voip", "VOIP_DL"},
21306 {"HDMI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21307 {"HDMI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21308 {"HDMI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21309 {"HDMI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21310 {"HDMI", NULL, "HDMI_RX_Voice Mixer"},
21311 {"HDMI", NULL, "HDMI_DL_HL"},
21312
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021313 {"MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021314 {"MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21315 {"MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21316 {"MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
kunleiz8a60b822017-10-11 15:04:02 +080021317 {"MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021318 {"MI2S_RX", NULL, "MI2S_RX_Voice Mixer"},
21319
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021320 {"PRI_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021321 {"PRI_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21322 {"PRI_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21323 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21324 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21325 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_Voice Mixer"},
21326
21327 {"INT0_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
21328 {"INT0_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21329 {"INT0_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21330 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21331 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21332 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_Voice Mixer"},
21333
21334 {"INT4_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
21335 {"INT4_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21336 {"INT4_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21337 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21338 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21339 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_Voice Mixer"},
21340
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021341 {"TERT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021342 {"TERT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21343 {"TERT_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21344 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21345 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21346 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_Voice Mixer"},
21347
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021348 {"QUAT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021349 {"QUAT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21350 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21351 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21352 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_Voice Mixer"},
21353
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021354 {"QUIN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021355 {"QUIN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21356 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21357 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21358 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_Voice Mixer"},
21359
21360 {"QUAT_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21361 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_Voice Mixer"},
21362
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053021363 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21364 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21365 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_Voice Mixer"},
21366
21367 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21368 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21369 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_Voice Mixer"},
21370
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021371 {"VOC_EXT_EC MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21372 {"VOC_EXT_EC MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21373 {"VOC_EXT_EC MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21374 {"VOC_EXT_EC MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021375 {"VOC_EXT_EC MUX", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021376 {"VOC_EXT_EC MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
Karthikeyan Mania1eb9382018-07-25 10:52:58 -070021377 {"VOC_EXT_EC MUX", "SEC_TDM_TX", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021378 {"VOIP_UL", NULL, "VOC_EXT_EC MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021379 {"VOICEMMODE1_UL", NULL, "VOC_EXT_EC MUX"},
21380 {"VOICEMMODE2_UL", NULL, "VOC_EXT_EC MUX"},
21381
21382 {"AUDIO_REF_EC_UL1 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21383 {"AUDIO_REF_EC_UL1 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21384 {"AUDIO_REF_EC_UL1 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21385 {"AUDIO_REF_EC_UL1 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21386 {"AUDIO_REF_EC_UL1 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
21387 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21388 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
21389 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
21390 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
21391 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21392
21393 {"AUDIO_REF_EC_UL2 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21394 {"AUDIO_REF_EC_UL2 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21395 {"AUDIO_REF_EC_UL2 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21396 {"AUDIO_REF_EC_UL2 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21397
21398 {"AUDIO_REF_EC_UL3 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21399 {"AUDIO_REF_EC_UL3 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21400 {"AUDIO_REF_EC_UL3 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21401 {"AUDIO_REF_EC_UL3 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21402
21403 {"AUDIO_REF_EC_UL4 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21404 {"AUDIO_REF_EC_UL4 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21405 {"AUDIO_REF_EC_UL4 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21406 {"AUDIO_REF_EC_UL4 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21407
21408 {"AUDIO_REF_EC_UL5 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21409 {"AUDIO_REF_EC_UL5 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21410 {"AUDIO_REF_EC_UL5 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21411 {"AUDIO_REF_EC_UL5 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21412
21413 {"AUDIO_REF_EC_UL6 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21414 {"AUDIO_REF_EC_UL6 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21415 {"AUDIO_REF_EC_UL6 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21416 {"AUDIO_REF_EC_UL6 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21417
21418 {"AUDIO_REF_EC_UL8 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21419 {"AUDIO_REF_EC_UL8 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21420 {"AUDIO_REF_EC_UL8 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21421 {"AUDIO_REF_EC_UL8 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21422
21423 {"AUDIO_REF_EC_UL9 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21424 {"AUDIO_REF_EC_UL9 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21425 {"AUDIO_REF_EC_UL9 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21426 {"AUDIO_REF_EC_UL9 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21427
Laxminath Kasam38070be2017-08-17 18:21:59 +053021428 {"AUDIO_REF_EC_UL10 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21429 {"AUDIO_REF_EC_UL10 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21430 {"AUDIO_REF_EC_UL10 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21431 {"AUDIO_REF_EC_UL10 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21432 {"AUDIO_REF_EC_UL10 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
21433 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21434 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
21435 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
21436 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
21437 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Vikram Panduranga016c49f2017-09-11 15:15:56 -070021438
21439 {"AUDIO_REF_EC_UL16 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21440 {"AUDIO_REF_EC_UL16 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21441 {"AUDIO_REF_EC_UL16 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21442 {"AUDIO_REF_EC_UL16 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21443
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021444 {"AUDIO_REF_EC_UL17 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21445 {"AUDIO_REF_EC_UL17 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21446 {"AUDIO_REF_EC_UL17 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21447 {"AUDIO_REF_EC_UL17 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21448
21449 {"AUDIO_REF_EC_UL18 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21450 {"AUDIO_REF_EC_UL18 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21451 {"AUDIO_REF_EC_UL18 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21452 {"AUDIO_REF_EC_UL18 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21453
21454 {"AUDIO_REF_EC_UL19 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21455 {"AUDIO_REF_EC_UL19 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21456 {"AUDIO_REF_EC_UL19 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21457 {"AUDIO_REF_EC_UL19 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21458
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021459 {"AUDIO_REF_EC_UL28 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21460 {"AUDIO_REF_EC_UL28 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21461 {"AUDIO_REF_EC_UL28 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21462 {"AUDIO_REF_EC_UL28 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21463
21464 {"AUDIO_REF_EC_UL29 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21465 {"AUDIO_REF_EC_UL29 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21466 {"AUDIO_REF_EC_UL29 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21467 {"AUDIO_REF_EC_UL29 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Yunfei Zhang3efc4a22017-11-07 16:30:13 +080021468
21469 {"LSM1_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21470 {"LSM2_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21471 {"LSM3_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21472 {"LSM4_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21473 {"LSM5_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21474 {"LSM6_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21475 {"LSM7_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21476 {"LSM8_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21477
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021478 {"MM_UL1", NULL, "AUDIO_REF_EC_UL1 MUX"},
21479 {"MM_UL2", NULL, "AUDIO_REF_EC_UL2 MUX"},
21480 {"MM_UL3", NULL, "AUDIO_REF_EC_UL3 MUX"},
21481 {"MM_UL4", NULL, "AUDIO_REF_EC_UL4 MUX"},
21482 {"MM_UL5", NULL, "AUDIO_REF_EC_UL5 MUX"},
21483 {"MM_UL6", NULL, "AUDIO_REF_EC_UL6 MUX"},
21484 {"MM_UL8", NULL, "AUDIO_REF_EC_UL8 MUX"},
21485 {"MM_UL9", NULL, "AUDIO_REF_EC_UL9 MUX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021486 {"MM_UL10", NULL, "AUDIO_REF_EC_UL10 MUX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021487 {"MM_UL16", NULL, "AUDIO_REF_EC_UL16 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021488 {"MM_UL17", NULL, "AUDIO_REF_EC_UL17 MUX"},
21489 {"MM_UL18", NULL, "AUDIO_REF_EC_UL18 MUX"},
21490 {"MM_UL19", NULL, "AUDIO_REF_EC_UL19 MUX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021491 {"MM_UL28", NULL, "AUDIO_REF_EC_UL28 MUX"},
21492 {"MM_UL29", NULL, "AUDIO_REF_EC_UL29 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021493
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021494 {"VoiceMMode1_Tx Mixer", "PRI_TX_MMode1", "PRI_I2S_TX"},
21495 {"VoiceMMode1_Tx Mixer", "PRI_MI2S_TX_MMode1", "PRI_MI2S_TX"},
21496 {"VoiceMMode1_Tx Mixer", "MI2S_TX_MMode1", "MI2S_TX"},
21497 {"VoiceMMode1_Tx Mixer", "TERT_MI2S_TX_MMode1", "TERT_MI2S_TX"},
21498 {"VoiceMMode1_Tx Mixer", "INT3_MI2S_TX_MMode1", "INT3_MI2S_TX"},
21499 {"VoiceMMode1_Tx Mixer", "SLIM_0_TX_MMode1", "SLIMBUS_0_TX"},
21500 {"VoiceMMode1_Tx Mixer", "SLIM_7_TX_MMode1", "SLIMBUS_7_TX"},
21501 {"VoiceMMode1_Tx Mixer", "SLIM_8_TX_MMode1", "SLIMBUS_8_TX"},
21502 {"VoiceMMode1_Tx Mixer", "USB_AUDIO_TX_MMode1", "USB_AUDIO_TX"},
21503 {"VoiceMMode1_Tx Mixer", "INT_BT_SCO_TX_MMode1", "INT_BT_SCO_TX"},
21504 {"VoiceMMode1_Tx Mixer", "AFE_PCM_TX_MMode1", "PCM_TX"},
21505 {"VoiceMMode1_Tx Mixer", "AUX_PCM_TX_MMode1", "AUX_PCM_TX"},
21506 {"VoiceMMode1_Tx Mixer", "SEC_AUX_PCM_TX_MMode1", "SEC_AUX_PCM_TX"},
21507 {"VoiceMMode1_Tx Mixer", "TERT_AUX_PCM_TX_MMode1", "TERT_AUX_PCM_TX"},
21508 {"VoiceMMode1_Tx Mixer", "QUAT_AUX_PCM_TX_MMode1", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021509 {"VoiceMMode1_Tx Mixer", "QUIN_AUX_PCM_TX_MMode1", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021510 {"VoiceMMode1_Tx Mixer", "QUAT_TDM_TX_0_MMode1", "QUAT_TDM_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053021511 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_0_MMode1", "TX_CDC_DMA_TX_0"},
21512 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_1_MMode1", "TX_CDC_DMA_TX_1"},
21513 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_2_MMode1", "TX_CDC_DMA_TX_2"},
21514 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_3_MMode1", "TX_CDC_DMA_TX_3"},
21515 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_4_MMode1", "TX_CDC_DMA_TX_4"},
21516 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_5_MMode1", "TX_CDC_DMA_TX_5"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021517 {"VOICEMMODE1_UL", NULL, "VoiceMMode1_Tx Mixer"},
21518
21519 {"VoiceMMode2_Tx Mixer", "PRI_TX_MMode2", "PRI_I2S_TX"},
21520 {"VoiceMMode2_Tx Mixer", "PRI_MI2S_TX_MMode2", "PRI_MI2S_TX"},
21521 {"VoiceMMode2_Tx Mixer", "MI2S_TX_MMode2", "MI2S_TX"},
21522 {"VoiceMMode2_Tx Mixer", "TERT_MI2S_TX_MMode2", "TERT_MI2S_TX"},
21523 {"VoiceMMode2_Tx Mixer", "INT3_MI2S_TX_MMode2", "INT3_MI2S_TX"},
21524 {"VoiceMMode2_Tx Mixer", "SLIM_0_TX_MMode2", "SLIMBUS_0_TX"},
21525 {"VoiceMMode2_Tx Mixer", "SLIM_7_TX_MMode2", "SLIMBUS_7_TX"},
21526 {"VoiceMMode2_Tx Mixer", "SLIM_8_TX_MMode2", "SLIMBUS_8_TX"},
21527 {"VoiceMMode2_Tx Mixer", "USB_AUDIO_TX_MMode2", "USB_AUDIO_TX"},
21528 {"VoiceMMode2_Tx Mixer", "INT_BT_SCO_TX_MMode2", "INT_BT_SCO_TX"},
21529 {"VoiceMMode2_Tx Mixer", "AFE_PCM_TX_MMode2", "PCM_TX"},
21530 {"VoiceMMode2_Tx Mixer", "AUX_PCM_TX_MMode2", "AUX_PCM_TX"},
21531 {"VoiceMMode2_Tx Mixer", "SEC_AUX_PCM_TX_MMode2", "SEC_AUX_PCM_TX"},
21532 {"VoiceMMode2_Tx Mixer", "TERT_AUX_PCM_TX_MMode2", "TERT_AUX_PCM_TX"},
21533 {"VoiceMMode2_Tx Mixer", "QUAT_AUX_PCM_TX_MMode2", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021534 {"VoiceMMode2_Tx Mixer", "QUIN_AUX_PCM_TX_MMode2", "QUIN_AUX_PCM_TX"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053021535 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_0_MMode2", "TX_CDC_DMA_TX_0"},
21536 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_1_MMode2", "TX_CDC_DMA_TX_1"},
21537 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_2_MMode2", "TX_CDC_DMA_TX_2"},
21538 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_3_MMode2", "TX_CDC_DMA_TX_3"},
21539 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_4_MMode2", "TX_CDC_DMA_TX_4"},
21540 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_5_MMode2", "TX_CDC_DMA_TX_5"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021541 {"VOICEMMODE2_UL", NULL, "VoiceMMode2_Tx Mixer"},
21542
21543 {"Voip_Tx Mixer", "PRI_TX_Voip", "PRI_I2S_TX"},
21544 {"Voip_Tx Mixer", "MI2S_TX_Voip", "MI2S_TX"},
21545 {"Voip_Tx Mixer", "TERT_MI2S_TX_Voip", "TERT_MI2S_TX"},
21546 {"Voip_Tx Mixer", "INT3_MI2S_TX_Voip", "INT3_MI2S_TX"},
21547 {"Voip_Tx Mixer", "SLIM_0_TX_Voip", "SLIMBUS_0_TX"},
21548 {"Voip_Tx Mixer", "SLIM_7_TX_Voip", "SLIMBUS_7_TX"},
21549 {"Voip_Tx Mixer", "SLIM_8_TX_Voip", "SLIMBUS_8_TX"},
21550 {"Voip_Tx Mixer", "USB_AUDIO_TX_Voip", "USB_AUDIO_TX"},
21551 {"Voip_Tx Mixer", "INTERNAL_BT_SCO_TX_Voip", "INT_BT_SCO_TX"},
21552 {"Voip_Tx Mixer", "AFE_PCM_TX_Voip", "PCM_TX"},
21553 {"Voip_Tx Mixer", "AUX_PCM_TX_Voip", "AUX_PCM_TX"},
21554 {"Voip_Tx Mixer", "SEC_AUX_PCM_TX_Voip", "SEC_AUX_PCM_TX"},
21555 {"Voip_Tx Mixer", "TERT_AUX_PCM_TX_Voip", "TERT_AUX_PCM_TX"},
21556 {"Voip_Tx Mixer", "QUAT_AUX_PCM_TX_Voip", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021557 {"Voip_Tx Mixer", "QUIN_AUX_PCM_TX_Voip", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021558 {"Voip_Tx Mixer", "PRI_MI2S_TX_Voip", "PRI_MI2S_TX"},
21559 {"VOIP_UL", NULL, "Voip_Tx Mixer"},
21560
21561 {"SLIMBUS_DL_HL", "Switch", "SLIM0_DL_HL"},
21562 {"SLIMBUS_0_RX", NULL, "SLIMBUS_DL_HL"},
21563 {"SLIMBUS1_DL_HL", "Switch", "SLIM1_DL_HL"},
21564 {"SLIMBUS_1_RX", NULL, "SLIMBUS1_DL_HL"},
21565 {"SLIMBUS3_DL_HL", "Switch", "SLIM3_DL_HL"},
21566 {"SLIMBUS_3_RX", NULL, "SLIMBUS3_DL_HL"},
21567 {"SLIMBUS4_DL_HL", "Switch", "SLIM4_DL_HL"},
21568 {"SLIMBUS_4_RX", NULL, "SLIMBUS4_DL_HL"},
21569 {"SLIMBUS6_DL_HL", "Switch", "SLIM0_DL_HL"},
21570 {"SLIMBUS_6_RX", NULL, "SLIMBUS6_DL_HL"},
21571 {"SLIM0_UL_HL", NULL, "SLIMBUS_0_TX"},
21572 {"SLIM1_UL_HL", NULL, "SLIMBUS_1_TX"},
21573 {"SLIM3_UL_HL", NULL, "SLIMBUS_3_TX"},
21574 {"SLIM4_UL_HL", NULL, "SLIMBUS_4_TX"},
21575 {"SLIM8_UL_HL", NULL, "SLIMBUS_8_TX"},
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053021576 {"WSA_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
21577 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_DL_HL"},
21578 {"CDC_DMA_UL_HL", NULL, "VA_CDC_DMA_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053021579 {"RX_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
21580 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_DL_HL"},
21581 {"TX3_CDC_DMA_UL_HL", NULL, "TX_CDC_DMA_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021582 {"LSM1 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21583 {"LSM1 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21584 {"LSM1 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21585 {"LSM1 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21586 {"LSM1 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21587 {"LSM1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21588 {"LSM1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21589 {"LSM1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021590 {"LSM1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21591 {"LSM1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021592 {"LSM1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021593 {"LSM1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021594 {"LSM1_UL_HL", NULL, "LSM1 Mixer"},
21595
21596 {"LSM2 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21597 {"LSM2 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21598 {"LSM2 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21599 {"LSM2 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21600 {"LSM2 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21601 {"LSM2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21602 {"LSM2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21603 {"LSM2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021604 {"LSM2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21605 {"LSM2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021606 {"LSM2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021607 {"LSM2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021608 {"LSM2_UL_HL", NULL, "LSM2 Mixer"},
21609
21610
21611 {"LSM3 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21612 {"LSM3 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21613 {"LSM3 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21614 {"LSM3 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21615 {"LSM3 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21616 {"LSM3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21617 {"LSM3 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21618 {"LSM3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021619 {"LSM3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21620 {"LSM3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021621 {"LSM3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021622 {"LSM3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021623 {"LSM3_UL_HL", NULL, "LSM3 Mixer"},
21624
21625
21626 {"LSM4 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21627 {"LSM4 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21628 {"LSM4 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21629 {"LSM4 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21630 {"LSM4 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21631 {"LSM4 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21632 {"LSM4 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21633 {"LSM4 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021634 {"LSM4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21635 {"LSM4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021636 {"LSM4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021637 {"LSM4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021638 {"LSM4_UL_HL", NULL, "LSM4 Mixer"},
21639
21640 {"LSM5 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21641 {"LSM5 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21642 {"LSM5 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21643 {"LSM5 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21644 {"LSM5 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21645 {"LSM5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21646 {"LSM5 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21647 {"LSM5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021648 {"LSM5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21649 {"LSM5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021650 {"LSM5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021651 {"LSM5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021652 {"LSM5_UL_HL", NULL, "LSM5 Mixer"},
21653
21654 {"LSM6 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21655 {"LSM6 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21656 {"LSM6 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21657 {"LSM6 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21658 {"LSM6 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21659 {"LSM6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021660 {"LSM6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21661 {"LSM6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021662 {"LSM6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021663 {"LSM6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021664 {"LSM6_UL_HL", NULL, "LSM6 Mixer"},
21665
21666 {"LSM7 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21667 {"LSM7 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21668 {"LSM7 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21669 {"LSM7 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21670 {"LSM7 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21671 {"LSM7 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021672 {"LSM7 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21673 {"LSM7 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021674 {"LSM7 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021675 {"LSM7 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021676 {"LSM7_UL_HL", NULL, "LSM7 Mixer"},
21677
21678 {"LSM8 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21679 {"LSM8 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21680 {"LSM8 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21681 {"LSM8 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21682 {"LSM8 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21683 {"LSM8 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021684 {"LSM8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21685 {"LSM8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021686 {"LSM8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021687 {"LSM8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021688 {"LSM8_UL_HL", NULL, "LSM8 Mixer"},
21689
21690
21691 {"CPE_LSM_UL_HL", NULL, "BE_IN"},
21692 {"QCHAT_Tx Mixer", "PRI_TX_QCHAT", "PRI_I2S_TX"},
21693 {"QCHAT_Tx Mixer", "SLIM_0_TX_QCHAT", "SLIMBUS_0_TX"},
21694 {"QCHAT_Tx Mixer", "SLIM_7_TX_QCHAT", "SLIMBUS_7_TX"},
21695 {"QCHAT_Tx Mixer", "SLIM_8_TX_QCHAT", "SLIMBUS_8_TX"},
21696 {"QCHAT_Tx Mixer", "INTERNAL_BT_SCO_TX_QCHAT", "INT_BT_SCO_TX"},
21697 {"QCHAT_Tx Mixer", "AFE_PCM_TX_QCHAT", "PCM_TX"},
21698 {"QCHAT_Tx Mixer", "AUX_PCM_TX_QCHAT", "AUX_PCM_TX"},
21699 {"QCHAT_Tx Mixer", "SEC_AUX_PCM_TX_QCHAT", "SEC_AUX_PCM_TX"},
21700 {"QCHAT_Tx Mixer", "TERT_AUX_PCM_TX_QCHAT", "TERT_AUX_PCM_TX"},
21701 {"QCHAT_Tx Mixer", "QUAT_AUX_PCM_TX_QCHAT", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021702 {"QCHAT_Tx Mixer", "QUIN_AUX_PCM_TX_QCHAT", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021703 {"QCHAT_Tx Mixer", "MI2S_TX_QCHAT", "MI2S_TX"},
21704 {"QCHAT_Tx Mixer", "PRI_MI2S_TX_QCHAT", "PRI_MI2S_TX"},
21705 {"QCHAT_Tx Mixer", "TERT_MI2S_TX_QCHAT", "TERT_MI2S_TX"},
21706 {"QCHAT_Tx Mixer", "INT3_MI2S_TX_QCHAT", "INT3_MI2S_TX"},
21707 {"QCHAT_Tx Mixer", "USB_AUDIO_TX_QCHAT", "USB_AUDIO_TX"},
21708 {"QCHAT_UL", NULL, "QCHAT_Tx Mixer"},
21709
21710 {"INT_FM_RX", NULL, "INTFM_DL_HL"},
21711 {"INTFM_UL_HL", NULL, "INT_FM_TX"},
21712 {"INTHFP_UL_HL", NULL, "HFP_PRI_AUX_UL_HL"},
21713 {"HFP_PRI_AUX_UL_HL", "Switch", "AUX_PCM_TX"},
21714 {"INTHFP_UL_HL", NULL, "HFP_AUX_UL_HL"},
21715 {"HFP_AUX_UL_HL", "Switch", "SEC_AUX_PCM_TX"},
21716 {"INTHFP_UL_HL", NULL, "HFP_INT_UL_HL"},
21717 {"HFP_INT_UL_HL", "Switch", "INT_BT_SCO_TX"},
21718 {"SLIM7_UL_HL", NULL, "HFP_SLIM7_UL_HL"},
21719 {"HFP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
21720 {"AUX_PCM_RX", NULL, "AUXPCM_DL_HL"},
21721 {"AUX_PCM_RX", NULL, "INTHFP_DL_HL"},
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080021722 {"SLIM7_UL_HL", NULL, "A2DP_SLIM7_UL_HL"},
21723 {"A2DP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080021724 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021725 {"AUXPCM_UL_HL", NULL, "AUX_PCM_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080021726 {"SEC_AUXPCM_UL_HL", NULL, "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021727 {"MI2S_RX", NULL, "MI2S_DL_HL"},
21728 {"MI2S_UL_HL", NULL, "MI2S_TX"},
21729 {"PCM_RX_DL_HL", "Switch", "SLIM0_DL_HL"},
21730 {"PCM_RX", NULL, "PCM_RX_DL_HL"},
21731
21732 /* connect to INT4_MI2S_DL_HL since same pcm_id */
21733 {"INT0_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
21734 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_DL_HL"},
21735 {"INT4_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
21736 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_DL_HL"},
21737 {"PRI_MI2S_RX_DL_HL", "Switch", "PRI_MI2S_DL_HL"},
21738 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_DL_HL"},
21739 {"SEC_MI2S_RX_DL_HL", "Switch", "SEC_MI2S_DL_HL"},
21740 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_DL_HL"},
21741 {"TERT_MI2S_RX_DL_HL", "Switch", "TERT_MI2S_DL_HL"},
21742 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_DL_HL"},
21743
21744 {"QUAT_MI2S_RX_DL_HL", "Switch", "QUAT_MI2S_DL_HL"},
21745 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053021746 {"QUIN_MI2S_RX_DL_HL", "Switch", "QUIN_MI2S_DL_HL"},
21747 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021748 {"MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
21749 {"INT3_MI2S_UL_HL", NULL, "INT3_MI2S_TX"},
21750 {"TERT_MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
21751 {"SEC_I2S_RX", NULL, "SEC_I2S_DL_HL"},
21752 {"PRI_MI2S_UL_HL", NULL, "PRI_MI2S_TX"},
21753 {"SEC_MI2S_UL_HL", NULL, "SEC_MI2S_TX"},
21754 {"SEC_MI2S_RX", NULL, "SEC_MI2S_DL_HL"},
21755 {"PRI_MI2S_RX", NULL, "PRI_MI2S_DL_HL"},
21756 {"TERT_MI2S_RX", NULL, "TERT_MI2S_DL_HL"},
21757 {"QUAT_MI2S_UL_HL", NULL, "QUAT_MI2S_TX"},
21758
21759 {"PRI_TDM_TX_0_UL_HL", NULL, "PRI_TDM_TX_0"},
21760 {"PRI_TDM_TX_1_UL_HL", NULL, "PRI_TDM_TX_1"},
21761 {"PRI_TDM_TX_2_UL_HL", NULL, "PRI_TDM_TX_2"},
21762 {"PRI_TDM_TX_3_UL_HL", NULL, "PRI_TDM_TX_3"},
21763 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_DL_HL"},
21764 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_DL_HL"},
21765 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_DL_HL"},
21766 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_DL_HL"},
21767 {"SEC_TDM_TX_0_UL_HL", NULL, "SEC_TDM_TX_0"},
21768 {"SEC_TDM_TX_1_UL_HL", NULL, "SEC_TDM_TX_1"},
21769 {"SEC_TDM_TX_2_UL_HL", NULL, "SEC_TDM_TX_2"},
21770 {"SEC_TDM_TX_3_UL_HL", NULL, "SEC_TDM_TX_3"},
21771 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0_DL_HL"},
21772 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1_DL_HL"},
21773 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2_DL_HL"},
21774 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3_DL_HL"},
21775 {"TERT_TDM_TX_0_UL_HL", NULL, "TERT_TDM_TX_0"},
21776 {"TERT_TDM_TX_1_UL_HL", NULL, "TERT_TDM_TX_1"},
21777 {"TERT_TDM_TX_2_UL_HL", NULL, "TERT_TDM_TX_2"},
21778 {"TERT_TDM_TX_3_UL_HL", NULL, "TERT_TDM_TX_3"},
21779 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0_DL_HL"},
21780 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1_DL_HL"},
21781 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2_DL_HL"},
21782 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3_DL_HL"},
21783 {"QUAT_TDM_TX_0_UL_HL", NULL, "QUAT_TDM_TX_0"},
21784 {"QUAT_TDM_TX_1_UL_HL", NULL, "QUAT_TDM_TX_1"},
21785 {"QUAT_TDM_TX_2_UL_HL", NULL, "QUAT_TDM_TX_2"},
21786 {"QUAT_TDM_TX_3_UL_HL", NULL, "QUAT_TDM_TX_3"},
21787 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0_DL_HL"},
21788 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1_DL_HL"},
21789 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_DL_HL"},
21790 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053021791 {"QUIN_TDM_TX_0_UL_HL", NULL, "QUIN_TDM_TX_0"},
21792 {"QUIN_TDM_TX_1_UL_HL", NULL, "QUIN_TDM_TX_1"},
21793 {"QUIN_TDM_TX_2_UL_HL", NULL, "QUIN_TDM_TX_2"},
21794 {"QUIN_TDM_TX_3_UL_HL", NULL, "QUIN_TDM_TX_3"},
21795 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0_DL_HL"},
21796 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1_DL_HL"},
21797 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2_DL_HL"},
21798 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021799
21800 {"PRI_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21801 {"PRI_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21802 {"PRI_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21803 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21804 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21805 {"PRI_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21806 {"PRI_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21807 {"PRI_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21808 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21809 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21810 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21811 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21812 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21813 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21814 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21815 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021816 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21817 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21818 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21819 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021820 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Port Mixer"},
21821
21822 {"PRI_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21823 {"PRI_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21824 {"PRI_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21825 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21826 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21827 {"PRI_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21828 {"PRI_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21829 {"PRI_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21830 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21831 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21832 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21833 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21834 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21835 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21836 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21837 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021838 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21839 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21840 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21841 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021842 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Port Mixer"},
21843
21844 {"PRI_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21845 {"PRI_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21846 {"PRI_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21847 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21848 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21849 {"PRI_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21850 {"PRI_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21851 {"PRI_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21852 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21853 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21854 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21855 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21856 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21857 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21858 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21859 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021860 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21861 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21862 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21863 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021864 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Port Mixer"},
21865
21866 {"PRI_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21867 {"PRI_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21868 {"PRI_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21869 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21870 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21871 {"PRI_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21872 {"PRI_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21873 {"PRI_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21874 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21875 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21876 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21877 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21878 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21879 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21880 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21881 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021882 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21883 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21884 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21885 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021886 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Port Mixer"},
21887
21888 {"SEC_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21889 {"SEC_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21890 {"SEC_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21891 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21892 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21893 {"SEC_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21894 {"SEC_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21895 {"SEC_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21896 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21897 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21898 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21899 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21900 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21901 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21902 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21903 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021904 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21905 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21906 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21907 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021908 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Port Mixer"},
21909
21910 {"SEC_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21911 {"SEC_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21912 {"SEC_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21913 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21914 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21915 {"SEC_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21916 {"SEC_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21917 {"SEC_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21918 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21919 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21920 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21921 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21922 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21923 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21924 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21925 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021926 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21927 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21928 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21929 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021930 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Port Mixer"},
21931
21932 {"SEC_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21933 {"SEC_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21934 {"SEC_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21935 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21936 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21937 {"SEC_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21938 {"SEC_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21939 {"SEC_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21940 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21941 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21942 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21943 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21944 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21945 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21946 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21947 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021948 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21949 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21950 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21951 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021952 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Port Mixer"},
21953
21954 {"SEC_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21955 {"SEC_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21956 {"SEC_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21957 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21958 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21959 {"SEC_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21960 {"SEC_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21961 {"SEC_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21962 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21963 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21964 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21965 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21966 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21967 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21968 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21969 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021970 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21971 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21972 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21973 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021974 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Port Mixer"},
21975
21976 {"TERT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21977 {"TERT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21978 {"TERT_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21979 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21980 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21981 {"TERT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21982 {"TERT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21983 {"TERT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21984 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21985 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21986 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21987 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21988 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21989 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21990 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21991 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021992 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21993 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21994 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21995 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021996 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Port Mixer"},
21997
21998 {"TERT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21999 {"TERT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22000 {"TERT_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22001 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22002 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22003 {"TERT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22004 {"TERT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22005 {"TERT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22006 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22007 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22008 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22009 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22010 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22011 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22012 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22013 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022014 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22015 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22016 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22017 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022018 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Port Mixer"},
22019
22020 {"TERT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22021 {"TERT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22022 {"TERT_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22023 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22024 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22025 {"TERT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22026 {"TERT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22027 {"TERT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22028 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22029 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22030 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22031 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22032 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22033 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22034 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22035 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022036 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22037 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22038 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22039 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022040 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Port Mixer"},
22041
22042 {"TERT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22043 {"TERT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22044 {"TERT_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22045 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22046 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22047 {"TERT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22048 {"TERT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22049 {"TERT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22050 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22051 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22052 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22053 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22054 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22055 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22056 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22057 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022058 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22059 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22060 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22061 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022062 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Port Mixer"},
22063
22064 {"QUAT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22065 {"QUAT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22066 {"QUAT_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22067 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22068 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22069 {"QUAT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22070 {"QUAT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22071 {"QUAT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22072 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22073 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22074 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22075 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22076 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22077 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22078 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22079 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022080 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22081 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22082 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22083 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022084 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Port Mixer"},
22085
22086 {"QUAT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22087 {"QUAT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22088 {"QUAT_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22089 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22090 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22091 {"QUAT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22092 {"QUAT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22093 {"QUAT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22094 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22095 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22096 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22097 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22098 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22099 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22100 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22101 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022102 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22103 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22104 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22105 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022106 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Port Mixer"},
22107
22108 {"QUAT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22109 {"QUAT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22110 {"QUAT_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22111 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22112 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22113 {"QUAT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22114 {"QUAT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22115 {"QUAT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22116 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22117 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22118 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22119 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22120 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22121 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22122 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22123 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022124 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22125 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22126 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22127 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022128 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Port Mixer"},
22129
22130 {"QUAT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22131 {"QUAT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22132 {"QUAT_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22133 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22134 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22135 {"QUAT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22136 {"QUAT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22137 {"QUAT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22138 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22139 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22140 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22141 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22142 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22143 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22144 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22145 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022146 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22147 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22148 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22149 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022150 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Port Mixer"},
22151
Rohit Kumara5077932017-09-10 22:05:05 +053022152 {"QUIN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22153 {"QUIN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22154 {"QUIN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22155 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22156 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22157 {"QUIN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22158 {"QUIN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22159 {"QUIN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22160 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22161 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22162 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22163 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22164 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22165 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22166 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22167 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
22168 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22169 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22170 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22171 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053022172 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053022173
22174 {"QUIN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22175 {"QUIN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22176 {"QUIN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22177 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22178 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22179 {"QUIN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22180 {"QUIN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22181 {"QUIN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22182 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22183 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22184 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22185 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22186 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22187 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22188 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22189 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
22190 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22191 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22192 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22193 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053022194 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053022195
22196 {"QUIN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22197 {"QUIN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22198 {"QUIN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22199 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22200 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22201 {"QUIN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22202 {"QUIN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22203 {"QUIN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22204 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22205 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22206 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22207 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22208 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22209 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22210 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22211 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
22212 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22213 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22214 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22215 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053022216 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053022217
22218 {"QUIN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22219 {"QUIN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22220 {"QUIN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22221 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22222 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22223 {"QUIN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22224 {"QUIN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22225 {"QUIN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22226 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22227 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22228 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22229 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22230 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22231 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22232 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22233 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
22234 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22235 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22236 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22237 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053022238 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053022239
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022240 {"INT0_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22241 {"INT0_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22242 {"INT0_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22243 {"INT0_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022244 {"INT0_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022245 {"INT0_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
22246 {"INT0_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22247 {"INT0_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22248 {"INT0_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22249 {"INT0_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22250 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Port Mixer"},
22251
22252 {"INT4_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22253 {"INT4_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22254 {"INT4_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22255 {"INT4_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022256 {"INT4_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022257 {"INT4_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
22258 {"INT4_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22259 {"INT4_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22260 {"INT4_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22261 {"INT4_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22262 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Port Mixer"},
22263
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053022264 {"WSA_CDC_DMA_RX_0 Port Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22265 {"WSA_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
22266 {"RX_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080022267 {"WSA_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22268 {"RX_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22269
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053022270
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022271 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22272 {"SLIMBUS_0_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22273 {"SLIMBUS_0_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22274 {"SLIMBUS_0_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22275 {"SLIMBUS_0_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22276 {"SLIMBUS_0_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22277 {"SLIMBUS_0_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22278 {"SLIMBUS_0_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
22279 {"SLIMBUS_0_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022280 {"SLIMBUS_0_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022281 {"SLIMBUS_0_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22282 {"SLIMBUS_0_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22283 {"SLIMBUS_0_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22284 {"SLIMBUS_0_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22285 {"SLIMBUS_0_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022286 {"SLIMBUS_0_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022287 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22288 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Port Mixer"},
22289 {"AFE_PCM_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22290 {"AFE_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22291 {"PCM_RX", NULL, "AFE_PCM_RX Port Mixer"},
22292 {"USB_AUDIO_RX Port Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
22293 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Port Mixer"},
22294 {"USB_DL_HL", "Switch", "USBAUDIO_DL_HL"},
22295 {"USB_AUDIO_RX", NULL, "USB_DL_HL"},
22296 {"USBAUDIO_UL_HL", NULL, "USB_AUDIO_TX"},
22297
22298
22299 {"AUX_PCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22300 {"AUX_PCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22301 {"AUX_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22302 {"AUX_PCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22303 {"AUX_PCM_RX Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022304 {"AUX_PCM_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022305 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Port Mixer"},
22306
22307 {"SEC_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22308 {"SEC_AUXPCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22309 {"SEC_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022310 {"SEC_AUXPCM_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022311 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_RX Port Mixer"},
22312
22313 {"TERT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22314 {"TERT_AUXPCM_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
22315 {"TERT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22316 {"TERT_AUX_PCM_RX", NULL, "TERT_AUXPCM_RX Port Mixer"},
22317
22318 {"QUAT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22319 {"QUAT_AUXPCM_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
22320 {"QUAT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22321 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUXPCM_RX Port Mixer"},
22322
Rohit Kumara5077932017-09-10 22:05:05 +053022323 {"QUIN_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22324 {"QUIN_AUXPCM_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
22325 {"QUIN_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22326 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUXPCM_RX Port Mixer"},
22327
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022328 {"Voice Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
22329 {"Voice Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22330 {"Voice Stub Tx Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22331 {"Voice Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
22332 {"Voice Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22333 {"Voice Stub Tx Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22334 {"Voice Stub Tx Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
22335 {"Voice Stub Tx Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022336 {"Voice Stub Tx Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022337 {"Voice Stub Tx Mixer", "MI2S_TX", "MI2S_TX"},
22338 {"Voice Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22339 {"Voice Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22340 {"Voice Stub Tx Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
22341 {"Voice Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22342 {"Voice Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22343 {"Voice Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
22344 {"Voice Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22345 {"Voice Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22346 {"Voice Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
22347 {"VOICE_STUB_UL", NULL, "Voice Stub Tx Mixer"},
22348
22349 {"VoLTE Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
22350 {"VoLTE Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22351 {"VoLTE Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
22352 {"VoLTE Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22353 {"VoLTE Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22354 {"VoLTE Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
22355 {"VoLTE Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22356 {"VoLTE Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22357 {"VoLTE Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
22358 {"VoLTE Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22359 {"VoLTE Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22360 {"VOLTE_STUB_UL", NULL, "VoLTE Stub Tx Mixer"},
22361
22362 {"Voice2 Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
22363 {"Voice2 Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22364 {"Voice2 Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
22365 {"Voice2 Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22366 {"Voice2 Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22367 {"Voice2 Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
22368 {"Voice2 Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22369 {"Voice2 Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22370 {"Voice2 Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
22371 {"Voice2 Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22372 {"Voice2 Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22373 {"VOICE2_STUB_UL", NULL, "Voice2 Stub Tx Mixer"},
22374
kunleizdf5a00a2017-11-27 15:27:36 +080022375 {"STUB_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22376 {"STUB_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022377 {"STUB_RX", NULL, "STUB_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080022378
22379 {"SLIMBUS_1_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22380 {"SLIMBUS_1_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022381 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080022382
22383 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22384 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022385 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX_Voice Mixer"},
22386
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022387 {"SLIM_7_RX_Voice Mixer", "Voip", "VOIP_DL"},
22388 {"SLIM_7_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022389 {"SLIM_7_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22390 {"SLIM_7_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22391 {"SLIM_7_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22392 {"SLIMBUS_7_RX", NULL, "SLIM_7_RX_Voice Mixer"},
22393
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022394 {"SLIM_8_RX_Voice Mixer", "Voip", "VOIP_DL"},
22395 {"SLIM_8_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022396 {"SLIM_8_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22397 {"SLIM_8_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22398 {"SLIM_8_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22399 {"SLIMBUS_8_RX", NULL, "SLIM_8_RX_Voice Mixer"},
22400
22401 {"SLIMBUS_1_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22402 {"SLIMBUS_1_RX Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22403 {"SLIMBUS_1_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22404 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Port Mixer"},
22405 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22406 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22407 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Port Mixer"},
22408 {"SLIMBUS_3_RX Port Mixer", "INTERNAL_BT_SCO_RX", "INT_BT_SCO_RX"},
22409 {"SLIMBUS_3_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22410 {"SLIMBUS_3_RX Port Mixer", "AFE_PCM_RX", "PCM_RX"},
22411 {"SLIMBUS_3_RX Port Mixer", "AUX_PCM_RX", "AUX_PCM_RX"},
22412 {"SLIMBUS_3_RX Port Mixer", "SLIM_0_RX", "SLIMBUS_0_RX"},
22413 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX Port Mixer"},
22414
22415 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22416 {"SLIMBUS_6_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22417 {"SLIMBUS_6_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22418 {"SLIMBUS_6_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22419 {"SLIMBUS_6_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22420 {"SLIMBUS_6_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22421 {"SLIMBUS_6_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22422 {"SLIMBUS_6_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22423 {"SLIMBUS_6_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22424 {"SLIMBUS_6_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22425 {"SLIMBUS_6_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22426 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22427 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Port Mixer"},
22428
22429 {"HDMI_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22430 {"HDMI", NULL, "HDMI_RX Port Mixer"},
22431
22432 {"DISPLAY_PORT_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22433 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX Port Mixer"},
22434
Karthikeyan Mani57550082018-05-03 18:43:58 -070022435 {"DISPLAY_PORT_RX1 Port Mixer", "MI2S_TX", "MI2S_TX"},
22436 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1 Port Mixer"},
22437
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022438 {"SEC_I2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22439 {"SEC_I2S_RX", NULL, "SEC_I2S_RX Port Mixer"},
22440
22441 {"MI2S_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22442 {"MI2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22443 {"MI2S_RX", NULL, "MI2S_RX Port Mixer"},
22444
22445 {"PRI_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22446 {"PRI_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22447 {"PRI_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22448 {"PRI_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022449 {"PRI_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022450 {"PRI_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22451 {"PRI_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22452 {"PRI_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22453 {"PRI_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022454 {"PRI_MI2S_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022455 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Port Mixer"},
22456
22457 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22458 {"SEC_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22459 {"SEC_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22460 {"SEC_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022461 {"SEC_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022462 {"SEC_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22463 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22464 {"SEC_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022465 {"SEC_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022466 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Port Mixer"},
22467
22468 {"TERT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22469 {"TERT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22470 {"TERT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22471 {"TERT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022472 {"TERT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022473 {"TERT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22474 {"TERT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22475 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Port Mixer"},
22476
22477 {"QUAT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22478 {"QUAT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22479 {"QUAT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22480 {"QUAT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022481 {"QUAT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022482 {"QUAT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22483 {"QUAT_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22484 {"QUAT_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22485 {"QUAT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22486 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Port Mixer"},
22487
Rohit Kumara5077932017-09-10 22:05:05 +053022488 {"QUIN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22489 {"QUIN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22490 {"QUIN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22491 {"QUIN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22492 {"QUIN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
22493 {"QUIN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22494 {"QUIN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22495 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Port Mixer"},
22496
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022497 /* Backend Enablement */
22498
22499 {"BE_OUT", NULL, "PRI_I2S_RX"},
22500 {"BE_OUT", NULL, "SEC_I2S_RX"},
22501 {"BE_OUT", NULL, "SLIMBUS_0_RX"},
22502 {"BE_OUT", NULL, "SLIMBUS_1_RX"},
22503 {"BE_OUT", NULL, "SLIMBUS_2_RX"},
22504 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
22505 {"BE_OUT", NULL, "SLIMBUS_4_RX"},
22506 {"BE_OUT", NULL, "SLIMBUS_5_RX"},
22507 {"BE_OUT", NULL, "SLIMBUS_6_RX"},
22508 {"BE_OUT", NULL, "SLIMBUS_7_RX"},
22509 {"BE_OUT", NULL, "SLIMBUS_8_RX"},
22510 {"BE_OUT", NULL, "USB_AUDIO_RX"},
22511 {"BE_OUT", NULL, "HDMI"},
22512 {"BE_OUT", NULL, "DISPLAY_PORT"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070022513 {"BE_OUT", NULL, "DISPLAY_PORT1"},
Ralf Herzc8701f72018-06-20 11:37:35 +020022514 {"BE_OUT", NULL, "PRI_SPDIF_RX"},
22515 {"BE_OUT", NULL, "SEC_SPDIF_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022516 {"BE_OUT", NULL, "MI2S_RX"},
22517 {"BE_OUT", NULL, "QUAT_MI2S_RX"},
22518 {"BE_OUT", NULL, "QUIN_MI2S_RX"},
22519 {"BE_OUT", NULL, "TERT_MI2S_RX"},
22520 {"BE_OUT", NULL, "SEC_MI2S_RX"},
22521 {"BE_OUT", NULL, "SEC_MI2S_RX_SD1"},
22522 {"BE_OUT", NULL, "PRI_MI2S_RX"},
22523 {"BE_OUT", NULL, "INT0_MI2S_RX"},
22524 {"BE_OUT", NULL, "INT4_MI2S_RX"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053022525 {"BE_OUT", NULL, "INT2_MI2S_RX"},
22526 {"BE_OUT", NULL, "INT3_MI2S_RX"},
22527 {"BE_OUT", NULL, "INT5_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022528 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
22529 {"BE_OUT", NULL, "INT_BT_A2DP_RX"},
22530 {"BE_OUT", NULL, "INT_FM_RX"},
22531 {"BE_OUT", NULL, "PCM_RX"},
22532 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
22533 {"BE_OUT", NULL, "AUX_PCM_RX"},
22534 {"BE_OUT", NULL, "SEC_AUX_PCM_RX"},
22535 {"BE_OUT", NULL, "TERT_AUX_PCM_RX"},
22536 {"BE_OUT", NULL, "QUAT_AUX_PCM_RX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022537 {"BE_OUT", NULL, "QUIN_AUX_PCM_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022538 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
22539 {"BE_OUT", NULL, "INT_FM_RX"},
22540 {"BE_OUT", NULL, "PCM_RX"},
22541 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
22542 {"BE_OUT", NULL, "VOICE_PLAYBACK_TX"},
22543 {"BE_OUT", NULL, "VOICE2_PLAYBACK_TX"},
22544 {"BE_OUT", NULL, "PRI_TDM_RX_0"},
22545 {"BE_OUT", NULL, "PRI_TDM_RX_1"},
22546 {"BE_OUT", NULL, "PRI_TDM_RX_2"},
22547 {"BE_OUT", NULL, "PRI_TDM_RX_3"},
22548 {"BE_OUT", NULL, "SEC_TDM_RX_0"},
22549 {"BE_OUT", NULL, "SEC_TDM_RX_1"},
22550 {"BE_OUT", NULL, "SEC_TDM_RX_2"},
22551 {"BE_OUT", NULL, "SEC_TDM_RX_3"},
22552 {"BE_OUT", NULL, "TERT_TDM_RX_0"},
22553 {"BE_OUT", NULL, "TERT_TDM_RX_1"},
22554 {"BE_OUT", NULL, "TERT_TDM_RX_2"},
22555 {"BE_OUT", NULL, "TERT_TDM_RX_3"},
22556 {"BE_OUT", NULL, "TERT_TDM_RX_4"},
22557 {"BE_OUT", NULL, "QUAT_TDM_RX_0"},
22558 {"BE_OUT", NULL, "QUAT_TDM_RX_1"},
22559 {"BE_OUT", NULL, "QUAT_TDM_RX_2"},
22560 {"BE_OUT", NULL, "QUAT_TDM_RX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022561 {"BE_OUT", NULL, "QUIN_TDM_RX_0"},
22562 {"BE_OUT", NULL, "QUIN_TDM_RX_1"},
22563 {"BE_OUT", NULL, "QUIN_TDM_RX_2"},
22564 {"BE_OUT", NULL, "QUIN_TDM_RX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022565 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_0"},
22566 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022567 {"BE_OUT", NULL, "RX_CDC_DMA_RX_0"},
22568 {"BE_OUT", NULL, "RX_CDC_DMA_RX_1"},
22569 {"BE_OUT", NULL, "RX_CDC_DMA_RX_2"},
22570 {"BE_OUT", NULL, "RX_CDC_DMA_RX_3"},
22571 {"BE_OUT", NULL, "RX_CDC_DMA_RX_4"},
22572 {"BE_OUT", NULL, "RX_CDC_DMA_RX_5"},
22573 {"BE_OUT", NULL, "RX_CDC_DMA_RX_6"},
22574 {"BE_OUT", NULL, "RX_CDC_DMA_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022575
22576 {"PRI_I2S_TX", NULL, "BE_IN"},
22577 {"MI2S_TX", NULL, "BE_IN"},
22578 {"QUAT_MI2S_TX", NULL, "BE_IN"},
22579 {"QUIN_MI2S_TX", NULL, "BE_IN"},
22580 {"PRI_MI2S_TX", NULL, "BE_IN"},
22581 {"TERT_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053022582 {"INT0_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022583 {"INT2_MI2S_TX", NULL, "BE_IN"},
22584 {"INT3_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053022585 {"INT4_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022586 {"INT5_MI2S_TX", NULL, "BE_IN"},
22587 {"SEC_MI2S_TX", NULL, "BE_IN"},
22588 {"SENARY_MI2S_TX", NULL, "BE_IN" },
22589 {"SLIMBUS_0_TX", NULL, "BE_IN" },
22590 {"SLIMBUS_1_TX", NULL, "BE_IN" },
22591 {"SLIMBUS_3_TX", NULL, "BE_IN" },
22592 {"SLIMBUS_4_TX", NULL, "BE_IN" },
22593 {"SLIMBUS_5_TX", NULL, "BE_IN" },
22594 {"SLIMBUS_6_TX", NULL, "BE_IN" },
22595 {"SLIMBUS_7_TX", NULL, "BE_IN" },
22596 {"SLIMBUS_8_TX", NULL, "BE_IN" },
22597 {"USB_AUDIO_TX", NULL, "BE_IN" },
22598 {"INT_BT_SCO_TX", NULL, "BE_IN"},
22599 {"INT_FM_TX", NULL, "BE_IN"},
22600 {"PCM_TX", NULL, "BE_IN"},
22601 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
22602 {"BE_OUT", NULL, "STUB_RX"},
22603 {"STUB_TX", NULL, "BE_IN"},
22604 {"STUB_1_TX", NULL, "BE_IN"},
22605 {"BE_OUT", NULL, "AUX_PCM_RX"},
22606 {"AUX_PCM_TX", NULL, "BE_IN"},
22607 {"SEC_AUX_PCM_TX", NULL, "BE_IN"},
22608 {"TERT_AUX_PCM_TX", NULL, "BE_IN"},
22609 {"QUAT_AUX_PCM_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053022610 {"QUIN_AUX_PCM_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022611 {"INCALL_RECORD_TX", NULL, "BE_IN"},
22612 {"INCALL_RECORD_RX", NULL, "BE_IN"},
22613 {"SLIM0_RX_VI_FB_LCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
22614 {"SLIM0_RX_VI_FB_RCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022615 {"WSA_RX_0_VI_FB_LCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
22616 {"WSA_RX_0_VI_FB_RCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022617 {"PRI_MI2S_RX_VI_FB_MUX", "SENARY_TX", "SENARY_TX"},
22618 {"INT4_MI2S_RX_VI_FB_MONO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
22619 {"INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
22620 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_LCH_MUX"},
22621 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_RCH_MUX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022622 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_LCH_MUX"},
22623 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_RCH_MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022624 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_VI_FB_MUX"},
22625 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_MONO_CH_MUX"},
22626 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_STEREO_CH_MUX"},
22627 {"PRI_TDM_TX_0", NULL, "BE_IN"},
22628 {"PRI_TDM_TX_1", NULL, "BE_IN"},
22629 {"PRI_TDM_TX_2", NULL, "BE_IN"},
22630 {"PRI_TDM_TX_3", NULL, "BE_IN"},
22631 {"SEC_TDM_TX_0", NULL, "BE_IN"},
22632 {"SEC_TDM_TX_1", NULL, "BE_IN"},
22633 {"SEC_TDM_TX_2", NULL, "BE_IN"},
22634 {"SEC_TDM_TX_3", NULL, "BE_IN"},
22635 {"TERT_TDM_TX_0", NULL, "BE_IN"},
22636 {"TERT_TDM_TX_1", NULL, "BE_IN"},
22637 {"TERT_TDM_TX_2", NULL, "BE_IN"},
22638 {"TERT_TDM_TX_3", NULL, "BE_IN"},
22639 {"QUAT_TDM_TX_0", NULL, "BE_IN"},
22640 {"QUAT_TDM_TX_1", NULL, "BE_IN"},
22641 {"QUAT_TDM_TX_2", NULL, "BE_IN"},
22642 {"QUAT_TDM_TX_3", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053022643 {"QUIN_TDM_TX_0", NULL, "BE_IN"},
22644 {"QUIN_TDM_TX_1", NULL, "BE_IN"},
22645 {"QUIN_TDM_TX_2", NULL, "BE_IN"},
22646 {"QUIN_TDM_TX_3", NULL, "BE_IN"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022647 {"WSA_CDC_DMA_TX_0", NULL, "BE_IN"},
22648 {"WSA_CDC_DMA_TX_1", NULL, "BE_IN"},
22649 {"WSA_CDC_DMA_TX_2", NULL, "BE_IN"},
22650 {"VA_CDC_DMA_TX_0", NULL, "BE_IN"},
22651 {"VA_CDC_DMA_TX_1", NULL, "BE_IN"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022652 {"TX_CDC_DMA_TX_0", NULL, "BE_IN"},
22653 {"TX_CDC_DMA_TX_1", NULL, "BE_IN"},
22654 {"TX_CDC_DMA_TX_2", NULL, "BE_IN"},
22655 {"TX_CDC_DMA_TX_3", NULL, "BE_IN"},
22656 {"TX_CDC_DMA_TX_4", NULL, "BE_IN"},
22657 {"TX_CDC_DMA_TX_5", NULL, "BE_IN"},
Ralf Herzc8701f72018-06-20 11:37:35 +020022658 {"PRI_SPDIF_TX", NULL, "BE_IN"},
22659 {"SEC_SPDIF_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022660};
22661
22662static int msm_pcm_routing_hw_params(struct snd_pcm_substream *substream,
22663 struct snd_pcm_hw_params *params)
22664{
22665 struct snd_soc_pcm_runtime *rtd = substream->private_data;
22666 unsigned int be_id = rtd->dai_link->id;
22667
22668 if (be_id >= MSM_BACKEND_DAI_MAX) {
22669 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
22670 return -EINVAL;
22671 }
22672
22673 mutex_lock(&routing_lock);
22674 msm_bedais[be_id].sample_rate = params_rate(params);
22675 msm_bedais[be_id].channel = params_channels(params);
22676 msm_bedais[be_id].format = params_format(params);
22677 pr_debug("%s: BE Sample Rate (%d) format (%d) BE id %d\n",
22678 __func__, msm_bedais[be_id].sample_rate,
22679 msm_bedais[be_id].format, be_id);
22680 mutex_unlock(&routing_lock);
22681 return 0;
22682}
22683
22684static int msm_pcm_routing_close(struct snd_pcm_substream *substream)
22685{
22686 struct snd_soc_pcm_runtime *rtd = substream->private_data;
22687 unsigned int be_id = rtd->dai_link->id;
22688 int i, session_type, path_type, topology;
22689 struct msm_pcm_routing_bdai_data *bedai;
22690 struct msm_pcm_routing_fdai_data *fdai;
22691
22692 pr_debug("%s: substream->pcm->id:%s\n",
22693 __func__, substream->pcm->id);
22694
22695 if (be_id >= MSM_BACKEND_DAI_MAX) {
22696 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
22697 return -EINVAL;
22698 }
22699
22700 bedai = &msm_bedais[be_id];
22701 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK ?
22702 0 : 1);
22703 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
22704 path_type = ADM_PATH_PLAYBACK;
22705 else
22706 path_type = ADM_PATH_LIVE_REC;
22707
22708 mutex_lock(&routing_lock);
22709 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
22710 if (!is_mm_lsm_fe_id(i))
22711 continue;
22712 fdai = &fe_dai_map[i][session_type];
22713 if (fdai->strm_id != INVALID_SESSION) {
22714 int idx;
22715 int port_id;
22716 unsigned long copp =
22717 session_copp_map[i][session_type][be_id];
22718 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
22719 if (test_bit(idx, &copp))
22720 break;
22721 fdai->be_srate = bedai->sample_rate;
22722 port_id = bedai->port_id;
22723 topology = adm_get_topology_for_port_copp_idx(port_id,
22724 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070022725 msm_routing_unload_topology(topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022726 adm_close(bedai->port_id, fdai->perf_mode, idx);
22727 pr_debug("%s: copp:%ld,idx bit fe:%d, type:%d,be:%d topology=0x%x\n",
22728 __func__, copp, i, session_type, be_id,
22729 topology);
22730 clear_bit(idx,
22731 &session_copp_map[i][session_type][be_id]);
22732 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053022733 (fdai->passthr_mode == LEGACY_PCM))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022734 msm_pcm_routing_deinit_pp(bedai->port_id,
22735 topology);
22736 }
22737 }
22738
22739 bedai->active = 0;
22740 bedai->sample_rate = 0;
22741 bedai->channel = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022742 mutex_unlock(&routing_lock);
22743
22744 return 0;
22745}
22746
22747static int msm_pcm_routing_prepare(struct snd_pcm_substream *substream)
22748{
22749 struct snd_soc_pcm_runtime *rtd = substream->private_data;
22750 unsigned int be_id = rtd->dai_link->id;
22751 int i, path_type, topology;
22752 int session_type = INVALID_SESSION;
22753 struct msm_pcm_routing_bdai_data *bedai;
22754 u32 channels, sample_rate;
22755 uint16_t bits_per_sample = 16, voc_path_type;
22756 struct msm_pcm_routing_fdai_data *fdai;
22757 u32 session_id;
22758 struct media_format_info voc_be_media_format;
22759 bool is_lsm;
22760
22761 pr_debug("%s: substream->pcm->id:%s\n",
22762 __func__, substream->pcm->id);
22763
22764 if (be_id >= MSM_BACKEND_DAI_MAX) {
22765 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
22766 return -EINVAL;
22767 }
22768
22769 bedai = &msm_bedais[be_id];
22770
22771 mutex_lock(&routing_lock);
22772 if (bedai->active == 1)
22773 goto done; /* Ignore prepare if back-end already active */
22774
22775 /* AFE port is not active at this point. However, still
22776 * go ahead setting active flag under the notion that
22777 * QDSP6 is able to handle ADM starting before AFE port
22778 * is started.
22779 */
22780 bedai->active = 1;
22781
22782 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
22783 if (!(is_mm_lsm_fe_id(i) &&
22784 route_check_fe_id_adm_support(i)))
22785 continue;
22786
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053022787 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) ?
22788 SESSION_TYPE_RX : SESSION_TYPE_TX;
22789 fdai = &fe_dai_map[i][session_type];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022790 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053022791 if (fdai->passthr_mode != LEGACY_PCM)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022792 path_type = ADM_PATH_COMPRESSED_RX;
22793 else
22794 path_type = ADM_PATH_PLAYBACK;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022795 } else {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053022796 if ((fdai->passthr_mode != LEGACY_PCM) &&
22797 (fdai->passthr_mode != LISTEN))
Ralf Herzc8701f72018-06-20 11:37:35 +020022798 path_type = ADM_PATH_COMPRESSED_TX;
22799 else
22800 path_type = ADM_PATH_LIVE_REC;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022801 }
22802
22803 is_lsm = (i >= MSM_FRONTEND_DAI_LSM1) &&
22804 (i <= MSM_FRONTEND_DAI_LSM8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022805 if (fdai->strm_id != INVALID_SESSION) {
22806 int app_type, app_type_idx, copp_idx, acdb_dev_id;
22807
22808 if (session_type == SESSION_TYPE_TX &&
22809 fdai->be_srate &&
22810 (fdai->be_srate != bedai->sample_rate)) {
22811 pr_debug("%s: flush strm %d diff BE rates\n",
22812 __func__,
22813 fdai->strm_id);
22814
22815 if (fdai->event_info.event_func)
22816 fdai->event_info.event_func(
22817 MSM_PCM_RT_EVT_BUF_RECFG,
22818 fdai->event_info.priv_data);
22819 fdai->be_srate = 0; /* might not need it */
22820 }
22821 bits_per_sample = msm_routing_get_bit_width(
22822 bedai->format);
22823
22824 app_type =
22825 fe_dai_app_type_cfg[i][session_type][be_id].app_type;
22826 if (app_type && is_lsm) {
22827 app_type_idx =
22828 msm_pcm_routing_get_lsm_app_type_idx(app_type);
22829 sample_rate =
22830 fe_dai_app_type_cfg[i][session_type][be_id]
22831 .sample_rate;
22832 bits_per_sample =
22833 lsm_app_type_cfg[app_type_idx].bit_width;
22834 } else if (app_type) {
22835 app_type_idx =
22836 msm_pcm_routing_get_app_type_idx(app_type);
22837 sample_rate =
22838 fe_dai_app_type_cfg[i][session_type]
22839 [be_id].sample_rate;
22840 bits_per_sample =
22841 app_type_cfg[app_type_idx].bit_width;
22842 } else
22843 sample_rate = bedai->sample_rate;
22844 /*
22845 * check if ADM needs to be configured with different
22846 * channel mapping than backend
22847 */
22848 if (!bedai->adm_override_ch)
22849 channels = bedai->channel;
22850 else
22851 channels = bedai->adm_override_ch;
22852 acdb_dev_id =
22853 fe_dai_app_type_cfg[i][session_type][be_id].acdb_dev_id;
22854 topology = msm_routing_get_adm_topology(i, session_type,
22855 be_id);
Ralf Herzc8701f72018-06-20 11:37:35 +020022856
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053022857 if ((fdai->passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
22858 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_GEN)
22859 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_IEC61937))
Ralf Herzc8701f72018-06-20 11:37:35 +020022860 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
22861
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022862 copp_idx = adm_open(bedai->port_id, path_type,
22863 sample_rate, channels, topology,
22864 fdai->perf_mode, bits_per_sample,
22865 app_type, acdb_dev_id);
22866 if ((copp_idx < 0) ||
22867 (copp_idx >= MAX_COPPS_PER_PORT)) {
22868 pr_err("%s: adm open failed\n", __func__);
22869 mutex_unlock(&routing_lock);
22870 return -EINVAL;
22871 }
22872 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
22873 __func__, i, session_type, be_id);
22874 set_bit(copp_idx,
22875 &session_copp_map[i][session_type][be_id]);
22876
22877 if (msm_is_resample_needed(
22878 sample_rate,
22879 bedai->sample_rate))
22880 adm_copp_mfc_cfg(
22881 bedai->port_id, copp_idx,
22882 bedai->sample_rate);
22883
22884 msm_pcm_routing_build_matrix(i, session_type, path_type,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053022885 fdai->perf_mode, fdai->passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022886 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053022887 (fdai->passthr_mode == LEGACY_PCM))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022888 msm_pcm_routing_cfg_pp(bedai->port_id, copp_idx,
22889 topology, channels);
22890 }
22891 }
22892
22893 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
22894 session_id = msm_pcm_routing_get_voc_sessionid(i);
22895 if (session_id) {
22896 pr_debug("%s voice session_id: 0x%x\n", __func__,
22897 session_id);
22898
22899 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
22900 voc_path_type = RX_PATH;
22901 else
22902 voc_path_type = TX_PATH;
22903
22904 voc_set_route_flag(session_id, voc_path_type, 1);
22905
22906 memset(&voc_be_media_format, 0,
22907 sizeof(struct media_format_info));
22908
22909 voc_be_media_format.port_id = bedai->port_id;
22910 voc_be_media_format.num_channels = bedai->channel;
22911 voc_be_media_format.sample_rate = bedai->sample_rate;
22912 voc_be_media_format.bits_per_sample = bedai->format;
22913 /* Defaulting this to 1 for voice call usecases */
22914 voc_be_media_format.channel_mapping[0] = 1;
22915
22916 voc_set_device_config(session_id, voc_path_type,
22917 &voc_be_media_format);
22918
22919 if (voc_get_route_flag(session_id, RX_PATH) &&
22920 voc_get_route_flag(session_id, TX_PATH))
22921 voc_enable_device(session_id);
22922 }
22923 }
22924
22925 /* Check if backend is an external ec ref port and set as needed */
22926 if (unlikely(bedai->port_id == voc_get_ext_ec_ref_port_id())) {
22927
22928 memset(&voc_be_media_format, 0,
22929 sizeof(struct media_format_info));
22930
22931 /* Get format info for ec ref port from msm_bedais[] */
22932 voc_be_media_format.port_id = bedai->port_id;
22933 voc_be_media_format.num_channels = bedai->channel;
22934 voc_be_media_format.bits_per_sample = bedai->format;
22935 voc_be_media_format.sample_rate = bedai->sample_rate;
22936 /* Defaulting this to 1 for voice call usecases */
22937 voc_be_media_format.channel_mapping[0] = 1;
22938 voc_set_ext_ec_ref_media_fmt_info(&voc_be_media_format);
22939 pr_debug("%s: EC Ref media format info set to port_id=%d, num_channels=%d, bits_per_sample=%d, sample_rate=%d\n",
22940 __func__, voc_be_media_format.port_id,
22941 voc_be_media_format.num_channels,
22942 voc_be_media_format.bits_per_sample,
22943 voc_be_media_format.sample_rate);
22944 }
22945
22946done:
22947 mutex_unlock(&routing_lock);
22948
22949 return 0;
22950}
22951
22952static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
22953 int fe_id)
22954{
22955 int index, topo_id, be_idx;
22956 unsigned long pp_config = 0;
22957 bool mute_on;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053022958 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022959 bool compr_passthr_mode = true;
22960
22961 pr_debug("%s: port_id %d, copp_idx %d\n", __func__, port_id, copp_idx);
22962
22963 if (port_id != HDMI_RX && port_id != DISPLAY_PORT_RX) {
22964 pr_err("%s: Device pp params on invalid port %d\n",
22965 __func__, port_id);
22966 return -EINVAL;
22967 }
22968
22969 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
22970 if (port_id == msm_bedais[be_idx].port_id)
22971 break;
22972 }
22973
22974 if (be_idx >= MSM_BACKEND_DAI_MAX) {
22975 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
22976 return -EINVAL;
22977 }
22978
22979 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
22980 if (msm_bedais_pp_params[index].port_id == port_id)
22981 break;
22982 }
22983 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
22984 pr_err("%s: Invalid backend pp params index %d\n",
22985 __func__, index);
22986 return -EINVAL;
22987 }
22988
22989 topo_id = adm_get_topology_for_port_copp_idx(port_id, copp_idx);
22990 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY) {
22991 pr_err("%s: Invalid passthrough topology 0x%x\n",
22992 __func__, topo_id);
22993 return -EINVAL;
22994 }
22995
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053022996 session_type =
22997 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
22998 SESSION_TYPE_RX : SESSION_TYPE_TX;
22999
23000 if ((fe_dai_map[fe_id][session_type].passthr_mode == LEGACY_PCM) ||
23001 (fe_dai_map[fe_id][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023002 compr_passthr_mode = false;
23003
23004 pp_config = msm_bedais_pp_params[index].pp_params_config;
23005 if (test_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config)) {
23006 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
23007 clear_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config);
23008 mute_on = msm_bedais_pp_params[index].mute_on;
23009 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23010 adm_send_compressed_device_mute(port_id,
23011 copp_idx,
23012 mute_on);
23013 }
23014 if (test_bit(ADM_PP_PARAM_LATENCY_BIT, &pp_config)) {
23015 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
23016 clear_bit(ADM_PP_PARAM_LATENCY_BIT,
23017 &pp_config);
23018 latency = msm_bedais_pp_params[index].latency;
23019 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23020 adm_send_compressed_device_latency(port_id,
23021 copp_idx,
23022 latency);
23023 }
23024 return 0;
23025}
23026
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023027static uint32_t msm_routing_get_topology(size_t data_size, void *data)
23028{
23029 uint32_t topology = NULL_COPP_TOPOLOGY;
23030 void *cal_info = NULL;
23031 uint32_t size = 0;
23032
23033 /* Retrieve cal_info size from cal data*/
23034 size = data_size - sizeof(struct audio_cal_type_basic);
23035 cal_info = kzalloc(size, GFP_KERNEL);
23036
23037 if (!cal_info)
23038 goto done;
23039
23040 memcpy(cal_info,
23041 ((uint8_t *)data + sizeof(struct audio_cal_type_basic)), size);
23042
23043 topology = ((struct audio_cal_info_adm_top *)cal_info)->topology;
23044 kfree(cal_info);
23045 cal_info = NULL;
23046
23047done:
23048 pr_debug("%s: Using topology %d\n", __func__, topology);
23049
23050 return topology;
23051}
23052
23053static void msm_routing_load_topology(size_t data_size, void *data)
23054{
23055 uint32_t topology_id;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053023056 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023057
23058 topology_id = msm_routing_get_topology(data_size, data);
23059 if (topology_id != NULL_COPP_TOPOLOGY)
23060 ret = q6core_load_unload_topo_modules(topology_id,
23061 CORE_LOAD_TOPOLOGY);
23062 if (ret < 0)
23063 pr_debug("%s %d load topology failed\n",
23064 __func__, topology_id);
23065
23066}
23067
23068static void msm_routing_unload_topology(uint32_t topology_id)
23069{
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053023070 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023071
23072 if (topology_id != NULL_COPP_TOPOLOGY)
23073 ret = q6core_load_unload_topo_modules(topology_id,
23074 CORE_UNLOAD_TOPOLOGY);
23075 if (ret < 0)
23076 pr_debug("%s %d unload topology failed\n",
23077 __func__, topology_id);
23078
23079}
23080
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023081static int msm_routing_put_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
23082 struct snd_ctl_elem_value *ucontrol)
23083{
23084 int pp_id = ucontrol->value.integer.value[0];
23085 int port_id = 0;
23086 int index, be_idx, i, topo_id, idx;
23087 bool mute;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023088 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023089 bool compr_passthr_mode = true;
23090
23091 pr_debug("%s: pp_id: 0x%x\n", __func__, pp_id);
23092
23093 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
23094 port_id = msm_bedais[be_idx].port_id;
23095 if (port_id == HDMI_RX || port_id == DISPLAY_PORT_RX)
23096 break;
23097 }
23098
23099 if (be_idx >= MSM_BACKEND_DAI_MAX) {
23100 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
23101 return -EINVAL;
23102 }
23103
23104 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
23105 if (msm_bedais_pp_params[index].port_id == port_id)
23106 break;
23107 }
23108 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
23109 pr_err("%s: Invalid pp params backend index %d\n",
23110 __func__, index);
23111 return -EINVAL;
23112 }
23113
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023114 session_type =
23115 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
23116 SESSION_TYPE_RX : SESSION_TYPE_TX;
23117
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023118 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
23119 MSM_FRONTEND_DAI_MM_SIZE) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023120 if ((fe_dai_map[i][session_type].passthr_mode == LEGACY_PCM) ||
23121 (fe_dai_map[i][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023122 compr_passthr_mode = false;
23123
23124 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
23125 unsigned long copp =
23126 session_copp_map[i]
23127 [SESSION_TYPE_RX][be_idx];
23128 if (!test_bit(idx, &copp))
23129 continue;
23130 topo_id = adm_get_topology_for_port_copp_idx(port_id,
23131 idx);
23132 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY)
23133 continue;
23134 pr_debug("%s: port: 0x%x, copp %ld, be active: %d, passt: %d\n",
23135 __func__, port_id, copp, msm_bedais[be_idx].active,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023136 fe_dai_map[i][session_type].passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023137 switch (pp_id) {
23138 case ADM_PP_PARAM_MUTE_ID:
23139 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
23140 mute = ucontrol->value.integer.value[1] ? true : false;
23141 msm_bedais_pp_params[index].mute_on = mute;
23142 set_bit(ADM_PP_PARAM_MUTE_BIT,
23143 &msm_bedais_pp_params[index].pp_params_config);
23144 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23145 adm_send_compressed_device_mute(port_id,
23146 idx, mute);
23147 break;
23148 case ADM_PP_PARAM_LATENCY_ID:
23149 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
23150 msm_bedais_pp_params[index].latency =
23151 ucontrol->value.integer.value[1];
23152 set_bit(ADM_PP_PARAM_LATENCY_BIT,
23153 &msm_bedais_pp_params[index].pp_params_config);
23154 latency = msm_bedais_pp_params[index].latency =
23155 ucontrol->value.integer.value[1];
23156 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23157 adm_send_compressed_device_latency(port_id,
23158 idx, latency);
23159 break;
23160 default:
23161 pr_info("%s, device pp param %d not supported\n",
23162 __func__, pp_id);
23163 break;
23164 }
23165 }
23166 }
23167 return 0;
23168}
23169
23170static int msm_routing_get_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
23171 struct snd_ctl_elem_value *ucontrol)
23172{
23173 pr_debug("%s:msm_routing_get_device_pp_params_mixer", __func__);
23174 return 0;
23175}
23176
23177static const struct snd_kcontrol_new device_pp_params_mixer_controls[] = {
23178 SOC_SINGLE_MULTI_EXT("Device PP Params", SND_SOC_NOPM, 0, 0xFFFFFFFF,
23179 0, 3, msm_routing_get_device_pp_params_mixer,
23180 msm_routing_put_device_pp_params_mixer),
23181};
23182
23183static int msm_aptx_dec_license_control_get(struct snd_kcontrol *kcontrol,
23184 struct snd_ctl_elem_value *ucontrol)
23185{
23186 ucontrol->value.integer.value[0] =
23187 core_get_license_status(ASM_MEDIA_FMT_APTX);
23188 pr_debug("%s: status %ld\n", __func__,
23189 ucontrol->value.integer.value[0]);
23190 return 0;
23191}
23192
23193static int msm_aptx_dec_license_control_put(struct snd_kcontrol *kcontrol,
23194 struct snd_ctl_elem_value *ucontrol)
23195{
23196 int32_t status = 0;
23197
23198 status = core_set_license(ucontrol->value.integer.value[0],
23199 APTX_CLASSIC_DEC_LICENSE_ID);
23200 pr_debug("%s: status %d\n", __func__, status);
23201 return status;
23202}
23203
23204static const struct snd_kcontrol_new aptx_dec_license_controls[] = {
23205 SOC_SINGLE_EXT("APTX Dec License", SND_SOC_NOPM, 0,
23206 0xFFFF, 0, msm_aptx_dec_license_control_get,
23207 msm_aptx_dec_license_control_put),
23208};
23209
23210static int msm_routing_be_dai_name_table_info(struct snd_kcontrol *kcontrol,
23211 struct snd_ctl_elem_info *uinfo)
23212{
23213 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
23214 uinfo->count = sizeof(be_dai_name_table);
23215 return 0;
23216}
23217
23218static int msm_routing_be_dai_name_table_tlv_get(struct snd_kcontrol *kcontrol,
23219 unsigned int __user *bytes,
23220 unsigned int size)
23221{
23222 int i;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053023223 int ret = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023224
23225 if (size < sizeof(be_dai_name_table)) {
23226 pr_err("%s: invalid size %d requested, returning\n",
23227 __func__, size);
23228 ret = -EINVAL;
23229 goto done;
23230 }
23231
23232 /*
23233 * Fill be_dai_name_table from msm_bedais table to reduce code changes
23234 * needed when adding new backends
23235 */
23236 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
23237 be_dai_name_table[i].be_id = i;
23238 strlcpy(be_dai_name_table[i].be_name,
23239 msm_bedais[i].name,
23240 LPASS_BE_NAME_MAX_LENGTH);
23241 }
23242
23243 ret = copy_to_user(bytes, &be_dai_name_table,
23244 sizeof(be_dai_name_table));
23245 if (ret) {
23246 pr_err("%s: failed to copy be_dai_name_table\n", __func__);
23247 ret = -EFAULT;
23248 }
23249
23250done:
23251 return ret;
23252}
23253
23254static const struct snd_kcontrol_new
23255 msm_routing_be_dai_name_table_mixer_controls[] = {
23256 {
23257 .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |
23258 SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK,
23259 .info = msm_routing_be_dai_name_table_info,
23260 .name = "Backend DAI Name Table",
23261 .tlv.c = snd_soc_bytes_tlv_callback,
23262 .private_value = (unsigned long) &(struct soc_bytes_ext) {
23263 .max = sizeof(be_dai_name_table),
23264 .get = msm_routing_be_dai_name_table_tlv_get,
23265 }
23266 },
23267};
23268
23269static int msm_routing_stereo_channel_reverse_control_get(
23270 struct snd_kcontrol *kcontrol,
23271 struct snd_ctl_elem_value *ucontrol)
23272{
23273 ucontrol->value.integer.value[0] = swap_ch;
23274 pr_debug("%s: Swap channel value: %ld\n", __func__,
23275 ucontrol->value.integer.value[0]);
23276 return 0;
23277}
23278
23279static int msm_routing_stereo_channel_reverse_control_put(
23280 struct snd_kcontrol *kcontrol,
23281 struct snd_ctl_elem_value *ucontrol)
23282{
23283 int i, idx, be_index, port_id;
23284 int ret = 0;
23285 unsigned long copp;
23286
23287 pr_debug("%s Swap channel value:%ld\n", __func__,
23288 ucontrol->value.integer.value[0]);
23289
23290 swap_ch = ucontrol->value.integer.value[0];
23291
23292 mutex_lock(&routing_lock);
23293 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
23294 port_id = msm_bedais[be_index].port_id;
23295 if (!msm_bedais[be_index].active)
23296 continue;
23297
23298 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
23299 MSM_FRONTEND_DAI_MM_SIZE) {
23300 copp = session_copp_map[i][SESSION_TYPE_RX][be_index];
23301 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
23302 if (!test_bit(idx, &copp))
23303 continue;
23304
23305 pr_debug("%s: swap channel control of portid:%d, coppid:%d\n",
23306 __func__, port_id, idx);
23307 ret = adm_swap_speaker_channels(
23308 port_id, idx,
23309 msm_bedais[be_index].sample_rate,
23310 swap_ch);
23311 if (ret) {
23312 pr_err("%s:Swap_channel failed, err=%d\n",
23313 __func__, ret);
23314 goto done;
23315 }
23316 }
23317 }
23318 }
23319done:
23320 mutex_unlock(&routing_lock);
23321 return ret;
23322}
23323
23324static const struct snd_kcontrol_new stereo_channel_reverse_control[] = {
23325 SOC_SINGLE_EXT("Swap channel", SND_SOC_NOPM, 0,
23326 1, 0, msm_routing_stereo_channel_reverse_control_get,
23327 msm_routing_stereo_channel_reverse_control_put),
23328};
23329
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080023330static int msm_routing_instance_id_support_info(struct snd_kcontrol *kcontrol,
23331 struct snd_ctl_elem_info *uinfo)
23332{
23333 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
23334 uinfo->count = 1;
23335 return 0;
23336}
23337
23338static int msm_routing_instance_id_support_put(
23339 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
23340{
23341 bool supported = ucontrol->value.integer.value[0] ? true : false;
23342
23343 q6common_update_instance_id_support(supported);
23344 return 0;
23345}
23346
23347static int msm_routing_instance_id_support_get(
23348 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
23349{
23350 bool supported = false;
23351
23352 supported = q6common_is_instance_id_supported();
23353 ucontrol->value.integer.value[0] = supported ? 1 : 0;
23354
23355 return 0;
23356}
23357
23358static const struct snd_kcontrol_new
23359 msm_routing_feature_support_mixer_controls[] = {
23360 {
23361 .access = SNDRV_CTL_ELEM_ACCESS_READ |
23362 SNDRV_CTL_ELEM_ACCESS_WRITE,
23363 .info = msm_routing_instance_id_support_info,
23364 .name = "Instance ID Support",
23365 .put = msm_routing_instance_id_support_put,
23366 .get = msm_routing_instance_id_support_get,
23367 },
23368};
23369
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023370static const struct snd_pcm_ops msm_routing_pcm_ops = {
23371 .hw_params = msm_pcm_routing_hw_params,
23372 .close = msm_pcm_routing_close,
23373 .prepare = msm_pcm_routing_prepare,
23374};
23375
23376/* Not used but frame seems to require it */
23377static int msm_routing_probe(struct snd_soc_platform *platform)
23378{
23379 snd_soc_dapm_new_controls(&platform->component.dapm, msm_qdsp6_widgets,
23380 ARRAY_SIZE(msm_qdsp6_widgets));
23381 snd_soc_dapm_add_routes(&platform->component.dapm, intercon,
23382 ARRAY_SIZE(intercon));
23383
23384 snd_soc_dapm_new_widgets(platform->component.dapm.card);
23385
23386 snd_soc_add_platform_controls(platform, lsm_controls,
23387 ARRAY_SIZE(lsm_controls));
23388
23389 snd_soc_add_platform_controls(platform, aanc_slim_0_rx_mux,
23390 ARRAY_SIZE(aanc_slim_0_rx_mux));
23391
Sudheer Papothic07b37a2018-05-04 05:56:47 +053023392 snd_soc_add_platform_controls(platform, aanc_noise_level,
23393 ARRAY_SIZE(aanc_noise_level));
23394
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023395 snd_soc_add_platform_controls(platform, msm_voc_session_controls,
23396 ARRAY_SIZE(msm_voc_session_controls));
23397
23398 snd_soc_add_platform_controls(platform, app_type_cfg_controls,
23399 ARRAY_SIZE(app_type_cfg_controls));
23400
23401 snd_soc_add_platform_controls(platform, lsm_app_type_cfg_controls,
23402 ARRAY_SIZE(lsm_app_type_cfg_controls));
23403
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070023404 snd_soc_add_platform_controls(platform, module_cfg_controls,
23405 ARRAY_SIZE(module_cfg_controls));
23406
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023407 snd_soc_add_platform_controls(platform,
23408 stereo_to_custom_stereo_controls,
23409 ARRAY_SIZE(stereo_to_custom_stereo_controls));
23410
23411 snd_soc_add_platform_controls(platform, ec_ref_param_controls,
23412 ARRAY_SIZE(ec_ref_param_controls));
23413
23414 snd_soc_add_platform_controls(platform, channel_mixer_controls,
23415 ARRAY_SIZE(channel_mixer_controls));
23416
23417 msm_qti_pp_add_controls(platform);
23418
23419 msm_dts_srs_tm_add_controls(platform);
23420
23421 msm_dolby_dap_add_controls(platform);
23422
23423 snd_soc_add_platform_controls(platform,
23424 use_ds1_or_ds2_controls,
23425 ARRAY_SIZE(use_ds1_or_ds2_controls));
23426
23427 snd_soc_add_platform_controls(platform,
23428 device_pp_params_mixer_controls,
23429 ARRAY_SIZE(device_pp_params_mixer_controls));
23430
23431 snd_soc_add_platform_controls(platform,
23432 msm_routing_be_dai_name_table_mixer_controls,
23433 ARRAY_SIZE(msm_routing_be_dai_name_table_mixer_controls));
23434
23435 snd_soc_add_platform_controls(platform, msm_source_tracking_controls,
23436 ARRAY_SIZE(msm_source_tracking_controls));
23437 snd_soc_add_platform_controls(platform, adm_channel_config_controls,
23438 ARRAY_SIZE(adm_channel_config_controls));
23439
23440 snd_soc_add_platform_controls(platform, aptx_dec_license_controls,
23441 ARRAY_SIZE(aptx_dec_license_controls));
23442 snd_soc_add_platform_controls(platform, stereo_channel_reverse_control,
23443 ARRAY_SIZE(stereo_channel_reverse_control));
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080023444 snd_soc_add_platform_controls(
23445 platform, msm_routing_feature_support_mixer_controls,
23446 ARRAY_SIZE(msm_routing_feature_support_mixer_controls));
23447
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023448 return 0;
23449}
23450
23451int msm_routing_pcm_new(struct snd_soc_pcm_runtime *runtime)
23452{
23453 return msm_pcm_routing_hwdep_new(runtime, msm_bedais);
23454}
23455
23456void msm_routing_pcm_free(struct snd_pcm *pcm)
23457{
23458 msm_pcm_routing_hwdep_free(pcm);
23459}
23460
23461static struct snd_soc_platform_driver msm_soc_routing_platform = {
23462 .ops = &msm_routing_pcm_ops,
23463 .probe = msm_routing_probe,
23464 .pcm_new = msm_routing_pcm_new,
23465 .pcm_free = msm_routing_pcm_free,
23466};
23467
23468static int msm_routing_pcm_probe(struct platform_device *pdev)
23469{
23470
23471 dev_dbg(&pdev->dev, "dev name %s\n", dev_name(&pdev->dev));
23472 return snd_soc_register_platform(&pdev->dev,
23473 &msm_soc_routing_platform);
23474}
23475
23476static int msm_routing_pcm_remove(struct platform_device *pdev)
23477{
23478 snd_soc_unregister_platform(&pdev->dev);
23479 return 0;
23480}
23481
23482static const struct of_device_id msm_pcm_routing_dt_match[] = {
23483 {.compatible = "qcom,msm-pcm-routing"},
23484 {}
23485};
23486MODULE_DEVICE_TABLE(of, msm_pcm_routing_dt_match);
23487
23488static struct platform_driver msm_routing_pcm_driver = {
23489 .driver = {
23490 .name = "msm-pcm-routing",
23491 .owner = THIS_MODULE,
23492 .of_match_table = msm_pcm_routing_dt_match,
23493 },
23494 .probe = msm_routing_pcm_probe,
23495 .remove = msm_routing_pcm_remove,
23496};
23497
23498int msm_routing_check_backend_enabled(int fedai_id)
23499{
23500 int i;
23501
23502 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
23503 /* bad ID assigned in machine driver */
23504 pr_err("%s: bad MM ID\n", __func__);
23505 return 0;
23506 }
23507 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
23508 if (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))
23509 return msm_bedais[i].active;
23510 }
23511 return 0;
23512}
23513
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023514static int get_cal_type_index(int32_t cal_type)
23515{
23516 int ret = -EINVAL;
23517
23518 switch (cal_type) {
23519 case ADM_TOPOLOGY_CAL_TYPE:
23520 ret = ADM_TOPOLOGY_CAL_TYPE_IDX;
23521 break;
23522 case ADM_LSM_TOPOLOGY_CAL_TYPE:
23523 ret = ADM_LSM_TOPOLOGY_CAL_TYPE_IDX;
23524 break;
23525 default:
23526 pr_err("%s: Invalid cal type %d\n", __func__, cal_type);
23527 }
23528 return ret;
23529}
23530
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023531static int msm_routing_set_cal(int32_t cal_type,
23532 size_t data_size, void *data)
23533{
23534 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023535 int cal_index;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023536 pr_debug("%s\n", __func__);
23537
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023538 cal_index = get_cal_type_index(cal_type);
23539 if (cal_index < 0) {
23540 pr_err("%s: Could not get cal index %d\n",
23541 __func__, cal_index);
23542 ret = -EINVAL;
23543 goto done;
23544 }
23545
23546 ret = cal_utils_set_cal(data_size, data, cal_data[cal_index], 0, NULL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023547 if (ret < 0) {
23548 pr_err("%s: cal_utils_set_cal failed, ret = %d, cal type = %d!\n",
23549 __func__, ret, cal_type);
23550 ret = -EINVAL;
23551 goto done;
23552 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023553 /* Pre-load if it is ADM topology */
23554 if ((cal_index == ADM_TOPOLOGY_CAL_TYPE_IDX) ||
23555 (cal_index == ADM_LSM_TOPOLOGY_CAL_TYPE_IDX)) {
23556 msm_routing_load_topology(data_size, data);
23557 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023558done:
23559 return ret;
23560}
23561
23562static void msm_routing_delete_cal_data(void)
23563{
23564 pr_debug("%s\n", __func__);
23565
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023566 cal_utils_destroy_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023567}
23568
23569static int msm_routing_init_cal_data(void)
23570{
23571 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023572 struct cal_type_info cal_type_info[] = {
23573 {{ADM_TOPOLOGY_CAL_TYPE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023574 {NULL, NULL, NULL,
23575 msm_routing_set_cal, NULL, NULL} },
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023576 {NULL, NULL, cal_utils_match_buf_num} },
23577
23578 {{ADM_LSM_TOPOLOGY_CAL_TYPE,
23579 {NULL, NULL, NULL,
23580 msm_routing_set_cal, NULL, NULL} },
23581 {NULL, NULL, cal_utils_match_buf_num} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023582 };
23583 pr_debug("%s\n", __func__);
23584
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023585 ret = cal_utils_create_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0],
23586 &cal_type_info[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023587 if (ret < 0) {
23588 pr_err("%s: could not create cal type!\n",
23589 __func__);
23590 ret = -EINVAL;
23591 goto err;
23592 }
23593
23594 return ret;
23595err:
23596 msm_routing_delete_cal_data();
23597 return ret;
23598}
23599
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053023600int __init msm_soc_routing_platform_init(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023601{
23602 mutex_init(&routing_lock);
23603 if (msm_routing_init_cal_data())
23604 pr_err("%s: could not init cal data!\n", __func__);
23605
23606 afe_set_routing_callback(
23607 (routing_cb)msm_pcm_get_dev_acdb_id_by_port_id);
23608
23609 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
23610 memset(&last_be_id_configured, 0, sizeof(last_be_id_configured));
23611
23612 return platform_driver_register(&msm_routing_pcm_driver);
23613}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023614
Asish Bhattacharya5faacb32017-12-04 17:23:15 +053023615void msm_soc_routing_platform_exit(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023616{
23617 msm_routing_delete_cal_data();
23618 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
23619 mutex_destroy(&routing_lock);
23620 platform_driver_unregister(&msm_routing_pcm_driver);
23621}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023622
23623MODULE_DESCRIPTION("MSM routing platform driver");
23624MODULE_LICENSE("GPL v2");